Application du cours 15#2

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

Re: Application du cours 15#2

Messagepar GROUPF » 08 Août 2017, 10:04

Moi j'ai pas encore réussi, vous pourriez m'expliquer ce que vous avez fait exactement ?

merci d'Avance !
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar GROUPF » 10 Août 2017, 17:04

Hao ? Happyman, est ce que vous pourriez m'expliquer j'arrives toujours pas à trouver comment on peux self keygen le logiciel, ni même comment on peut exploiter la faille du keygen / serial avec une longueur de caractère constante.

Merci !
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar Hao » 11 Août 2017, 09:43

Dès que j'ai un moment, je reprend la cible pour me rafraichir la mémoire.
Mais déjà, il est possible de résoudre le problème de deux façon :
- serial fishing
- patch
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar Hao » 11 Août 2017, 11:24

J'ai regardé.
Les infos d'enregistrement sont stockées dans le fichier user3.key.

C'est le point de départ du commencement du pourquoi et du comment.

Si tu veux fish le serial, une solution (y en a surement d'autres), c'est de chercher à quel moment ce fichier est ouvert. Ça va te donner un point de départ pour l'analyse du problème.
Tu peux utiliser les API pour ça.
Une fois que tu trouves ça, il faut ensuite trouver à quel endroit le fichier est lu.
Si tu y parviens, la solution n'est pas très loin...

PS : En parallèle du debugger, tu peux utiliser ProcessMonitor (Sysinternals), ça aide. C'est pratique pour voir en temps réel, les accès aux fichiers, registre, etc... :idea:
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar GROUPF » 18 Août 2017, 16:09

Salut Hao,

J'ai bien essayé mais je sait pas comment trouver l'API quiest en lien avec user3key, et encore moins l'API qui litla value du code.

Tu pense que c'est dans le exe ou un module Dll ?
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar Hao » 18 Août 2017, 18:18

L'ouverture du fichier se fait avec la fonction kernel32.CreateFileA ou kernel32.CreateFileW. Ensuite tu peux trouver assez facilement l'endroit ou il est lu en traçant à partir de son ouverture.
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar GROUPF » 18 Août 2017, 18:22

Merci,

Tu as pas un lien vers un tuto API qui se rapprochait de ce que j'ai à faire, parce que la je met pleins de BP mais le soft ne s'y arrête jamais... parce que je viens de comprendre que c'est juste des lignes qui permettent de mettre des lignes de caractères en mémoire...

J'utilise x64dgb, et comme les tutos sont pour olly, je suis complètement paumé.
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar Hao » 18 Août 2017, 18:57

Tu t'arrange pour break avant que le soft ouvre le fichier. Puis Recherche=>Module courant=>Appels intermodules.
Tu devrais trouver l'api dont je parle.
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar GROUPF » 18 Août 2017, 19:00

Salut :


Tu croit que c'est ça ? par contre c'est dans une dll (advapi.dll) C'est normal ou ça devrait être dans le module main .exe ?

Code: Tout sélectionner
00007FFC2DD8ADED | FF 15 D5 23 06 00        | call qword ptr ds:[<&CreateFileW>]                                          |
00007FFC2DD8ADF3 | 48 83 F8 FF              | cmp rax,FFFFFFFFFFFFFFFF                                                    |
00007FFC2DD8ADF7 | 0F 85 CE 69 01 00        | jne advapi32.7FFC2DDA17CB                                                   |
00007FFC2DD8ADFD | 48 8B C8                 | mov rcx,rax                                                                 | rcx:L"C:\\WINDOWS\\System32\\AppLocker\\MDM"
00007FFC2DD8AE00 | FF 15 8A 23 06 00        | call qword ptr ds:[<&CloseHandle>]                                          |
00007FFC2DD8AE06 | 48 8B 4D 90              | mov rcx,qword ptr ss:[rbp-70]                                               |
00007FFC2DD8AE0A | 48 85 C9                 | test rcx,rcx                                                                | rcx:L"C:\\WINDOWS\\System32\\AppLocker\\MDM"
00007FFC2DD8AE0D | 74 06                    | je advapi32.7FFC2DD8AE15                                                    |
00007FFC2DD8AE0F | FF 15 6B 31 06 00        | call qword ptr ds:[<&NtClose>]                                              |
00007FFC2DD8AE15 | 85 F6                    | test esi,esi                                                                |
00007FFC2DD8AE17 | 0F 88 FC 04 00 00        | js advapi32.7FFC2DD8B319                                                    |
00007FFC2DD8AE1D | 85 DB                    | test ebx,ebx                                                                |
00007FFC2DD8AE1F | 0F 85 BA 69 01 00        | jne advapi32.7FFC2DDA17DF                                                   |
00007FFC2DD8AE25 | 48 8D 15 2C 4E 06 00     | lea rdx,qword ptr ds:[7FFC2DDEFC58]                                         | 7FFC2DDEFC58:L"APPX"



Bon et maintenant c'est quoi l'API pour lire le fichier ?
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar Hao » 18 Août 2017, 19:17

Non l'appel se fait bien dans le .exe.
Pour la lecture ça doit être kernel32.ReadFile. Mais j'ai pas du m'en servir. J'ai simplement break au moment ou le fichier est ouvert, et j'ai tracé à partir de là.
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar GROUPF » 18 Août 2017, 20:34

Tu pourrais me dire exactement comment tu as fait avec les lignes BP et les trucs que tu as modifié ?

Ca serait trop top ! Je pige pas grand chose au code assembleur, surement que ça maiderait à comprendre un peu mieux !

Merci
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar Hao » 18 Août 2017, 21:18

Je vais essayer de te faire un résumé quand j'aurais le temps.
Mais déjà es-tu sûr de bien debugger le module principal ? Parce que j'ai du faire un peu d’artisanat pour debug le truc avec x64dbg...
Elle est un peu rebelle ta cible. :)
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar GROUPF » 19 Août 2017, 10:58

