Recherche d'adresse dans ollydbg

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Recherche d'adresse dans ollydbg

Messagepar crypto » 02 Août 2018, 10:17

Bonjour à tous,

En relisant le cours n°5 de Crisanar, je me rends compte qu'il y a un passage que je n'ai pas compris. Pour résumer, sur ollydbg, il a sur la dernière ligne ceci:

Code: Tout sélectionner
004011C4 > .- FF25 00204000   JMP DWORD PTR DS:[<&kernel32.IsDebuggerPresent>];  kernel32.IsDebuggerPresent


Mon but est de trouver quelle est la ligne qui appelle celle ci-dessus (donc en 004011C4) mais pour cela je bloque totalement car je ne trouve pas clair le passage du cours:

"L'appel à cet API (le JUMP DWORD tout à la fin du programme en fait) se fait en 40116C. En fait j'ai utilisé une petite astuce pour cacher l'appel de cette fonction : je n'ai pas fait un CALL IsDebuggerPresent directement mais un CALL [addresse_de_la_fonction]. Olly ne reconnaît plus la fonction de cette façon. Pour trouver où l'appel se fait, soit on cherche ce nombre dans le code (un truc du style [0040116C] ), soit on sélectionne la ligne du JUMP DWORD de la fonction, on ajoute un label (' : ') et on ecrit le nom de la fonction comme label. Quelque soit la méthode que vous choisirez, vous devriez trouver IsDebuggerPresent en 40106A."

Le lien du cours est ici pour ceux qui auront la gentillesse de m'aider: http://deamonftp.free.fr/deamoncrack/Tuts/Crisanar/cours5.htm

J'ai également cherché sur le forum, un membre avait déjà posté un sujet semblable (http://www.forumcrack.com/viewtopic.php?f=9&t=11597) mais je ne l'ai pas plus compris!

Ma question est donc relativement simple: comment trouver la ligne qui va appeler le code ci-dessus? J'espère avoir été clair.

Merci d'avance à ceux qui prendront la peine de me répondre,

Crypto
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar Hao » 02 Août 2018, 15:18

Salut,

en fait le JMP est appelé de façon détournée.
Y a plusieurs solutions pour t'en sortir.

Je pense que celle proposée par l'auteur consiste à chercher si l'adresse ou se situe l'instruction JMP ne se retrouve pas quelque part...
Ou tu peux break au niveau du JMP et regarder d'un peu plus près la pile... :)
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 02 Août 2018, 17:23

Merci de ta réponse!

Justement ma question, qui peut paraître simple, est que je n'arrive pas à trouver sur ollydbg le moyen de chercher l'adresse. Ce que je souhaite c'est pouvoir trouver toutes les occurrences de cette adresse (ici 004011C4) de façon à trouver laquelle est utilisée pour appeler la fonction. :)

Crypto
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar Hao » 03 Août 2018, 09:06

Pour chercher du binaire c'est "Ctrl-B". Cependant, attention à l'ordre des octets... :P
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 03 Août 2018, 10:26

J'ai fait ce que tu m'as dit mais cela ne marche pas. En effet, je fais Ctrl+B, je tape C4114000 (on inverse bien car little endian?) mais le programme ne m'affiche rien de plus, qu'un "paused" en bas à droite, alors qu'il n'y a ni BP ni rien. J'aimerais qu'il m'affiche les résultats que j'attends! :)
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar etherlord » 03 Août 2018, 12:43

la recherche, tu la fait dans la section DUMP ?

etherlord
etherlord
Triumvirat
Triumvirat
 
Messages: 2549
Inscription: 22 Mars 2004, 16:12

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 03 Août 2018, 18:46

Si je la fais dans la section dump, je trouve bien quelque chose, mais à l'adresse 00403030 voir le screen.
Image

Sauf que je souhaite trouver l'adresse qui appelle la fonction, soit 40106A :)

Crypto
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar Hao » 04 Août 2018, 10:40

Il faut chercher dans le code un endroit qui fait non pas référence à 004011C4 directement, mais à l'adresse ou se trouve 004011C4 dans le dump.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 04 Août 2018, 11:52

Pourrais-tu m'expliquer comment on procède? En fait je ne trouve juste pas la fonction de ollydbg (qui doit exister tellement elle est basique):
En 40106A voici ce qu'il y a
Code: Tout sélectionner
0040106A  |. FF35 39304000  PUSH DWORD PTR DS:[403039]          ;  KeygenMe.004011C4


