Recherche routine serial

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

Recherche routine serial

Messagepar superguerrier » 18 Novembre 2018, 10:10

Bonjour ,
En ce moment je m’attaque à un soft trial / full validé par un serial pour le boulot.
J’ai un peu avancé mais je suis un peu rebuté pour breaker sur la routine de vérification.
C’est un soft qui gère tout dans une boucle: création fenêtre,acquisition des caractères, vérification serial, gestion des boutons.

J’ai essayé la technique de la pile, ça n’a pas fonctionné ou peut être n’ai Je pas réussi à la mettre en œuvre.pas grand chose dans les call mis à part des fonctions qui ne me disent rien.

Avez vous des techniques qui me permettraient de localiser assez rapidement la routine qui gère la vérification du serial ?

Pour le moment j’ai pu voir ce phénomène en y allant pas à pas et en repassant une vingtaine de fois dans la même boucle jusqu’à apparition de la fenêtre et gestion des événements.

J’utiLise xdbg,le programme n’est pas packe,il y a un accès à la dll isdebuggerpresent ou je ne tombe jamais dessus.

Auriez-vous des petites astuces pour moi? Merci
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Bango » 19 Novembre 2018, 09:45

Qu'est-ce qu'il se passe quand tu saisis un serial ?
Tu as un message? une fenêtre? rien?
\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1577
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Recherche routine serial

Messagepar superguerrier » 19 Novembre 2018, 11:50

j'ai pris des screen:

Code: Tout sélectionner
https://ibb.co/iE9220

https://ibb.co/nx9fpf


lors le la validation du serial,pas de fenetre mais uniquement un message qui s'affiche dans la meme fenetre.

En scrutant le soft c'est bien dans une boucle sur plusieurs niveau de profondeur mais pas de vue d'un check serial
Dernière édition par Bango le 19 Novembre 2018, 14:48, édité 1 fois.
Raison: liens directs
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Bango » 19 Novembre 2018, 14:52

Tu peux essayer de trouver comment est affichée la string (le message d'erreur). Soit c'est une SDR, c'est rare mais pas impossible. Ca peut être une ressource, importée via LoadString ou autre.
Sinon tu peux essayer de trouver comment ton serial est récupéré et voir comment il est testé.
\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1577
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Recherche routine serial

Messagepar superguerrier » 19 Novembre 2018, 15:51

Merci , en ce qui concerne les ressources je ne maîtrise pas trop aurais tu des infos là dessus,comment cela fonctionne ?

Pour l’acquisition du serial j’y ai pensé également, un caractère est récupéré à chaque tour de la boucle et la visualisation est rafraîchie dans une autre partie.
Je vais creuser.
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Bango » 19 Novembre 2018, 17:37

Bon j'ai regardé un peu...
Tu devrais y voir plus clair avec IDR (un decompiler delphi) ;)
Code: Tout sélectionner
https://github.com/crypto2011/IDR

Image

EDIT: Ma capture est faite sur RegForm. Pas sur NagForm...
\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1577
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Recherche routine serial

Messagepar superguerrier » 19 Novembre 2018, 18:37

Merci, je n’en demandais pas tant.
Je voulais juste comprendre ce qu’était une ressource.
J’ai cherché sur Google mais je n’ai pas trouvé de réponse exacte à ce que j’atte
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Bango » 19 Novembre 2018, 18:54

T'inquiète pas... je sais qu'on approche de Noêl, mais il te reste un peu de boulot ;)
La véritable vérification n'a pas lieu là. En fait, ici ça vérifie seulement le "format" de ton serial :P
Après il y a du sha-1 dessus, j'ai pas été plus loin, mais si le serial est stocké sous forme de hash et qu'il est comparé à une base de hash... pour un serial ou keygen, c'est quasi mort.
En revanche, ça se patch bien en modifiant 1 instruction à priori. C'est ça que que tu vas devoir trouver je pense :-D

Au boulot !
\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1577
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Recherche routine serial

Messagepar superguerrier » 25 Novembre 2018, 10:01

je réédite mon message pour en venir a l'essentiel.

j'ai trouve le passage ou le serial était compare a un serial du type xxxx-xxxx-xxxx-xxxx.
deux entrees sont creer dans la base de registre sous forme de hash.
Je pense qu'il y a un qui sert a la limitation de temps, et l'autre doit servir au serial.

