PE32 Datei entpacken - Wie wurden die Dateien angehängt/verpackt?
-
Ich habe hier von Adaptec die aspi32.exe und aspiinst.exe PE32 Datei und wollte nun an die darin verpackten Dateien herankommen, ohne die Datei auszuführen und den in der Datei integrierten Installer zu nutzen.
md5sum:
7574986f3504ccfce662bd1b6810b506 aspi32.exe
6dd4c460e089866b25b0d6f951525a95 aspiinst.exeLeider weiß ich nicht, wie die Dateien an die EXE angehängt wurden und wie man die daraus extrahiert.
Herauskommen sollten Dateien wie z.B. winaspi.dll, wnaspi32.dll, wowpost.exe usw.Es ist leider keine ausführbare ZIP, 7z, RAR oder UPX Datei, diese Packer habe ich alle schon auf die Datei losgelassen, aber ohne Erfolg.
Wenn ich die Datei ausführen würde, dann würden im Windows Ordner vorhandene Dateien überschrieben werden, was ich vermeiden wollte, außerdem sieht man so nicht, was genau alles entpackt wird.
Und wenn ich das ganze unter wine versuche, dann erkennt das wine bei einigen Dateien, für die Wine eigene dll Dateien mitliefert und verhindert das diese Überschrieben werden.
Einer dieser Problemdateien wäre hier z.b. wnaspi32.dll
Wine hat hier eine eigene.Deswegen suche ich nun einen anderen Weg, an diese Dateien heranzukommen.
Idealerweise mit irgendeinem Entpacker.Mit dem Linux Tool pev erhalte ich bei der aspi32.exe Datei z.B. folgende Informationen:
pev aspi32.exe DOS header: Magic number: 0x5a4d (MZ) Bytes in last page: 144 Pages in file: 3 Relocations: 0 Size of header in paragraphs: 4 Minimum extra paragraphs: 0 Maximum extra paragraphs: 65535 Initial (relative) SS value: 0 Initial SP value: 0xb8 Initial IP value: 0 Initial (relative) CS value: 0 Address of relocation table: 0x40 Overlay number: 0 OEM identifier: 0 OEM information: 0 PE header offset: 0xe0 COFF header: Machine: 0x14c - Intel 386 and compatible (32-bits) Number of sections: 4 Date/time stamp: 940884228 (Mon, 25 Oct 1999 20:43:48 UTC) Symbol Table offset: 0 Number of symbols: 0 Size of optional header: 0xe0 Characteristics: 0x10f (0000000100001111) base relocations stripped executable image line numbers removed (deprecated) local symbols removed (deprecated) 32-bit machine Optional (PE) header: Magic number: 0x10b (PE32) Linker major version: 6 Linker minor version: 0 Size of .code section: 0x15000 Size of .data section: 0x1b000 Size of .bss section: 0 Entry point: 0x8b4c Address of .code section: 0x1000 Address of .data section: 0x16000 Imagebase: 0x400000 Alignment of sections: 0x1000 Alignment factor: 4096 Major version of required OS: 4 Minor version of required OS: 0 Major version of image: 0 Minor version of image: 0 Major version of subsystem: 4 Minor version of subsystem: 0 Size of image: 0x31000 Size of headers: 0x1000 Image file checksum: 0 Subsystem required: 2 (Windows GUI) DLL characteristics: 0 (0000000000000000) Size of stack to reserve: 0x100000 Size of stack to commit: 0x1000 Size of heap space to reserve: 0x100000 Size of heap space to commit: 0x1000 Data-dictionary entries: 16 Data directories: Name: Import Table Virtual Address: 0x16630 Size: 0x8c Name: Resource Table Virtual Address: 0x24000 Size: 0xc2d8 Name: Import Address Table (IAT) Virtual Address: 0x16000 Size: 0x21c Sections: Name: .text Virtual size: 0x14893 Virtual address: 0x1000 Data size: 0x15000 Data offset: 0x1000 Characteristics: 0x60000020 (01100000000000000000000000100000) contains executable code is executable is readable Name: .rdata Virtual size: 0x11fc Virtual address: 0x16000 Data size: 0x2000 Data offset: 0x16000 Characteristics: 0x40000040 (01000000000000000000000001000000) contains initialized data is readable Name: .data Virtual size: 0xbf5c Virtual address: 0x18000 Data size: 0x4000 Data offset: 0x18000 Characteristics: 0xc0000040 (11000000000000000000000001000000) contains initialized data is readable is writable Name: .rsrc Virtual size: 0xc2d8 Virtual address: 0x24000 Data size: 0xd000 Data offset: 0x1c000 Characteristics: 0x40000040 (01000000000000000000000001000000) contains initialized data is readable Resources (.rsrc section): Type: RT_BITMAP Offset: 0x40 Type: RT_ICON Offset: 0x60 Type: RT_DIALOG Offset: 0x78 Type: RT_STRING Offset: 0x90 Type: RT_GROUP_ICON Offset: 0xc8 Type: RT_VERSION Offset: 0xe0 Product Version: 1.0.2.14
Aber eben nicht die Dateien, die ich haben möchte.
Die sind irgendwie an die PE Datei drangehängt, denn auch der PE Explorer unter Windows findet nichts.Interessant ist übrigens auch, das die Datei aspi32.exe eine neuere ASPI Version ist, als die aspiinst.exe Datei liefert.
Auch das Erstellungsdatum dieser aspi32.exe Datei ist neurer, aber die File version 1.02 (014) ist älter, als die von aspiinst.exe,
die hier File version 1.08 (030) anzeigt.Wer hat hier jemand eine Idee?
-
Okay, ich denke ich bin weitergekommen.
Es könnte sein, dass die Dateien mit dem Armadillo v4.x Packer gepackt wurden.
Allerdings finde ich kein Tool um mit Armadillo v4.x gepackte Dateien zu entpacken.Kennt ihr ein gutes brauchbares?
-
aspi32 schrieb:
Okay, ich denke ich bin weitergekommen.
Es könnte sein, dass die Dateien mit dem Armadillo v4.x Packer gepackt wurden.
Allerdings finde ich kein Tool um mit Armadillo v4.x gepackte Dateien zu entpacken.Kennt ihr ein gutes brauchbares?
Hm, doch kein Armadillo.
Also vielleicht doch ein anderer Packer.
-
aspi32 schrieb:
Wenn ich die Datei ausführen würde, dann würden im Windows Ordner vorhandene Dateien überschrieben werden, was ich vermeiden wollte, außerdem sieht man so nicht, was genau alles entpackt wird.
Und wenn ich das ganze unter wine versuche, dann erkennt das wine bei einigen Dateien, für die Wine eigene dll Dateien mitliefert und verhindert das diese Überschrieben werden.Und warum dann kompliziert Reverseengineering betreiben ?
Lass die exe einfach in ner VM laufen, mach davor und danach nen Snapshot und kopier alle Dateien die du brauchst aus der VM.
-
DarkShadow44 schrieb:
aspi32 schrieb:
Wenn ich die Datei ausführen würde, dann würden im Windows Ordner vorhandene Dateien überschrieben werden, was ich vermeiden wollte, außerdem sieht man so nicht, was genau alles entpackt wird.
Und wenn ich das ganze unter wine versuche, dann erkennt das wine bei einigen Dateien, für die Wine eigene dll Dateien mitliefert und verhindert das diese Überschrieben werden.Und warum dann kompliziert Reverseengineering betreiben ?
Lass die exe einfach in ner VM laufen, mach davor und danach nen Snapshot und kopier alle Dateien die du brauchst aus der VM.Und welches Programm würdest du mir empfehlen um die Unterschiede in Windows vor und nach der Installation zu protokollieren?
-
aspi32 schrieb:
Und welches Programm würdest du mir empfehlen um die Unterschiede in Windows vor und nach der Installation zu protokollieren?
Schau mal auf diesen Blog: Tracking registry and file changes when installing software in windows.
Gibt aber auch genug Programme die Installer überwachen um das davor und das danach zu vergleichen. Z.B. Abolute Uninstaller, Revo Uninstaller, Total Uninstall um mal ein paar Tools zu nennen.
Such dir eins aus. ^^
-
Danke für den Link.
Ich teste gerade ein paar Programme durch.
Einige, auf die die Webseite verweist gibt es gar nicht mehr,
bei anderen fehlen Features.
Ich werde mal schauen, welches ich als für am besten empfinde und bei dem bleib ich dann.
-
DarkShadow44 schrieb:
Und warum dann kompliziert Reverseengineering betreiben ?
Lass die exe einfach in ner VM laufen, mach davor und danach nen Snapshot und kopier alle Dateien die du brauchst aus der VM.Okay, hab's jetzt gemacht.
Allerdings gibt's ein kleines Problem.
Die VxD Dateien werden nicht installiert, da die nur für W9x sind. Ich vermute aber ganz stark, dass die in dieser Installationsdatei enthalten sind,
denn ich habe aus einem alten Ordner noch so ein entpacktes ASPI Verzeichnis, wobei das aber nur zusammengestückelte Dateien sind, also nicht das was ich archivieren möchte.Ich müsste also ein Win9x installieren, aber ob ich die CD noch finde?
Wenn's ne bessere Möglichkeit gibt, nur her damit.
-
Was willst du mit Dateien für Win9x ?
Uud ja, meistens installieren Setups nur das was sie brauchen. Dh. Win9x Dateien nur auf dem entsprechenden OS.
Du kannst aber auch versuchen das über den Kompatibilitätsmodus (oder andere Tricks) zu versuchen, dem Setup vorzugaukeln es liefe auf einem anderen OS.
Oder du suchst die Dateien aus dem Internet zusammen, vorausgesetzt du weißt welche.
-
DarkShadow44 schrieb:
Was willst du mit Dateien für Win9x ?
Ich mach von all meiner HW und SW Backups, das schließt auch Treiber, SW und CO für alte Systeme mit ein.
Dummerweise habe ich nun eine kleine Inkonsistenz, also mehrere ASPI Sachen und versuche nun das wichtigste daraus zu extrahieren, damit ich den Rest wegschmeißen kann.
Ja, sind nur ein paar KByte auf der 1 TB großen Platte, aber ich bevorzuge die Ordnung.
Ich habe jetzt in der VirtualBox WinMe installiert, damit werde ich es mal testen.
Welche Installations Überwacher Tools bieten sich für Win9x/Me an?
Du kannst aber auch versuchen das über den Kompatibilitätsmodus (oder andere Tricks) zu versuchen, dem Setup vorzugaukeln es liefe auf einem anderen OS.
Bei HW Treibern ist das bestimmt ne Schutzverletztung.
Ansonsten wäre es zwar einen Versuch wert, aber jetzt hab ich ja WinME drauf, damit sollte es auch gehen.Oder du suchst die Dateien aus dem Internet zusammen, vorausgesetzt du weißt welche.
Das ist ja das Problem, ich habe ja schon so ein Stückwerk an vielen einzelnen Dateien und die vesuche ich gerade zuzuordnen, ob die z.B. im Installer enthalten sind.
Wenn das der Fall ist, dann kann die die Einzeldateien nämlich löschen und den Installer behalten.
Auch versuche ich herauszufinden, welche Version das ist.
Die steht allerdings nicht in den Dateien drin, aber mit md5sum und einem Abgleich sollte es möglich sein.
-
Backups von einem Win9x-System? Hast du da auch noch irgendwas spannendes drauf, oder ist das nur aus lauter Spaß an der Freud'?
-
nman schrieb:
Backups von einem Win9x-System? Hast du da auch noch irgendwas spannendes drauf, oder ist das nur aus lauter Spaß an der Freud'?
Z.B. für Spiele die in Emulatoren, auf modernen Systemen und Virtuellem Maschinen nicht gut laufen.
-
OK, aber wo lässt du die Spiele dann laufen? Woher nimmst du funktionierende Hardware, auf der Win9x problemlos läuft?
-
nman schrieb:
OK, aber wo lässt du die Spiele dann laufen? Woher nimmst du funktionierende Hardware, auf der Win9x problemlos läuft?
Die HW habe ich natürlich noch.
Es ist sogar so, dass ich noch HW geschenkt dazu bekommen habe, insofern hätte ich auch noch Reserve, falls irgendeine ausfällt.
Und laufen tut sie auch noch.
-
Darf ich fragen, welche Spiele dir so wichtig sind, dass du physischen Platz dafür reservierst und soviel Zeit darauf verwendest, sie zu archivieren?
-
nman schrieb:
Darf ich fragen, welche Spiele dir so wichtig sind, dass du physischen Platz dafür reservierst und soviel Zeit darauf verwendest, sie zu archivieren?
Ich archiviere ja nur die Daten für eine brauchbare Systemumgebung, die Spiele hab ich auf CD-ROM.
Aber ein Kandidat wäre z.B. Gunship!
Man kriegt es zwar auch auf einem modernen Rechner zum Laufen,
aber die 3d Welt läuft einfach nicht flüssig, obwohl man weit über 60 fps hat, gibt's Mikroruckler und ähnliches unerwünschtes Verhalten.
Meine Erfahrung ist, dass dieses Phänomen erst ab der Geforce 8 Serie auftritt, mit einer GPU der Geforce 7 Serie läuft das Spiel 1A.
Andere moderne GPUs habe ich nicht getestet, ich habe nur Karten von NVidia.Also stell ich für dieses Spiel einen alten Rechner ab und da muss ich halt sorgen, dass ich den auch später, wenn z.b. die HD crashed wieder in Schuss kriegen kann, daher müssen die Systemtreiber usw. gesichert werden.
-
YAGNI
Weil du das Ding nie mehr angreifen wirst nachdem du es schön hergerichtet hast.
Trifft sicher nicht auf alle Leute zu die sich einbilden sowas zu brauchen, aber auf die meisten. Erfahrungswert.