Comment écrire un script automatik pour ProcDump 1.5 ? Dans ce tutor nous allons voir une manière simple d'écrire un script pour Procdump.Déjà, ça sert à quoi un script ? Ben,en gros, ça automatise une tache : c'est une sorte de macro qui va faire plusieurs opérations .L'avantage des scripts de procdump c'est qu'ils regardent la signature du compresseur utilisé .Cela permet d'être sur du compresseur que le programmeur a utilisé. De cette façon ,quand vous rencontrez un proggy compressé avec un truc que procdump ne connait pas ,il possible d'updater le .ini de procdump afin d'y mettre un nouveau script, au cas où on rencontrerait un autre prog compressé avec ce truc inconnu...Pour cet exemple, j'ai choisit non pas un compresseur mais un crypteur de prog ,que procdump ne connait pas : STNE PE Encrypter 1.13 (Stone) .A noter qu'il est tout à fait possible de restaurer un .exe crypté avec STNE ,juste en changeant quelques options de procdump.Mais c'est plus interressant de faire un script automatik... Step 1 Comme j'ai pas trouvé de prog crypté avec STNE 1.13, j'ai pris 'Notepad.exe' (dans le répertoire Windows) et je l'ai crypté .De cette manière je suis sur que tout le monde a le même prog (je tourne sous zin98) .Avant de le crypter,notez le point d'entrée de notepad.exe : 4010cc.Une fois que vous avez crypté le notepad,il est impossible de le désassembler avec windasm : c crypté. Vous devriez avoir un exe de 61Ko au lieu des 56 originaux. Prenez Symbol loader et ouvrez le notepad que vous avez crypté .En traçant le prog avec la touche F10 ,on arrive rapidement à ceci: 015f:0040e090 pop ebx ------on récupère 015f:0040e091 pop ecx ------tous les 015f:0040e092 pop edx ------registres 015f:0040e093 pop esi 015f:0040e094 pop edi 015f:0040e095 pop ebp 015f:0040e096 jmp eax ----- et on saute vers le prog décrypté... En traçant le proggy avec F10 on arrive à l'addresse 40e096 : jmp eax .Et comme par hasard,eax=4010cc qui est le point d'entrée original du prog (décypté) .On en déduit facilement qu'a cet instant la routine de décryptage est terminée puisqu'après on exécute le prog décompressé...Pour le vérifier,on va le dumper. Step 2 Avant d'executer le jmp eax en 40e096, tapez sous softice A 40e096 .Une fois dans l'éditeur ASM de SoftIcE,tapez : jmp eip .Votre prog fait maintenant une boucle infinie, juste avant de s'executer. Prenez procdump 1.5 .Dans l'écran principal vous avez tous les proggyz qui tournent en ce moment. On repère facilement notre notepad.exe . On fait un click droit dessus et on choisit l'option 'Dump (Full)' .On donne un nom pour notre sauvegarde, dump.exe pour moi.On va ensuite remettre le bon point d'entrée,celui-ci n'étant plus le même puisque notre proggy est décompressé . On avait noté au début de l'article que notre 'entry point' original était 4010cc.Allez dans l'option 'PE Editor' de Procdump .Ouvrez votre dump.exe .Procdump vous indique comme 'Image Base' 00400000 . Pour remettre le point d'entrée comme il faut,on fait 4010cc-400000=10cc .Votre point d'entrée est donc 10cc. Dans la case 'Entry point' du PE Editor de procdump,vous entrez 10cc. Pour valider le changement,quittez procdump . En lançant notre dump.exe avec le bon point d'entrée,celui-ci s'execute normalement.Passons à l'écriture du script . Step 3 Avant d'écrire le script quelques commentaires sur les commandes utilisées : La commande LOOK : c'est avec cette commande que procdump repère la signature du crypteur ou du ~~~~~~~~~~~~~ du compresseur .En entrant cette commande suivit d'une chaine hexadécimale, procdump va regarder dans l'exe si il trouve cette chaine.Si c'est le cas, cela veut dire que c'est le bon script .Dans le cas contraire,ce n'est le bon sript pour ce compresseur ou ce crypteur La commande BP : avec cette commande,vous mettez un breakpoint (même principe que Softice) ~~~~~~~~~~~~ sur l'addresse memoire actuelle .Cette commande est précédée de LOOK .Vous allez comprendre dans deux minutes. La commande STEP : c'est avec cette commande que vous allez terminer votre script .STEP commence ~~~~~~~~~~~~~ un analyse pas à pas du code, ce qui explique parfois la lenteur du dump. La première commande que nous allons utiliser est la commande LOOK, afin de repérer la signature du crypteur .Vous vous souvenez du jmp eax en 40e096 (voir Step 2) .Ca me semble être bien comme signature ...Pourquoi ? Parceque juste après ce jmp eax on saute vers le prog décrypté .De cette façon, en mettant un BP sur cette addresse ,Procdump en déduira que la prochaine addresse mémoire sera le point d'entrée original. jmp eax=FF,E0 en hexadécimale .Donc notre première ligne de code dans le fichier script.ini sera : L1=LOOK FF,E0 (L1 pour ligne 1 bien sur). Ensuite ,il convient de mettre un breakpoint sur cette addresse : L2=BP. Le prog est donc décrypté à cet instant .On peut alors lancer l'analyse pas à pas : L3=STEP. Il est important de noter que vous pouvez aussi définir les options par défaut qui seront utilisés avec ce script : utilisés les commandes OPTL1,OPTL2,OPTL3,OPTL4,et OPTL5 .Je ne peux pas vous expliquer encore leur fonctionnement en détail, car il n'est pas très clair pour moi-même .Généralement j'y vais à taton et ça marche (tout n'est pas flou,mais l'utilisation de certaines options restent obscures) ... Voici le script (à rajouter dans script.ini P1D=STNPE Encrypter 1.xx ; on donne un non et un No à notre nouveau script [STNPE Encrypter 1.xx] L1=LOOK FF,E0 ;regarde la signature de STNPE L2=BP ;met un breakpoint si bonne signature L3=STEP ;commence l'analyse pas à pas OPTL1=00000000 ; ici quelques options mises par défaut pour ce script OPTL2=01010001 OPTL3=01010001 OPTL4=00030000 OPTL5=00000000 Voilà ! Une fois ceci mis dans script.ini, vous pouvez décrypter de façon automatik, les progs compressés avec STNPE Encrypter 1.13 .Vous avez rien à faire : le script fait tout automatiquement (point d'entrée...) .J'espère plus en détail sur les différentes options (OPTLx) dès que j'aurai tout piger ! Si vous voulez d'autres renseignements sur l'écriture des scripts,je ne saurai trop vous conseiller de lire les conseils de l'auteur (G-RoM), dans les fichiers txts inclus avec Procdump 1.5 . TaMaMBoLo