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

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édentes Révision précédente
Prochaine révisionLes deux révisions suivantes
back2root:tutoriaux:future-crew-unreal-reverse-engineering-part-1 [2022/07/27 11:23] fraterback2root:tutoriaux:future-crew-unreal-reverse-engineering-part-1 [2022/07/27 11:29] – [Deep dive dans le fichier] frater
Ligne 19: Ligne 19:
 En regardant le code de second reality et en lisant excellente review de Fabien, je me suis dit que unreal devait avoir la même structure. j'ai donc jeté un oeil sur l'exe via un petit utilitaire 'unp.exe' (http://unp.bencastricum.nl/) juste pour voir... et bingo... le fichier exécutable n'est pas de 2 mb, mais plutôt de 25kb il s'agit donc bien d'un loader, voir même d'un DIS (Demo Interrupt Server), comme dans le cas de Second Reality. En regardant le code de second reality et en lisant excellente review de Fabien, je me suis dit que unreal devait avoir la même structure. j'ai donc jeté un oeil sur l'exe via un petit utilitaire 'unp.exe' (http://unp.bencastricum.nl/) juste pour voir... et bingo... le fichier exécutable n'est pas de 2 mb, mais plutôt de 25kb il s'agit donc bien d'un loader, voir même d'un DIS (Demo Interrupt Server), comme dans le cas de Second Reality.
  
-{{ :back2root:tutoriaux:unp.png?nolink }}+{{ :tutoriaux:unp.png?nolink }}
  
 Dans Second Reality, les parties et assets ne sont décrit que dans une série d'offset hardcodé dans le loader (c'est ce que nous apprends le code source du loader de second reality) et actuellement, il m'est impossible d'obtenir les sources de "unreal.exe", donc en désespoir de cause, je jettes un petit coup d’œil sur le fichier en mode hexa; nous savons déjà que les 26315 (+le header DOS de 32 bytes) premiers octets contiennent le loader et sans doute également le DIS et sont donc sans intérêt... les données (musiques, graphiques, etc) commencent après l'offset 26315+32, soit 26347, ou 0x66EB en hexa cette valeur va réapparaître comme par miracle plus tard. Dans Second Reality, les parties et assets ne sont décrit que dans une série d'offset hardcodé dans le loader (c'est ce que nous apprends le code source du loader de second reality) et actuellement, il m'est impossible d'obtenir les sources de "unreal.exe", donc en désespoir de cause, je jettes un petit coup d’œil sur le fichier en mode hexa; nous savons déjà que les 26315 (+le header DOS de 32 bytes) premiers octets contiennent le loader et sans doute également le DIS et sont donc sans intérêt... les données (musiques, graphiques, etc) commencent après l'offset 26315+32, soit 26347, ou 0x66EB en hexa cette valeur va réapparaître comme par miracle plus tard.
Ligne 40: Ligne 40:
 Toutefois, il y a un dernier "unsigned long" à la fin (0x00249911) qui est assez finalement assez simple à déduire; il s'agit d'un pointeur d'offset sur le début de la table de fichier: Toutefois, il y a un dernier "unsigned long" à la fin (0x00249911) qui est assez finalement assez simple à déduire; il s'agit d'un pointeur d'offset sur le début de la table de fichier:
  
-{{ back2root:tutoriaux:directory.png?nolink }}+{{ :tutoriaux:directory.png?nolink }}
  
 Sauf que à l'offset pointé, il y a 3 unsigned long: Sauf que à l'offset pointé, il y a 3 unsigned long:
  • back2root/reverse-engineering/future-crew-unreal-reverse-engineering-part-1.txt
  • Dernière modification : 2023/01/07 10:56
  • de frater