rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Fonctionnement d'un debugger ( tel Turbo Debu

Posté par Pascal, le vendredi 20 juin 2003 à 11:56:41
Salut à tous,
J'aimerai savoir comment fonctionne un Debugger DOS (unpeu comme Turbo Debugger de borland).
Comment fait il pour executer un programme pas à pas ?
CAD : comment un programme peu executer un autre programme instruction par instruction ?
Doit-on désassembler le programme et mettre des points d'arret après chaque instructions ?
Comment fonctionne le Trap Flag ? et comment fonctionnent les interruptions 1 et 3 ????
Bref .... Comment créer un mini debugger en somme ?
Répondre à Pascal  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le vendredi 20 juin 2003 à 12:05:02
Il y a plusieurs méthodes.

La plus classique consiste à utiliser une fonctionnalité des processeurs Intel qui permet, après chaque instruction, d'aller exécuter un bout de code (le débugger lui-même).

Autre solution assez courante: le coup de l'interruption 3.
Le débugger détourne l'interruption 3 vers lui, remplace l'instruction suivante du programme par INT 3 et exécute l'instruction qui précède.
L'instruction s'exécute, l'INT 3 renvoie au débugger qui déplace l'INT 3 à l'instruction suivante, etc.

(Je ne sais pas si j'ai été très clair...)
Répondre à sebsauvage

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le vendredi 20 juin 2003 à 12:07:14
Comment créer un mini debugger en somme ?

Ouf... là je ne m'y risquerai pas... mais c'est faisable !

Mais tu as très bien... c'est effectivement Trap Flag et INT1/3.
(Il arrive qu'on utilise INT 1 à la place de 3 quand les programmes l'utilisent (assez rare)).

Je me souviens aussi avoir utilisé Protect!EXE/COM, un petit wrapper d'EXE anti-débugging assez génial qui envoyait bouler la totalité des débuggers, fingueur in zeu noze.
Répondre à sebsauvage

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le vendredi 20 juin 2003 à 13:11:30
"Mais tu as très bien" --> "Mais tu as très bien vu"

(faut que je dorme plus |-)
Répondre à sebsauvage

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Pascal, le vendredi 20 juin 2003 à 13:26:39
Donc , on doit OBLIGATOIREMENT désassembler le prog .... ???
Pourtant , meme si Turbo debuger se trompe lors du désassemblage , il arrive quand meme a tracer le code correctement ... (s'il se trompe sur le longueur de l'instruction suivante il devrait planter....).
Je pense que TD désassemble le code pour nous l'afficher , mais qu'il le trace sans se soucier du travail precedent ....
Il semble tracer le code indépendament des mnémoniques qu'il affiche....
Si on utilise un piége anti désassembleur (saut au millieu d'une instruction) TD se trompe dans la traduction mais trace correctement le code ..... Mystère .....
N'y à t il pas un GURU du Débugger ici ??? A l'aide !!!!! 8-)
ps : Comment configurer le TRAP FLAG ?
Répondre à Pascal

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le vendredi 20 juin 2003 à 14:06:23
Donc , on doit OBLIGATOIREMENT désassembler le prog .... ???
Pas du tout.
Mais ton débugger doit absolument connaître le format des instructions en langage machine (rien que pour pouvoir poser correctement les points d'arrêt).

Désassembler et afficher à l'écran ne sont pas une obligation :-)

Mais ceci dit, si ton débugger ne sait pas désassembler, le débogage sera très pénible pour l'utilisateur (personnellement, je ne lis pas le langage machine dans le texte. A part quelques instructions genre CALL, INT ou NOP :-)


Si on utilise un piége anti désassembleur (saut au millieu d'une instruction) TD se trompe dans la traduction mais trace correctement le code ..... Mystère .....

Il arrive que le désassembleur se trompe en commençant au mauvais endroit.
C'est le microprocesseur lui-même qui incrémente le pointeur d'instruction. Le débogueur se contente de récupérer ce pointeur d'instruction. Il est donc systématiquement bien placé.

Résultat: on peut avoir un pointeur d'instruction qui pointe au milieu d'une instruction qu'affiche le désassembleur.
C'est bug du désassembleur.

N'y à t il pas un GURU du Débugger ici ??? A l'aide !!!!! 8-)
ps : Comment configurer le TRAP FLAG ?


Désolé, je n'ai fait que faire mumuse avec tout ça... :-)
Répondre à sebsauvage

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Pascal_, le mardi 15 juillet 2003 à 13:21:15
Tout d'abord merci beaucoup websauvage .
Je ne pretend pas programmer un Turbo Debugger like :o)
Je souhaite juste en connaitre unpeu plus sur les debugger et les systèmes heuristiques ( anti viral) .... malheureusement ..... je n'ai pas beaucoup de temps (comme beaucoup).
Je n'arrive pas a trouver de doc sur les interruption de debuggage .... je sais qu'il faut configurer le TRAP FLAG ....
Bon , je cherche , et si je trouve je post la solution .
Merci beaucoup. A bientot j'espere :o)
Répondre à Pascal_

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Pascal, le samedi 13 septembre 2003 à 12:38:31
la solution est ICI :

http://vx.netlux.org/lib/vdi01.html
http://vx.netlux.org/lib/vdi02.html

En gros : on detourne l'int 1 vers notre routine puis on met le trap flag à 1.

pushf
pop ax ;Save the flag
or ax,0100 ;Set the TF to ON
push ax
popf

AVANT chaque code l'int 1 est appelée.
Répondre à Pascal
Logiciels pertinents trouvés dans les téléchargements
Télécharger Orbit 2.7.2Orbit - Orbit Downloader est un gestionnaire de téléchargement permettant de télécharger facilement et à haut débit du contenu rich...Catégorie: Téléchargement
Licence: Freeware/gratuit
Télécharger Le-Telephone.net   1.3Le-Telephone.net - Vous pouvez désormais communiquer gratuitement partout dans le monde. Le-Telephone.net est un programme permettant de...Catégorie: Téléphonie/Voix sur IP
Licence: Freeware/gratuit
Télécharger Teleport Pro 1.54Teleport Pro - Teleport Pro est un outil polyvalente pour aspirer à grande vitess des données sur Internet. Vous pouvez, après...Catégorie: Aspirateurs de site
Licence: Shareware
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Fonctionnement d'un debugger ( tel Turbo Debu »