j'ai vu que le serial est copie deux fois dans la mémoire, J'ai voulu faire un bpm sur accès pour voir comment le serial était transcris en hash sur les deux occurrence. Quand je break ,le soft réécrit la mémoire avec des strings mais pas moulinette en vue.

Y a t'il une autre astuce pour pouvoir breaker sur la creation du hash.Peut il y avoir un autre endroit ou est stocke le serial temporaire? En regardant sur la pile, il y a obligatoirement un pointeur sur l'adresse mémoire?

J'ai vu également que le soft creait un fichier .dat, apparemment il sert a stocker les paramètres personnels du logiciel.
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Hao » 03 Décembre 2018, 17:36

Bango a écrit:
En revanche, ça se patch bien en modifiant 1 instruction à priori. C'est ça que que tu vas devoir trouver je pense :-D


+1 :-P

Edit : Sinon un patch registre ça fonctionne aussi, si tu veux pas toucher à l'exe.
Avatar de l’utilisateur
Hao
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 307
Inscription: 27 Novembre 2013, 22:24

Re: Recherche routine serial

Messagepar superguerrier » 05 Décembre 2018, 22:06

a titre informatif le patch registre c'est bien le hash de la base de registre que l'on va modifier pour correspondre au hash compare dans le soft
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Hao » 05 Décembre 2018, 22:56

superguerrier a écrit:a titre informatif le patch registre c'est bien le hash de la base de registre que l'on va modifier pour correspondre au hash compare dans le soft


Ouep.
Avatar de l’utilisateur
Hao
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 307
Inscription: 27 Novembre 2013, 22:24

Re: Recherche routine serial

Messagepar superguerrier » 08 Décembre 2018, 09:39

je suis toujours sur mon soft et je viens quémander un peu d'aide si cela était possible.

Je suis noyé dans le code et je m'y perd, il y a tellement de call.
voila ou je suis rendu:

il y a une partie du code ou une table de 30 dword est créer en faisant un xor a partir du hash de la base de registre.
Je me suis renseigne sur le sha1,cette table est ce que l'on appelle une Rainbow table?

le hash de la base de registre n'est plus utilise après ou alors il a changer d'emplacement mémoire car je ne break plus dessus. Il faut donc partir de la table crée.

Sur cette table il y a une modification 15 dword du milieu de la table sont recopie a partir du debut de la table.Je ne comprend pas pourquoi creer une table et supprimer une partie en recopiant une partie du meme code.

C'est bizarre au vue du code j'ai comme l'impression que qu'un autre hash est calcule a partir d'un premier hash et qu'il n'y a pas vraiment de consultation de base de donnée de hash valide.

j''aimerais bien une astuce si possible pour éviter de rentrer dans tous les call,savoir si ma deduction a present est bonne,comment faire pour eviter d'etre perdu dans le code
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Re: Recherche routine serial

Messagepar Hao » 08 Décembre 2018, 09:49

superguerrier a écrit:Je me suis renseigne sur le sha1,cette table est ce que l'on appelle une Rainbow table?


Non. Une rainbow table est une table pré-calculée qui contient des couples Hash : Pass. Ça permet de casser un hash sans avoir besoin de bruteforce (à condition qu'il soit présent dans la table).

Les DWORD qui sont modifiés font partie de la solution. Donc tu cherches au bon endroit.
Il faut observer le code qui travail sur ses DWORD. :)
Avatar de l’utilisateur
Hao
Ultra Crackeur !!
Ultra Crackeur !!
 
Messages: 307
Inscription: 27 Novembre 2013, 22:24

Re: Recherche routine serial

Messagepar superguerrier » 09 Décembre 2018, 08:45

tout d'abord mer ce vos aide bango et hao.

C'est bon j'ai réussi, au lieu de reverser pour trouver un hash qui corresponde aux DWORD == 0,j'ai fait un jump a la place d'un jne.

Au niveau du Jne il vaut mieux faire un jump ou faire un nop?

Il y a un truc que je n'ai pas compris, avec un hbp, je suis arrive dans une partie ou le milieu du tableau était déplacé vers le haut, en mettant des bp classique a la place, on ne passe plus cette étape.
De plus je n'ai pas été embete avec l'api IsDebuggerPresent.Le hbp est il prioritaire a cette api?
superguerrier
Débutant
Débutant
 
Messages: 28
Inscription: 29 Décembre 2017, 19:04

Suivante

Retourner vers Reversing

Qui est en ligne

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