Hi
wie schon im Titel gesagt will ich die Informationen des PE Headers auslesen.
Ungünstigerweise wird durch die relocation table bei jedem Start des Programms die Position geändert wodurch der Zugriff durch static-adresses kompliziert wird und ich weder eine .au3 noch eine winapi gefunden habe die mir da weiterhelfen könnte, daher meine Frage welche Möglichkeiten gibt es?
ich kenn mich mit dem dateiaufbau nicht wirklich aus, aber das sagt wiki:
Das letzte Feld im DOS-Header verweist auf die Position des PE-Headers, der dann auch mit der ASCII-Kennung „PE“ beginnt.
ich kenn mich mit dem dateiaufbau nicht wirklich aus, aber das sagt wiki:
Das letzte Feld im DOS-Header verweist auf die Position des PE-Headers, der dann auch mit der ASCII-Kennung „PE“ beginnt.
Das ist mir soweit auch bekannt allerdings wechselt ja selbst dieser seine ansonsten fast immer statische Position
Quote:
Originally Posted by lolkop
die ganz normalen fileread funktion sollten hierfuer doch vollkommen ausreichend sein
Leider nein da ich keine Text-Datei auslesen will, sondern ein Programm
Aber um meine Frage nochmal zu spezifizieren kennt hier irgendeine freundliche Seele eine Funktion die mir die am liebsten die einzelnen sections eines Programms aus dem PE-Header liest bzw. ihn zumindest finden könnte, da sobald ich die Adresse ,und sei es die des DOS-Headers, habe das ganze auch durch Offsets einfach auslesen könnte
Das ist mir soweit auch bekannt allerdings wechselt ja selbst dieser seine ansonsten fast immer statische Position
Leider nein da ich keine Text-Datei auslesen will, sondern ein Programm
Aber um meine Frage nochmal zu spezifizieren kennt hier irgendeine freundliche Seele eine Funktion die mir die am liebsten die einzelnen sections eines Programms aus dem PE-Header liest bzw. ihn zumindest finden könnte, da sobald ich die Adresse ,und sei es die des DOS-Headers, habe das ganze auch durch Offsets einfach auslesen könnte
natürlich kannst du mit fileread beliebige dateien einlesen...
hier ein einfaches beispiel, welches dir den dos-header ausliest:
Code:
#include <array.au3>
ReadPeHeader("foobar2000_v1.2.9.exe")
Func readPeHeader($file)
Local $hwnd = FileOpen($file, 16), $content = FileRead($hwnd, FileGetSize($file))
$DosHeader = reverseArray(StringRegExp($content, "0x(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{16})", 3))
_ArrayDisplay($DosHeader)
EndFunc
Func reverseArray($array)
Local $size=UBound($array), $return[$size]
For $i=0 To $size-1
$return[$i]='0x'&trimZero(reverseHexString($array[$i]))
Next
Return $return
EndFunc
Func reverseHexString($hex, $tmp='')
If $hex='' Then Return $tmp
Return reverseHexString(StringTrimRight($hex,2), $tmp&StringRight($hex,2))
EndFunc
Func trimZero($string)
If $string='' Then Return '0'
If StringLeft($string,1)<>0 Then Return $string
Return trimZero(StringTrimLeft($string,1))
EndFunc
definiert ist der dos-header so:
Code:
typedef struct _IMAGE_DOS_HEADER {
WORD e_magic;
WORD e_cblp;
WORD e_cp;
WORD e_crlc;
WORD e_cparhdr;
WORD e_minalloc;
WORD e_maxalloc;
WORD e_ss;
WORD e_sp;
WORD e_csum;
WORD e_ip;
WORD e_cs;
WORD e_lfarlc;
WORD e_ovno;
WORD e_res[4];
WORD e_oemid;
WORD e_oeminfo;
WORD e_res2[10];
LONG e_lfanew;
} IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;
Ja ich als Depp des Tages hab natürlich vergessen zu sagen, dass das im laufenden Prozess ausgelesen werden muss, allerdings ergibt sich das auch, da die Position des PE-headers und der sections ja während des Startvorgangs durch den relocation table jedesmal geändert werden. Ansonsten hätte ich die Werte ja auch kurz in olly nachschauen können.
Trotzdem Danke für die Funktion kann man sicherlich mal wann anders gebrauchen^^
Ja ich als Depp des Tages hab natürlich vergessen zu sagen, dass das im laufenden Prozess ausgelesen werden muss, allerdings ergibt sich das auch, da die Position des PE-headers und der sections ja während des Startvorgangs durch den relocation table jedesmal geändert werden. Ansonsten hätte ich die Werte ja auch kurz in olly nachschauen können.
Trotzdem Danke für die Funktion kann man sicherlich mal wann anders gebrauchen^^
dir ist schon bewusst das "PE-Header" der header einer "portable executable" (ausführbaren datei) ist? ein prozess geht vllt von einer datei aus... hierbei kann aber keinesfalls von PE-Files gesprochen werden <.<
Also meine Intention war es die Adressen einzelner Module in einem Prozess herauszufinden, hat sich aber erledigt hab gestern die KDmemory.au3 gefunden da sind alle funktionen drin die ich brauche
[S]Header 02/10/2013 - Artist Trading - 9 Replies Suche jmd der mir ein Header für mein Gta Sa forum macht.
Add Skype Gagn71998
Wich Header is better? / Welcher Header ist besser? 10/05/2012 - General Art - 5 Replies Hello Com,
wich header is better?
My site is about Anonymize your links.
Hallo Com,
welcher header ist besser?
Meine Seite Anonymisiert die links.
Suche Header für Homepage / Search Header 04/29/2012 - Artist Trading - 2 Replies Hey Leute,
Ich suche einen neuen Header für meine ClanHomepage
wichtig ist :
Breite: 958 Pixel
Höhe: 188 Pixel
Dateiformat: .jpg
Name: eVolution of Gaming Series (bitte den Namen in den Header reintun)
Header 07/24/2011 - General Art - 2 Replies Hallo,
Ich suche jemanden der mir den Header Bearbeitet.
http://mariodev.de/uploader/bild.php/787,logoLAA1 E.png
Format soll alles so bleiben.
Ambesten Schrift etc. alles gleich.
Aber anstatt Servername soll da XyosMt2 stehen.
Untendrunder anstatt your own slogan soll da Enjoy your Time stehen.
css wie mach ich ein header und vom header der hintergrund z.B blau 11/14/2010 - Coding Tutorials - 2 Replies Hallo leute meine Frage kann man kaum erklären ich will nen Header
z.B
http://web85.germaninfo29.erfurt16.de/ebay/ftp_bi lder/header_moeller_1220_358.jpg
also da steht traum company aber ich will in mein Header jetz Traum company und dann nur für denn Header ein blauen hintergrund also