Outils pour utilisateurs

Outils du site


back2root:reverse-engineering:future-crew-unreal-reverse-engineering-part-2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
back2root:reverse-engineering:future-crew-unreal-reverse-engineering-part-2 [2023/01/07 10:45] – supprimée - modification externe (Unknown date) 127.0.0.1back2root:reverse-engineering:future-crew-unreal-reverse-engineering-part-2 [2023/01/07 10:45] (Version actuelle) – ↷ 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
Ligne 1: Ligne 1:
 +===== Future Crew Unreal Reverse Engineering - Part 2 ======
 +
 +on va commencer par jeter un œil sur le contenu du fichier UNREAL.EXE, comme nous l'avons vu dans l'article précédent, l'index contient 97 fichiers. Sans lister la liste complète, il est intéressant de noter que les assets sont stockés dans un certain ordre: celui des diverses parties. 
 +
 +===== Extraction du Loader =====
 +
 +il est plus facile, sous Linux, d'extraire le loader via la commande dd:
 +
 +<code bash>
 +dd bs=1 count=26347 if=UNREAL.EXE of=LOADER.EXE
 +</code>
 +
 +Nous pouvons ensuite, dans DosBox-X, décompresser le loader, mais ce n'est pas suffisant comme nous allons le voir plus loin.
 +
 +===== Analyse des exécutables =====
 +
 +Nous allons lister les fichiers exécutables:
 +
 +^  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 |                              |
 +| 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.
 +
 +Après avoir décompressé les fichiers (via [[http://unp.bencastricum.nl/|unp.exe]]), on constate que certains fichiers sont sont plus lourd que les fichiers "sources" (PART99.EXE et PARTS.EXE).
 +
 +Seuls ceux qui sont uniquement compressé via LINK V3.69 /EXEPACK, ne sont pas compressés deux fois.
 +
 +<WRAP center round help 95%>
 +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).
 +
 +On peut supposer qu'il s'agit ici d'Obscurcissement de la démo, ou simplement un choix d'options de script de compilation par "défaut" (/EXEPACK) suivit d'une compression manuelle (LZEXE).
 +</WRAP>
 +
 +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.
 +
 +^ Nom de Fichier ^   Taille (bytes) ^  Decompressé (bytes) ^ Sources ? ^
 +|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.
 +
 +→ On sait, de par la partie 1, que l'index est composé de 97 entrées de 24 Bytes et 12 Bytes de données de "rangement"
 +
 +<m 14>2340 Bytes = (97 * 24 Bytes) + (3 * 4 Bytes)</m>
 +
 +</WRAP>
 +
 +===== Classification des Assets =====
 +
 +Outre les fichiers exécutable, on retrouve :
 +
 +  * 20 fichiers .4SR
 +  * 2 fichiers .BIN
 +  * 1 fichier "ANIM.FCA"
 +  * 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 
 +