Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 21:07

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PE Header auslesen

Discussion on PE Header auslesen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #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?
DerkurvigeTyrann is offline  
Old 11/14/2013, 17:26   #2
 
butter123's Avatar
 
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.
butter123 is offline  
Old 11/14/2013, 17:48   #3
 
lolkop's Avatar
 
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
lolkop is offline  
Old 11/14/2013, 19:12   #4
 
elite*gold: 0
Join Date: Jul 2013
Posts: 6
Received Thanks: 0
Quote:
Originally Posted by butter123 View Post
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 View Post
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
DerkurvigeTyrann is offline  
Old 11/14/2013, 19:18   #5
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by DerkurvigeTyrann View Post
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;
lolkop is offline  
Thanks
1 User
Old 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^^
DerkurvigeTyrann is offline  
Old 11/14/2013, 20:34   #7
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by DerkurvigeTyrann View Post
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 <.<
lolkop is offline  
Old 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?
DerkurvigeTyrann is offline  
Old 11/17/2013, 12:13   #9
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by DerkurvigeTyrann View Post
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...
lolkop is offline  
Old 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
DerkurvigeTyrann is offline  
Reply

Tags
autoit, header, pe, relocation, table


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.