J'ai trouvé l'appel de la funct dans le dll que je t'ai dit et ensuite j'ai fait crtl + F9 pour aller jusqu'au return, mais je revient jamais dans le module principal .

Prends ton temps :)

Merci d'avance !
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours 15#2

Messagepar Hao » 19 Août 2017, 12:19

Bon, alors la première chose à faire c'est de debug au bon endroit.
Donc je vais t'expliquer comment break dans le module principal. A partir de là, tu pourras regarder à quel moment le fichier de licence est ouvert.
Je ne peux pas vraiment t'en dire plus sans te filer la solution pré-machée, ce qui n'est pas le but.

On va utiliser une technique présente dans le petit guide du reverse à la moissonneuse batteuse.
Ouvre l'éxecutable avec un éditeur héxa.
Puis à l'offset : ADB00, remplace 40 53 par EB FE.
Sauvegarde le fichier.

En patchant de la sorte, on place une instruction qui va itérer sur elle même (une sorte de bp, mais en plus crade). On pourrait faire la même chose en utilisant une interruption, mais ça donne parfois des comportements inattendus.

Ensuite, il suffit de lancer l'exe patché (en dehors du debugger). Le soft lancé, rien ne se passe, et c'est normal parce qu'il est en train d'éxecuter le fameux EB FE.
On s'attache ensuite au processus avec le debbugger. Au moment de sélectionner le processus, tu va voir qu'il y en a deux du même nom. Le programme a fait un "fork".
Sélectionne le premier.

Le debugger va break dans une DLL système. Pour aller sur notre EBFE, "F9" puis "F12". Et là si tout se passe bien, tu vas atterrir sur un "jmp", c'est l'EBFE.
A partir de là, tu es dans le module principal et tu vas pouvoir commencer à travailler.
Avant toute chose, il faut remplacer l'EB FE par l'instruction d'origine pour éviter les problèmes. Donc soit tu édites (ctrl-e) et tu remplace par 40 53. Soit tu assemble : PUSH RBX.

Ceci étant fait, tu peux faire une recherche des appels intermodules pour trouver les appels à la fonction qui t'intéresse (le create file).
Avatar de l’utilisateur
Hao
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 130
Inscription: 27 Novembre 2013, 22:24

Re: Application du cours 15#2

Messagepar GROUPF » 19 Août 2017, 13:42

Comment je peux m'attacher à un processus avec X64dgb ?

Merci
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

PrécédenteSuivante

Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 3 invités