|
You last visited: Today at 21:07
Advertisement
PE Header auslesen
Discussion on PE Header auslesen within the AutoIt forum part of the Coders Den category.
11/14/2013, 16:53
|
#1
|
elite*gold: 0
Join Date: Jul 2013
Posts: 6
Received Thanks: 0
|
PE Header auslesen
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?
|
|
|
11/14/2013, 17:26
|
#2
|
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
|
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.
|
|
|
11/14/2013, 17:48
|
#3
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
die ganz normalen fileread funktion sollten hierfuer doch vollkommen ausreichend sein
|
|
|
11/14/2013, 19:12
|
#4
|
elite*gold: 0
Join Date: Jul 2013
Posts: 6
Received Thanks: 0
|
Quote:
Originally Posted by butter123
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
|
|
|
11/14/2013, 19:18
|
#5
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by DerkurvigeTyrann
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;
|
|
|
11/14/2013, 20:15
|
#6
|
elite*gold: 0
Join Date: Jul 2013
Posts: 6
Received Thanks: 0
|
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^^
|
|
|
11/14/2013, 20:34
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by DerkurvigeTyrann
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 <.<
|
|
|
11/16/2013, 13:59
|
#8
|
elite*gold: 0
Join Date: Jul 2013
Posts: 6
Received Thanks: 0
|
Ehrlich gesagt hatte ich keine Ahnung das man da differenzieren muss... wovon redet man denn dann? Und vor allem wie liest man es aus?
|
|
|
11/17/2013, 12:13
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by DerkurvigeTyrann
Ehrlich gesagt hatte ich keine Ahnung das man da differenzieren muss... wovon redet man denn dann? Und vor allem wie liest man es aus?
|
leider weis ich bis jetzt nicht wovon du redest... alles bisher von dir angesprochene befindet sich im pe-file.
plötzlich redest du dann vom speicher laufender anwendungen, erwähnst hierbei aber keinesfalls worum es eigentlich geht...
|
|
|
11/17/2013, 14:24
|
#10
|
elite*gold: 0
Join Date: Jul 2013
Posts: 6
Received Thanks: 0
|
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
|
|
|
 |
Similar Threads
|
[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
|
All times are GMT +1. The time now is 21:09.
|
|