Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
back2root:reverse-engineering:future-crew-unreal-reverse-engineering-part-2 [2023/01/07 10:45] – ↷ Page déplacée de back2root:tutoriaux:future-crew-unreal-reverse-engineering-part-2 à back2root:reverse-engineering:future-crew-unreal-reverse-engineering-part-2 frater | back2root:reverse-engineering:future-crew-unreal-reverse-engineering-part-2 [2024/08/22 18:10] (Version actuelle) – [Tableau] frater |
---|
il est plus facile, sous Linux, d'extraire le loader via la commande dd: | il est plus facile, sous Linux, d'extraire le loader via la commande dd: |
| |
<code bash> | <cli> |
dd bs=1 count=26347 if=UNREAL.EXE of=LOADER.EXE | frater@gemini:~/re/unreal# dd bs=1 count=26347 if=UNREAL.EXE of=LOADER.EXE |
</code> | </cli> |
| |
Nous pouvons ensuite, dans DosBox-X, décompresser le loader, mais ce n'est pas suffisant comme nous allons le voir plus loin. | Nous pouvons ensuite, dans DosBox-X, décompresser le loader, mais ce n'est pas suffisant comme nous allons le voir plus loin. |
| |
Nous allons lister les fichiers exécutables: | Nous allons lister les fichiers exécutables: |
| {{tablelayout?rowsHeaderSource=Auto}} |
| ^ Nom de Fichier ^ Taille (bytes) ^ Compression 1 ^ Taille (Bytes) ^ Compression 2 ^ Tailles (bytes) ^ Titre / usage ^ |
| | PART1.EXE | 29.860 | LINK V3.69 /EXEPACK | 42.592 | N/A | 42.592 | Start field + flags "FuturCrew Present Unreal" | |
| | PART99.EXE | 747 | LZEXE V0.91 or V1.00a | 434 | LINK V3.69 /EXEPACK | 1.088 | End Part (Texte Credits) | |
| | PART3.EXE | 17.051 | LZEXE V0.91 or V1.00a | 33.080 | LINK V3.69 /EXEPACK | 86.048 | Sinus Part? | |
| | PART10.EXE | 15.611 | LZEXE V0.91 or V1.00a | 22.264 | LINK V3.69 /EXEPACK | 31.120 | | |
| | PART13.EXE | 21.003 | LZEXE V0.91 or V1.00a | 36.954 | LINK V3.69 /EXEPACK | 61.008 | WormHole, plasma part | |
| | PART16.EXE | 9.691 | LZEXE V0.91 or V1.00a | 14.250 | LINK V3.69 /EXEPACK | 54.050 | | |
| | PART17.EXE | 35.868 | LINK V3.69 /EXEPACK | 75.040 | N/A | 75.040 | | |
| | PART4.EXE | 39.176 | LINK V3.69 /EXEPACK | 109.216 | N/A | 109.216 | ball part ? | |
| | PART18.EXE | 3.339 | LZEXE V0.91 or V1.00a | 3.422 | LINK V3.69 /EXEPACK | 4.752 | | |
| | PART21.EXE | 19.739 | LZEXE V0.91 or V1.00a | 28.412 | LINK V3.69 /EXEPACK | 111.872 | Coke/disk part | |
| | PART95.EXE | 6.811 | LZEXE V0.91 or V1.00a | 9.282 | LINK V3.69 /EXEPACK | 13.344 | | |
| | PARTS.EXE | <color #ed1c24>11.208</color> | LINK V3.69 /EXEPACK | 10.928 | N/A | 10.928 | Audio Setup | |
| | PART15.EXE | 120.054 | LINK V3.69 /EXEPACK | 206.042 | N/A | 206.042 | LandScape | |
| | PARTV.EXE | 108.842 | LINK V3.69 /EXEPACK | 131.280 | N/A | 131.280 | Vector Part | |
| | LOADER.EXE | 26.347 | LZEXE V0.91 or V1.00a | 40.144 | LINK V3.69 /EXEPACK | 50.096 | DIS / Music player / Loader | |
| |
^ Nom de Fichier ^ Taille (bytes) ^ Compression 1 ^ Taille (Bytes) ^ Compression 2 ^ Tailles (bytes) ^ Titre / usage ^ | Les fichiers extraits sont peu parlant, et certains sont même totalement illisibles. Heureusement, il existe un utilitaire ''unp.exe'', qui sous DOS, permet de décompresser quasi n'importe quelle compresseur d’exécutable. |
| PART1.EXE | 29.860 | LINK V3.69 /EXEPACK | 42.592 | N/A | 42.592 | | | |
| PART99.EXE | 747 | LZEXE V0.91 or V1.00a | 434 | LINK V3.69 /EXEPACK | 1.088 | End Part (Texte Credits) | | |
| PART3.EXE | 17.051 | LZEXE V0.91 or V1.00a | 33.080 | LINK V3.69 /EXEPACK | 86.048 | | | |
| PART10.EXE | 15.611 | LZEXE V0.91 or V1.00a | 22.264 | LINK V3.69 /EXEPACK | 31.120 | | | |
| PART13.EXE | 21.003 | LZEXE V0.91 or V1.00a | 36.954 | LINK V3.69 /EXEPACK | 61.008 | | | |
| PART16.EXE | 9.691 | LZEXE V0.91 or V1.00a | 14.250 | LINK V3.69 /EXEPACK | 54.050 | | | |
| PART17.EXE | 35.868 | LINK V3.69 /EXEPACK | 75.040 | N/A | 75.040 | | | |
| PART4.EXE | 39.176 | LINK V3.69 /EXEPACK | 109.216 | N/A | 109.216 | | | |
| PART18.EXE | 3.339 | LZEXE V0.91 or V1.00a | 3.422 | LINK V3.69 /EXEPACK | 4.752 | | | |
| PART21.EXE | 19.739 | LZEXE V0.91 or V1.00a | 28.412 | LINK V3.69 /EXEPACK | 111.872 | | | |
| PART95.EXE | 6.811 | LZEXE V0.91 or V1.00a | 9.282 | LINK V3.69 /EXEPACK | 13.344 | | | |
| PARTS.EXE | 11.208 | LINK V3.69 /EXEPACK | 10.928 | N/A | 10.928 | Audio Setup | | |
| PART15.EXE | 120.054 | LINK V3.69 /EXEPACK | 206.042 | N/A | 206.042 | LandScape | | |
| PARTV.EXE | 108.842 | LINK V3.69 /EXEPACK | 131.280 | N/A | 131.280 | Vector Part | | |
| LOADER.EXE | 26.347 | LZEXE V0.91 or V1.00a | 40.144 | LINK V3.69 /EXEPACK | 50.096 | DIS / Music player / Loader | | |
| |
Les fichiers extraits sont peu parlant, et certains sont même totalement illisibles. Heureusement, il existe un utilitaire unp.exe, qui sous DOS, permet de décompresser quasi n'importe quelle compresseur d’exécutable. | |
| |
Les fichiers sont, en grande majorité, compressés via l'utilitaire [[https://bellard.org/lzexe.html|LZEXE]] pour réduire la taille totale de la démo, sans devoir compresser les assets, d'autres via l'outil de LINK de microsoft. | Les fichiers sont, en grande majorité, compressés via l'utilitaire [[https://bellard.org/lzexe.html|LZEXE]] pour réduire la taille totale de la démo, sans devoir compresser les assets, d'autres via l'outil de LINK de microsoft. |
Seuls ceux qui sont uniquement compressé via LINK V3.69 /EXEPACK, ne sont pas compressés deux fois. | Seuls ceux qui sont uniquement compressé via LINK V3.69 /EXEPACK, ne sont pas compressés deux fois. |
| |
<WRAP center round help 95%> | <WRAP center round help> |
La raison de cette double compression n'est pas très clair, car certaines parties sont compressées deux fois avec un résultat "pire" que simplement via la compression LINK (PART99.EXE et PARTS.EXE). | La raison de cette double compression n'est pas très clair, car certaines parties sont compressées deux fois avec un résultat "pire" que simplement via la compression LINK (PART99.EXE et PARTS.EXE). |
| |
| |
Il faut encore ajouter le "Loader" qui est contiendrait à la fois le "file system" et le serveur de démo [DIS], qui permet de gérer la mémoire, l'accès aux assets, le player de musique. | Il faut encore ajouter le "Loader" qui est contiendrait à la fois le "file system" et le serveur de démo [DIS], qui permet de gérer la mémoire, l'accès aux assets, le player de musique. |
| {{tablelayout?rowsHeaderSource=Auto&colwidth=""}} |
| ^ Nom de Fichier ^ Taille L1 (bytes) ^ Compression L1 ^ Taille L2 (Bytes) ^ Compression L2 ^ Taille L3 (Bytes) ^ Description ^ |
| | LOADER.EXE | 26.347 | LZEXE V0.91 or V1.00a | 40.144 | LINK V3.69 /EXEPACK | 50.096 | DIS / Music player / Loader | |
| |
^ Nom de Fichier ^ Taille (bytes) ^ Decompressé (bytes) ^ Sources ? ^ | <WRAP center round tip> |
|LOADER.EXE | 26.315| 40.144| C? | | |
| |
<WRAP center round tip 95%> | |
Quand on additionne l'ensemble des fichiers extraits (2.372.134 Bytes) et le loader (26.347 Bytes), nous arrivons à un grand totale de 2.398.481 bytes; le fichier "source" UNREAL.EXE ayant une taille de 2.400.825 Bytes; cela fait une différence de 2344 Bytes. | Quand on additionne l'ensemble des fichiers extraits (2.372.134 Bytes) et le loader (26.347 Bytes), nous arrivons à un grand totale de 2.398.481 bytes; le fichier "source" UNREAL.EXE ayant une taille de 2.400.825 Bytes; cela fait une différence de 2344 Bytes. |
| |
| |
<m 14>2340 Bytes = (97 * 24 Bytes) + (3 * 4 Bytes)</m> | <m 14>2340 Bytes = (97 * 24 Bytes) + (3 * 4 Bytes)</m> |
| |
</WRAP> | </WRAP> |
| |
===== Classification des Assets ===== | ===== réflexion à propos de la compression ===== |
| |
Outre les fichiers exécutable, on retrouve : | En comparant les tailles des fichiers (exécutables compressés) vs les fichiers décompressés; |
| |
* 20 fichiers .4SR | {{tablelayout?rowsHeaderSource=Auto&colwidth=""}} |
* 2 fichiers .BIN | ^ UNREAL.EXE ^ Fichiers extraits ^ Décompressés ^ |
* 1 fichier "ANIM.FCA" | | 2400825 | 2398481 | 2921640 | |
* 1 fichier "CHISEL.FCF" | |
* 1 fichier "MAGICFNT.FCP" | |
* 1 fichier "FONT8.FNT" | |
* 20 fichiers .GFX | |
* 17 fichiers .PAL | |
* 1 fichier "CREDITS.PLL" | |
* 5 fichiers .S3M | |
* 4 fichiers .TXT | |
* 8 fichiers .U | |
* 2 fichiers .UFF | |
| |
| Il y a bien une différence de 2344 bytes entres l’exécutable et les fichiers extrait qui corresponds à la FTOC, et une différence de 520815 bytes (en plus) pour l'ensemble des fichiers exécutable décompressés, soit un gain de presque 22%; à l'époque des modem, ce gain n'était pas négligeable... |
| |
| |
| ===== Classification des Assets ===== |
| |
| Outre les fichiers exécutable, on retrouve : |
| {{tablelayout?rowsHeaderSource=Auto}} |
| ^ fichiers ^ nom/extention ^ |
| | 20 | .4SR | |
| | 2 | .BIN | |
| | 1 | ANIM.FCA | |
| | 1 | CHISEL.FCF | |
| | 1 | MAGICFNT.FCP | |
| | 1 | FONT8.FNT | |
| | 20 | .GFX | |
| | 17 | .PAL | |
| | 1 | CREDITS.PLL | |
| | 5 | .S3M | |
| | 4 | .TXT | |
| | 8 | .U | |
| | 2 | .UFF | |
| |