|
Solution Ancient crackme
|
|
||
Solution Ancient crackme
![]() ![]() Allez, je me tente à faire un writeup. Au début, j'ai voulu faire mon bonhomme et le faire en statique. (Je fais beaucoup de crackme en statique) J'ai fait un script IDC vite fait pour essayer de l'unpacker, mais le résultat reste imbitable. Code : #include <ida.idc>Je sais pas s'il faut blâmer le binaire, le langage (VBA) ou les outils. Bref, je suis passé en dynamique. Le problème c'est que c'est pour un truc tellement vieux que je connais pas les bons outils. J'ai commencé avec DEBUG.EXE sur Windows XP. Citation :Q pour quitter Tant que le crackme me demande pas username/serial, je step over. Si je vais trop loin, je quitte et je fais G XXXX:YYYY pour revenir où j'étais avant. Le but étant de me trouver l'adresse juste après que le crackme me demande username/serial. Code : 0D04:013B EB04 JMP 0141 ; after serial read()On peut avoir un IDA ouvert à côté pour avoir une meilleure vue de ce qu'on fait. ![]() Au royaume des aveugles, les borgnes sont rois. En débuggant un peu, on comprend que : * 0023:3067 renvoie la taille de la chaîne en paramètre * 0x3A fait référence au serial * 0x36 fait référence à l'utilisateur Comme DEBUG.EXE a une interface du tiers monde, j'ai cherché autre chose. J'ai essayé Bochs, Freedos, et DOSBox. DOSBox est vraiment bien, je vous le conseille si vous devez voyager dans le temps pour résoudre des crackmes. URL: http://www.dosbox.com/download.php?main=1 Debugger: http://source.dosbox.com/dosbox-74-debug.exe Guide: http://www.vogons.org/viewtopic.php?t=3944 Avec DOSBox, on a une sorte de débugger kernel, ça devient ridiculement simple : On lance l'application, on rentre un login, un serial. Comme c'est faux l'application nous dit "Sorry", "Press enter to quit?" On appelle le debugger avec alt-pause Dans la fenêtre du debugger on va voir la stack avec alt-s Et là bam, on voit tout plein d'infos : ![]() L'algo est assez trivial : Code : seg000:0167 loc_10167: ; CODE XREF: seg000:0161jLe serial est : "OLD-" + user + "-A" + (serial + 1337) |
|
||
|
Solution Ancient crackme
gratzz,
![]() Le code pour les curieux: Code : 'Xyl2k![]() Le compilo a plus de 27 ans et ça tourne sur win7, c'est beau quand même la rétrocompatibilité. |
||