On voit bien que l'adresse 004011C4 apparaît en label d'où ma question: peut-on chercher parmi tous les labels l'un qui contient cette chaîne "4011C4" sans connaître forcement ce qu'il y a devant?
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar Hao » 04 Août 2018, 12:21

crypto a écrit:Pourrais-tu m'expliquer comment on procède? En fait je ne trouve juste pas la fonction de ollydbg (qui doit exister tellement elle est basique):
En 40106A voici ce qu'il y a
Code: Tout sélectionner
0040106A  |. FF35 39304000  PUSH DWORD PTR DS:[403039]          ;  KeygenMe.004011C4


On voit bien que l'adresse 004011C4 apparaît en label d'où ma question: peut-on chercher parmi tous les labels l'un qui contient cette chaîne "4011C4" sans connaître forcement ce qu'il y a devant?


Tu as trouvé ou était situé 004011C4 dans le dump (l'adresse). Donc fait une recherche binaire Ctrl-B dans la partie code de l'adresse que tu as trouvé.
Indice regarde bien la représentation hexa de l'instruction PUSH DWORD PTR DS:[403039].
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 04 Août 2018, 18:50

C'est bien ce que j'ai fait mais sans succès, d'où ma question! :)
Je veux simplement trouver les références à 004011C4 dans les labels il n'y a pas de fonctions pour cela?

Et pour ce que tu me dis voici ce que j'ai fais (en reprenant tout de zéro):

1. Dans la partie code j'ai ceci et veux savoir la ligne qui appelle cette ligne ci:
Code: Tout sélectionner
004011C4   .-FF25 00204000  JMP DWORD PTR DS:[<&kernel32.IsDebuggerP>;  kernel32.IsDebuggerPresent


2. Je vais dans le dump, search for -> binary string, je recherche C41140, et je tombe sur ça:
Image
Donc l'adresse est 00403039. Cependant si je vais à cette adresse dans le code je ne suis pas du tout là où je souhaite, c'est-à-dire pas sur la ligne qui va appeler l'autre.

Merci de votre aide,

Crypto
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar Hao » 04 Août 2018, 21:08

T'embête pas avec les labels.
C'est la bonne adresse (00403039). Il ne faut pas chercher à te rendre à cette adresse dans le code (elle est en dehors de la section code), il faut chercher à quel endroit le code fait référence à cette adresse. Il faut faire une recherche binaire dans la section code.

0040106A |. FF35 39304000 PUSH DWORD PTR DS:[403039] ; KeygenMe.004011C4

:mrgreen:
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 05 Août 2018, 09:51

Mais c'est toujours la même question: comment rechercher dans le code cette adresse 00403039 ? Car je vois qu'il ne faut pas aller à cette adresse en tant que telle, mais chercher les occurrences de celle-ci. Cependant un search for binary string dans le code ne me donne rien d'autre!

Et pour l'adresse que tu me surlignes en rouge je ne peux pas l'utiliser puisqu’il s'agit de la ligne que je suis censé trouver! :)
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09

Re: Recherche d'adresse dans ollydbg

Messagepar Hao » 05 Août 2018, 20:25

Ben il faut chercher avec ctrl-b avec l'ordre des octets en little endian. Si tu n'y arrives pas, utilise un memory bp, tu le pose dans le dump.
Sinon tu break sur le JMP, ensuite F8 puis ctrl-F9, tu vas arriver juste après l'appel.
Avatar de l’utilisateur
Hao
Mega Crackeur !
Mega Crackeur !
 
Messages: 279
Inscription: 27 Novembre 2013, 22:24

Re: Recherche d'adresse dans ollydbg

Messagepar crypto » 06 Août 2018, 11:45

Merci de ton message,

Bon finalement je pensais qu'il pouvait y avoir plus simple mais apparemment non. J'ai donc mis un BP sur le JMP, regardé sur la pile l'adresse qui avait été posée au préalable vers le jump et je tombe près de la ligne voulue. Merci à ceux qui m'ont aidé! :)
crypto
 
Messages: 8
Inscription: 02 Août 2018, 10:09


Retourner vers Reversing

Qui est en ligne

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