Tracer les Dlls - Outils et Exercices

U

ulmo

Invité
Existe-t-il des tutoriaux pour ollydbg ?
Je m'interesse à un autre programme que D2, donc je ne peux pas poser mes questions ici ni sur PK, mais je suis completement ineficace dans ma pose de breakpoints...
 
M

Myrdinn

Invité
Désolé Ulmo j'avais loupé ce point.
Oui je crois qu'il existe un tutorial dédié Diablo2 chez PK, mais la base reste la même pour tous.
Ensuite la découverte des toutes premières fonctions est la phase la plus difficile, c'est une histoire de plusieurs dizaines d'heures. Mais rassures toi, plus tu comprendras la structure du programme que tu débug et plus ca devient facile.
En attendant quelle méthode as tu choisie pour placer tes premiers BreakPoints ???
 
U

ulmo

Invité
Merci de venir répondre :)
En fait c'est pour un rogue-like (tu connais peut-être Nethack ou un équivalent...) : le jeu attend que tu appuies une touche et agit en conséquence, puis attend à nouveau.
Je pensais donc qu'il suffisait de se placer à la sortie de la boucle d'attente, mais ça ne marche pas ainsi. La boucle fait appel à des fonctions systèmes et la sortie de la boucle se fait loin à l'intérieur de "ntdll" ou "USER32". Comme mes connaissances du système et de l'assembleur sont vraiment succintes, ça fait quelque chose d'énorme à explorer...
Y a-t-il un moyen d'attraper le premier retour au programme principal (autre que mettre un breakpoint à chaque ligne :D ) ? ou de stopper au premier appel de fichier puisque je cherche pour le moment les fonctions sauvegarder/charger ?
 
M

Myrdinn

Invité
[citation=4606874,30,14][nom]Ulmo a écrit[/nom]Merci de venir répondre :)[/citation]
Tu es le bienvenu c'est un sujet sur lequel j'aime partagé

En fait c'est pour un rogue-like (tu connais peut-être Nethack ou un équivalent...) : le jeu attend que tu appuies une touche et agit en conséquence, puis attend à nouveau.
OK pour le contexte

Je pensais donc qu'il suffisait de se placer à la sortie de la boucle d'attente, mais ça ne marche pas ainsi. La boucle fait appel à des fonctions systèmes et la sortie de la boucle se fait loin à l'intérieur de "ntdll" ou "USER32". Comme mes connaissances du système et de l'assembleur sont vraiment succintes, ça fait quelque chose d'énorme à explorer...
Oui c'est une piste un peu difficile à suivre

Y a-t-il un moyen d'attraper le premier retour au programme principal (autre que mettre un breakpoint à chaque ligne :D ) ? ou de stopper au premier appel de fichier puisque je cherche pour le moment les fonctions sauvegarder/charger ?
Je n'ai pas ollydbg sous la main, je t'en dirais plus quand ce sera le cas. Ce que tu peux faire c'est mettre le programme en pause (par défaut quand tu démarre ollydbg et que tu t'attaches au process.
Ensuite tu mets le trace en route avec capture vers écran de trace.
Tu enleves la pause tu cliques et tu arrêtes le trace. Tu obtiendras des millier de lignes mais tu devrais voir ou tu reviens :)
Bon je dis ca sans voir l'interface, a voir si c'est faisable :)
 
U

ulmo

Invité
Petit problème : en mode trace, les touches ne sont plus prises en compte...
 
M

Myrdinn

Invité
ah oui dommage :)
Ok il y a encore d'autres pistes je vais prendre le temps de te guider.
a suivre ...
 
C

chaostar

Invité
Bonjour, j'arrive un peu comme un cheveu sur la soupe, mais le sujet m'interesse, et les liens vers les 3 premiers épisodes sont morts :(
Ton travail est il perdu, Mydrinn ? Pas moyen d'en retrouver une trace ?

En tout cas, merci de prendre le temps de partager ta connaissance ;)
 
C

chaostar

Invité
[citation=4607606,40,9][nom]myrdinn a écrit[/nom]OK Chaostar je vais remettre les liens à jour :)[/citation]

Merveilleux ! Je te remercie ! ;)
 
Haut