J’ai une petite question : on peux décompiler un .exe ?
Si vous connaissez NC ( Newbie Contest ), j’ai une épreuve ou je dois “cracké” le programme mais je vois pas du tout comment faire à part accèder au code source, alors si quelqu’un peux me dire comment faire
Il existe des désassembleurs qui permettent de récupérer le code Assembleur du programme, cependant l’ASM je crains que tu n’aie pas encore le niveau (ça n’est pas une insulte, l’ASM c’est vraiment super-dur), il me semble que Windasm permet ça.
Oui, on peut décompiler un exe, il est alors décompilé en Assembleur, un langage extrêmement plus dur que le C++.
Résultat, tous les commentaires, noms de variables sont perdus.
Exemple d’assembleur : (source Wikipédia)
(voici un programme qui affiche “Bonjour” dans la console, les trucs suivis de ; sont des commentaires)
[code].globl _start
BONJ: .ascii “Bonjour\n” ; Definition en memoire de la chaine a afficher. \n correspond au saut de ligne
_start: mov $4 , %eax ; Mettre 4 dans le registre eax (appel système ‘’‘Write’’)
mov $1 , %ebx ; Mettre 1 dans le registre ebx (descripteur de fichier ‘‘STDOUT’’)
mov $BONJ , %ecx ; Mettre l’adresse memoire de notre chaine de caractere dans le registre ecx
mov $8 , %edx ; Mettre la taille de la chaine dans edx
int $0x80 ; Interruption 0x80, executant un appel systeme sous Linux)
mov $1 , %eax ; Mettre 1 dans eax (appel systeme ''Exit'')
mov $0 , %ebx ; Mettre 0 dans ebx (valeur de retour du programme)
int $0x80 ; Interruption 0x80, executant un appel système sous Linux)[/code]
Sinon y a pire que l’ASM hein, genre le brainfuck tout ça…
PS : cependant dans le cracking il faut généralement chercher les sauts entre les différents états du programme (avec des instructions de type jmp) qui nous “bloquent” et chercher à les annuler en injectant un petit morceau de code. Si ta competition est pour les débutants je pense que ça doit pas être très compliqué à ce niveau là (pas trop de code).