[Résolu] Question d'un profane sur ASM x86

Tout sur les langages de programmation.

[Résolu] Question d'un profane sur ASM x86

Messagepar Hao » 30 Janvier 2015, 16:21

Bonjour à tous,

Excusez ma navrante ignorance en langage d'assemblage x86, mais je me demandais simplement comment coder un breakpoint dans une application.

Je ne me suis jamais vraiment posé la question parce que d'habitude j'utilise un simple JMP qui saute à l'instruction précédente, puis j'écrase l'instruction dite avec des nop (ça évite par exemple les stack overflow). Mais bon je ne trouve pas ça "propre" et ça bouffe deux instructions.

J'utilise ça pour pouvoir me rattacher au process avec olly quand le programme à une protection contre le débuggage au lancement.
Dernière édition par Hao le 31 Janvier 2015, 18:57, édité 1 fois.
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 113
Inscription: 27 Novembre 2013, 22:24

Re: Question d'un profane sur ASM x86

Messagepar Horgh » 30 Janvier 2015, 17:16

Avec un INT 3 (0xCC) ?

hxxp://download.intel.com/design/intarc ... 319101.pdf p. 3-306

Je ne me suis jamais vraiment posé la question parce que d'habitude j'utilise un simple JMP qui saute à l'instruction précédente, puis j'écrase l'instruction dite avec des nop (ça évite par exemple les stack overflow).


Pourquoi ne pas simplement faire un EBFE ?
Avatar de l’utilisateur
Horgh
Maître des ténèbres
Maître des ténèbres
 
Messages: 526
Inscription: 21 Janvier 2010, 16:24

Re: Question d'un profane sur ASM x86

Messagepar Hao » 30 Janvier 2015, 18:35

Alors pour le INT 3, j'ai déjà essayé de l'utiliser, mais ça n'a pas vraiment l'effet escompté. Sur certains softs, ça génère une exception, et quand je me rattache au process avec Olly ça m'envoie sur une portion de code complètement différente ou ça m'envoie directement sur l'instruction de fin du programme.
Peut être une protection ?

EBFE, je ne connais pas, mais je suppose que c'est un branchement inconditionnel sur lui même ? Car quand je le fait avec un JMP, Olly me convertit directement le code en :
Code: Tout sélectionner
CPU Disasm
Address   Hex dump          Command                                  Comments
004887C4      EB            DB EB
004887C5      FE            DB FE


Y aurait-il quelque part de la documentation concernant le fonctionnement de ces instructions ? Je ne les trouves pas dans ma doc asm ni dans le pdf dont tu m'as donné le lien.
D'ailleurs merci pour le PDF, je vais le conserver précieusement car il est bien plus fourni que ma doc.

En tout cas EBFE fait parfaitement l'affaire. Merci.
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 113
Inscription: 27 Novembre 2013, 22:24

Re: Question d'un profane sur ASM x86

Messagepar dionosis » 31 Janvier 2015, 00:11

Salut,

EB : jmp short : saut court relatif (à la fin de l'instruction, donc adresse + 2). Court relatif donc précisé sur 1 octet signé.
FE : l'octet signé justement : -2

Donc EBFE saute indéfiniment sur lui-même, ni plus ni moins.

Si Olly ne te l'interprète pas comme il faut c'est probablement que ta section en 4887c5 ne doit pas être celle de l'EP.
CTRL + A, et si ça marche pas, CTRL + BACKSPACE.

Code: Tout sélectionner
CPU Disasm
Address   Hex dump                     Command                                                          Comments
004415D5      EB FE                    jmp short 004415D5

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Question d'un profane sur ASM x86

Messagepar Horgh » 31 Janvier 2015, 01:24

Sur certains softs, ça génère une exception, et quand je me rattache au process avec Olly ça m'envoie sur une portion de code complètement différente ou ça m'envoie directement sur l'instruction de fin du programme.

Probablement que tu atterris à un moment ou à un autre dans un exception handler (SEH / VEH).

cf. hxxp://www.godevtool.com/ExceptFrame.htm
Avatar de l’utilisateur
Horgh
Maître des ténèbres
Maître des ténèbres
 
Messages: 526
Inscription: 21 Janvier 2010, 16:24

Re: Question d'un profane sur ASM x86

Messagepar Hao » 31 Janvier 2015, 16:07

Ok, merci pour vos réponses. C'est déjà plus clair. :D
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 113
Inscription: 27 Novembre 2013, 22:24


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités