n*i*t*r*o p*r*o

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

Re: n*i*t*r*o p*r*o

Messagepar rvq35 » 29 Mai 2017, 09:59

etherlord a écrit:Demander à Olly de refaire une analyse du code ?

le fait de faire F2 ne refait pas l'analyse du code ?
etherlord a écrit:isdebuggerpresent : je ne vois pas son intérêt car à priori il n'empêche pas de passer par un désassembleur


Il faut se méfier des à priori.....

je vais essayer de schunter ça alors
etherlord a écrit:Scanne la mémoire à la recherche du serial

Je rentre un serial puis je vais en M recherche text que je retrouve dans la dump mais si je pose un BPM après F2 il fait sauter ce BP
etherlord a écrit:GetWindowsText ?

il n'y a pas cette api pour cette cible :cry:
rvq35
Mega Crackeur !
Mega Crackeur !
 
Messages: 255
Inscription: 07 Mars 2013, 07:21

Re: n*i*t*r*o p*r*o

Messagepar etherlord » 29 Mai 2017, 15:41

le fait de faire F2 ne refait pas l'analyse du code ?


F2 c'est pour activer/désactiver un BP, donc non, je ne pense pas qu'il refasse une analyse du code à ce moment-là....


Je rentre un serial puis je vais en M recherche text que je retrouve dans la dump mais si je pose un BPM après F2 il fait sauter ce BP


si F2 c'est pour activer/désactiver un BP, il fait ce que tu lui demande en gros ? :D


il n'y a pas cette api pour cette cible :cry:


LoadLibrary ?

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

Re: n*i*t*r*o p*r*o

Messagepar rvq35 » 29 Mai 2017, 15:57

etherlord a écrit:le fait de faire F2 ne refait pas l'analyse du code ?

pardon, je voulais dire ctrl+F2
mais je pense que ce n'est pas ce qui permet de refaire l'analyse du code :roll:
pour le reste je vais méditer sur tout ça et essayer d'avancer ...
merci
rvq35
Mega Crackeur !
Mega Crackeur !
 
Messages: 255
Inscription: 07 Mars 2013, 07:21

Re: n*i*t*r*o p*r*o

Messagepar rvq35 » 29 Mai 2017, 18:52

voila ce que j'ai fait. Merci de me dire si ça tient la marée
D'abord neutraliser isdebuggerpresent. Voici la ligne de code. Je nope après de test

00F5C0B8 |. E8 C350FFFF CALL ControlActivation2.00F51180 ; [ControlActivation2.00F51180
00F5C0BD |. 85C0 TEST EAX,EAX
00F5C0BF |.- 79 1C JNS SHORT ControlActivation2.00F5C0DD
00F5C0C1 |. FF15 F0E0F500 CALL DWORD PTR DS:[<&KERNEL32.IsDebugger ; [KERNEL32.IsDebuggerPresent
00F5C0C7 |. 85C0 TEST EAX,EAX
00F5C0C9 |. 90 NOP
00F5C0CA |. 90 NOP
00F5C0CB |. 68 60E7F500 PUSH OFFSET ControlActivation2.00F5E760 ; /String = "ERROR : Unable to initialize critical section in CAtlBaseModule
"
00F5C0D0 |. FF15 A4E0F500 CALL DWORD PTR DS:[<&KERNEL32.OutputDebu ; \KERNEL32.OutputDebugStringW
ensuite je redémarre, F9, je rentre le serial puis ok. Je me trouve dans ntdll. Je vais sur M (bleu pas orange) puis recherche unicode même ascii de mon serial. Mais ... rien !
rvq35 a écrit:Scanne la mémoire à la recherche du serial

c'est pas la manip à suivre, ça ?
etherlord a écrit:LoadLibrary ?

ok mais comment tu l'importes ?
beaucoup de question, je sais ...
Merci
rvq35
Mega Crackeur !
Mega Crackeur !
 
Messages: 255
Inscription: 07 Mars 2013, 07:21

Re: n*i*t*r*o p*r*o

Messagepar etherlord » 30 Mai 2017, 07:45

rvq35 a écrit:D'abord neutraliser isdebuggerpresent. Voici la ligne de code. Je nope après de test


Perso, plutôt que de modifier le code avec des NOP (peut avoir des conséquences, dépend de la façon dont c'est implémenté), je place un BP
sur la ligne qui suit IsDebuggerPresent, et je modifie la valeur de retour au vol pour que le programme continue son chemin avec le code d'origine.

ensuite je redémarre, F9, je rentre le serial puis ok. Je me trouve dans ntdll.
Je vais sur M (bleu pas orange) puis recherche unicode même ascii de mon serial. Mais ... rien !


Premier point, pourquoi tu te retrouve dans ntdll ? il est où ton BP ?

le 'Je vais sur M', pas compris ?

Maintenant, si tu scanne la mémoire liée à ton process, tu pense pas que tu devrais plutôt être dans le programme que tu veut debugger plutôt que dans une DLL système ?

c'est pas la manip à suivre, ça ?


Je sens le dialogue de sourd arriver à grands pas.... :D

etherlord a écrit:LoadLibrary ?

ok mais comment tu l'importes ?


Le programme que tu cible peut, à choix, charger les librairies au démarrage du programme de manière classique, ou (entre autres), choisir d'utiliser l'API LoadLibrary pour
charger une fonction lors du cours de l'exécution du programme. Cela permet de cacher l'API que tu charge aux programmes qui vont scanner le fichier PE pour te dire quelles
sont les API utilisées par le programme. Si ton programme utilise l'API LoadLibrary, tu sait que tu ne trouvera pas toutes les APIs utilisées dans les déclarations.

Après il y a encore plus fin, c'est de scanner l'ensemble de la mémoire pour trouver le point de départ d'une API qui est présente dans une des DLL déjà chargée en mémoire.
Mais bon, là c'est déjà plus rare...

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

Re: n*i*t*r*o p*r*o

Messagepar rvq35 » 30 Mai 2017, 20:16

rvq35 a écrit:Demander à Olly de refaire une analyse du code ?

J'ai essayé plusieurs options mais les liens modifiés restent cassés, alors comment refais tu une analyse de code autre que ctrl+F2 ?
etherlord a écrit:Perso, plutôt que de modifier le code avec des NOP (peut avoir des conséquences, dépend de la façon dont c'est implémenté), je place un BP
sur la ligne qui suit IsDebuggerPresent, et je modifie la valeur de retour au vol pour que le programme continue son chemin avec le code d'origine.
oui mais il ne breake pas à cet endroit et va direct sur la fenêtre de saisie de serial
etherlord a écrit:Maintenant, si tu scanne la mémoire liée à ton process, tu pense pas que tu devrais plutôt être dans le programme que tu veut debugger plutôt que dans une DLL système ?

si je suis d'accord avec toi mais je pensais qu'en scannant la dump il trouverait les données du sérial où il les a placées (je fais référence au cours 6 de Daemons sur winzip avec recherche dans la dump)

Pour conclure, le gros problème que j'ai est que j'essaie de trouver au plus juste l'endroit où poser un BP mais ce n'est pas le bon endroit car juste après avoir saisi un serial bidon, j'appuie sur "ok" et c'est là qu'il quitte le module principal pour aller sur ntdll ! c'est pour ça que je disais que je me retrouve ici.
Comme je le disais dans un post, le plus difficile est de cibler la ligne opportune pour y déposer un BP qui permet ensuite de tracer à coup de F8
Je trouve quand même curieux que je ne puisse pas schunter des sauts via les apis du style regcreatekey ...
Pas simple tout ça ...
Merci en tout cas Etherlord même si parfois je ne saisi pas tout :wink:
rvq35
Mega Crackeur !
Mega Crackeur !
 
Messages: 255
Inscription: 07 Mars 2013, 07:21

Re: n*i*t*r*o p*r*o

Messagepar etherlord » 31 Mai 2017, 08:32

rvq35 a écrit:J'ai essayé plusieurs options mais les liens modifiés restent cassés, alors comment refais tu une analyse de code autre que ctrl+F2 ?


ctrl+F2 c'est redémarrer le programme, pour lui refaire anaylser le code, il faut se placer sur une ligne dans la fenêtre CPU, et utiliser le menu contextuel,
Analysis, Analysis code.

oui mais il ne breake pas à cet endroit et va direct sur la fenêtre de saisie de serial


Donc le flux du programme ne passe pas par l'endroit où tu a posé le BP

si je suis d'accord avec toi mais je pensais qu'en scannant la dump il trouverait les données du sérial où il les a placées (je fais référence au cours 6 de Daemons sur winzip avec recherche dans la dump)


je pense que cela dépend de la façon dont la cible gère cela, ou alors il peut y avoir le cas où le serial que tu entre est directement modifié et à ce moment là tu ne retrouve pas
le serial entré littéralement, il travaille peut-être avec une somme de contrôle, plusieurs possibilités en fait.

Pour conclure, le gros problème que j'ai est que j'essaie de trouver au plus juste l'endroit où poser un BP mais ce n'est pas le bon endroit car juste après avoir saisi un serial bidon, j'appuie sur "ok" et c'est là qu'il quitte le module principal pour aller sur ntdll ! c'est pour ça que je disais que je me retrouve ici.


Quand il s'arrête sur ntdll, Olly te dit qu'il a stoppé suite à une exception ?

Je trouve quand même curieux que je ne puisse pas schunter des sauts via les apis du style regcreatekey ...


Si tu pense que ton programme travaille avec la base de registre, et que le contenu fait fonctionner le programme différemment, tu devrait utiliser process monitor et capturer
tout ce que fait ton programme lorsqu'il tourne en dehors du debugger, cela peut te donner une idée de la façon dont il travaille

Merci en tout cas Etherlord même si parfois je ne saisi pas tout :wink:


Je ne pense pas qu'il y en ait beaucoup qui puissent se vanter de tout savoir :lol:

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

Re: n*i*t*r*o p*r*o

Messagepar rvq35 » 31 Mai 2017, 18:32

etherlord a écrit:Quand il s'arrête sur ntdll, Olly te dit qu'il a stoppé suite à une exception ?

non, pas suite à une exception, il quitte direct après avoir validé le faux serial. J'essaie pourtant de poser le BP à des endroits qui m'inspirent mais faut croire que c'est moins évident que je ne pensais et que je suis au mauvais endroit

J'aimerais savoir si je peux aboutir si je place un BP dans un autre module que la cible en particulier. En effet, si je cherche à récupérer le serial pour qu'il soit testé, une api comme SetdigitemtextW mais qui se trouve en l'occurrence en module mfc120u pourrait être valable. La par contre, après validation du serial, je me retrouve dans ce module sous mon api et à coups de F8 je reviens dans le module controlActivation. Là je peux analyser le code.
Serais je sur la bonne voie ? :)
rvq35
Mega Crackeur !
Mega Crackeur !
 
Messages: 255
Inscription: 07 Mars 2013, 07:21

Re: n*i*t*r*o p*r*o

Messagepar etherlord » 01 Juin 2017, 07:26

Oui, c'est possible de faire comme cela, si c'est la bonne API tu devrait pouvoir suivre la donnée

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

Précédente

Retourner vers Reversing

Qui est en ligne

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