[lvl 1]Keygenme k4n2 by tHE ANALYST

Des défis de cracking qui vous mettront à l'épreuve...

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 06 Août 2016, 14:11

Bon je doute que des gens continu de lire ce thread en particulier, mais je coince sur ce petit joujou.

J'ai déjà fait pas mal de chemin comparé au serial fishing de la dernière fois car j'ai un début d'algo de KG en ASM. Par contre, j'ai un gros doute sur la valeur de EDI (0019F2C0h), j'ai l'impression qu'elle est modifiée via des fonction GetSystemDate et GetSystemTime des le début du défi (ce qui fait qu'un KG avec une valeur de EDI fixe n'est pas bon, et ne fonctionnera pas sur toute les machines).

Ensuite, mon EBP-38h ne me donne pas les même résultats que le keygenme lui même alors que je reste relativement proche de la src originale (je dit relativement car si ca ne marche pas, c'est que j'ai une modification quelque part). Pour le reste, avec ma valeur fixe de EDI pour le moment cela est correct sur mon PC, mais jusqu'à quand ...

Code: Tout sélectionner
; Generation routine
  XOR EAX,EAX
  MOV DWORD PTR SS:[EBP-3Ch],EAX
  XOR EDX,EDX
  MOV DWORD PTR SS:[EBP-40h],EDX
  XOR ECX,ECX
  MOV DWORD PTR SS:[EBP-44h],ECX
  XOR EAX,EAX
  MOV DWORD PTR SS:[EBP-48h],EAX
  XOR EDX,EDX
  MOV DWORD PTR SS:[EBP-4Ch],EDX
  XOR ECX,ECX
  MOV DWORD PTR SS:[EBP-50h],ECX
  XOR EAX,EAX
  MOV DWORD PTR SS:[EBP-54h],EAX
  XOR EDX,EDX
  MOV DWORD PTR SS:[EBP-58h],EDX
  mov   edi, 0019F2C0h

      xor    ebx, ebx
   xor    edx, edx
   mov    esi, offset sName
  @@:
       ;Compte le nombre de char dans EDX
   movzx   ebx, byte ptr [esi]
   inc      edx
   inc      esi
   cmp      byte ptr [esi], 0h
   jnz @B
   
   add      dword ptr [EBP-3Ch], edx   
   add      dword ptr [EBP-3Ch], edx   
   xor      eax, eax
   mov      eax, edx
   add    eax, 05h
   mov      dword ptr [EBP-48h], eax
   xor      eax, eax
   mov      ecx, edi
   add    ecx, 04h
   mov    dword ptr [EBP-4Ch], ecx
   xor      ecx, ecx
   add      dword ptr [EBP-44h], edx
   add      dword ptr [EBP-44h], edi
   imul   edi, edi, 03h
   mov      dword ptr [EBP-40h], edi
   
   mov   eax, offset sName
   xor   ebx, ebx
   xor   edi, edi
   MOVSX ECX,BYTE PTR SS:[eax]
  CMP ECX,61h
  JL L008

  SUB ECX,20h
L008:
  MOV ESI,ECX
  ADD EBX,ESI
  IMUL EBX,ECX
  DEC EDX
  mov   eax, offset sName
@loop:
      movsx   ecx, byte ptr [eax]
      movsx   esi, byte ptr [eax+1h]
      cmp      ecx, 61h
      jge      @compecx
@compesi:

      cmp      esi, 61h
      jge      @modesi
      jmp      @suite
      
@compecx:

      sub      ecx, 20h
      jmp      @compesi

@modesi:

      sub      esi, 20h
      jmp      @suite
      
@suite:
      inc      edi
      add      ebx, esi
      imul   ebx, ecx
      inc      eax
      dec      edx
      cmp    byte ptr [eax],0
      jne      @loop
      mov      dword ptr [ebp-38h], ebx
 
   xor      eax, eax
   xor      ebx, ebx
   xor    ecx, ecx
   xor    edx, edx
   mov    esi, offset sName
   xor      edi, edi   

@@:
            
      movsx   eax, byte ptr ss:[esi]
      add      eax, ecx
      add      ebx, eax
      inc      ecx
      inc      esi
      cmp      byte ptr ss:[esi], 00000000h
      jne      @B
      rol      eax, 1h
      xor    eax,1E240h
      mov      dword ptr ss:[EBP-50h], eax
      
   xor      eax, eax
   xor      ebx, ebx
   xor    ecx, ecx
   xor    edx, edx
   mov    esi, offset sName
 
@@:
      movsx   eax, byte ptr ss:[esi]
      imul   edx, eax, 06h
      xor      eax, edx
      add      ebx, eax
      inc      ecx
      inc      esi
      cmp      byte ptr ss:[esi], 00000000h
      jne      @B
      add      ebx, DWORD ptr ss:[EBP-50h]
      mov      DWORD ptr ss:[EBP-54h], ebx
@@:      
  invoke   wsprintf, addr sSerial, addr wsptf, DWORD PTR SS:[EBP-50h], DWORD PTR SS:[EBP-54h], DWORD PTR SS:[EBP-48h], DWORD PTR SS:[EBP-4Ch], DWORD PTR SS:[EBP-38h], DWORD PTR SS:[EBP-44h], DWORD PTR SS:[EBP-3Ch], DWORD PTR SS:[EBP-40h]
  INVOKE SetDlgItemText, hWnd, IDC_SERIAL, ADDR sSerial
   ;end of keygen routine
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 06 Août 2016, 17:12

OK,

Keygen fonctionnel chez moi, EDI change bien selon les DBG utilisé

mov edi, 0019F2C0h (EDI avec OllyDBG)
mov edi, 0019F3A0h ;(EDI avec Immunity et x64_DBG)


Au final, la valeur d'EDI qui fonctionne pour moi même hors du DBG est 0019F3A0h.

Je joins a ce message ma solution car je pense qu'Elooo ne gère plus ce thread depuis des années :D

http://dl.free.fr/nfodARWiB

Je prépare un Tuto si mon Keygen fonctionne encore demain (j'ai tjs un doute avec les GetSystemDate et GetSystemTime)

EDIT: Bon ben il n'est pas fonctionnel sur une autre machine ! je l'ai testé sur une VM et paf il a fait des chocapics !! Alors que la même clef sur mon PC de tous les jours c'est OK :D Donc clairement au début du défi il récupère bien des infos importante pour lui

Image
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 07 Août 2016, 09:52

Finalement, il fonctionne deux jours de suites sur mon PC habituel et sur un ordi portable. Je ne comprends pas pourquoi sur la VM il plante ... Je prépare un tuto et le post ici

EDIT: Voici le rar avec le tuto format PDF, le keygen (fonctionnel chez moi) et la src du Kg en ASM. Si quelqu'un a la bonté de le lire et me dire ce qu'il en pense (et me souligner mes erreurs) j'en serai ravi http://dl.free.fr/fwxkyKLyX
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 09 Août 2016, 20:10

OK, le keygen ne fonctionne plus au 9 aout. La valeur d'EDI a changée !

La partie du code que je ne comprend pas est ici:

Code: Tout sélectionner
00401000  /$ 55             PUSH EBP
00401001  |. 8BEC           MOV EBP,ESP
00401003  |. 81C4 28FBFFFF  ADD ESP,-4D8
00401009  |. 53             PUSH EBX
0040100A  |. 56             PUSH ESI
0040100B  |. 57             PUSH EDI
0040100C  |. 8B5D 08        MOV EBX,DWORD PTR SS:[EBP+8]
0040100F  |. BE 4AB14000    MOV ESI,k4n2.0040B14A
00401014  |. 8DBD ECFCFFFF  LEA EDI,DWORD PTR SS:[EBP-314]
0040101A  |. B9 4B000000    MOV ECX,4B
0040101F  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
00401021  |. BE 76B24000    MOV ESI,k4n2.0040B276
00401026  |. 8DBD C0FBFFFF  LEA EDI,DWORD PTR SS:[EBP-440]
0040102C  |. B9 4B000000    MOV ECX,4B
00401031  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
00401033  |. BE A2B34000    MOV ESI,k4n2.0040B3A2
00401038  |. 8DBD 8CFBFFFF  LEA EDI,DWORD PTR SS:[EBP-474]
0040103E  |. B9 0C000000    MOV ECX,0C
00401043  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
00401045  |. 66:A5          MOVS WORD PTR ES:[EDI],WORD PTR DS:[ESI]
00401047     BE D4B34000    MOV ESI,k4n2.0040B3D4
0040104C     8DBD 28FBFFFF  LEA EDI,DWORD PTR SS:[EBP-4D8]
00401052  |. B9 19000000    MOV ECX,19
00401057     F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]



Sur ce genre de ligne, je ne comprend pas a quoi elles servent et surtout je ne comprends pas comment ESI récupere ses valeurs ! Enfin bref, la solution pour un keygen parfait est dans ces lignes, mais c'est trop compliqué pour moi
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 10 Août 2016, 12:33

Bon, suites au tests, il semblerait que la date n'ai rien a voir, le KG est tjs fonctionnel sur le laptop w10 qui n'a pas été mis a jour sur la Redstone 1.

Donc cela serai plus a voir du coté de windows ??? (build, ...)
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar dionosis » 11 Août 2016, 00:51

Salut tiphergane,

J'ai pas le temps de regarder ce soir mais si tu l'as keygenné sans le comprendre c'est très probablement que tu as rippé la routine.
Déjà, c'est mal pour apprendre ! :P
Ensuite peut être s'agit'il simplement d'une histoire d'adresse(s) ?!

La machine sur laquelle tourne correctement le keygen est-elle celle qui a servi au rip (si tant est qu'il s'agisse d'un rip) ?

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 11 Août 2016, 08:36

Bonjour,

dionosis a écrit:Salut tiphergane,

J'ai pas le temps de regarder ce soir mais si tu l'as keygenné sans le comprendre c'est très probablement que tu as rippé la routine.
Déjà, c'est mal pour apprendre ! :P


Désolé, pas mon genre de ripper et de m'approprier le boulot des autres. Et si dans mon tuto dans le 2nd rar je n'explique pas en détail la routine de génération, c'est que les deux dernières parties (les manipulation mathématique des chars) sont très proche du K4N1 que j'avais déjà tutorisé à l'époque.

dionosis a écrit:Ensuite peut être s'agit'il simplement d'une histoire d'adresse(s) ?!

La machine sur laquelle tourne correctement le keygen est-elle celle qui a servi au rip (si tant est qu'il s'agisse d'un rip) ?

++


Non la machine ou le keygen est encore fonctionnelle est une machine à part (c'est celle du taf pour etre précis, que je n'ai pas mis a jour sur la redstone 1), je n'ai donc aucun tool dessus. Celle qui me sers pour décompiler c'est ma perso, et le keygen ne fonctionne plus depuis la mise à jour vers w10 redstone 1. D'où mon dernier message avec la possibilité d'une récupération dans EDI de la version du windows courant.

Apres une série de tests, les différent BP posé sur GetLocalTime ne donne aucun arrêt lors de la génération du serial, donc j'ai éliminé ce côté, Ensuite il me fait penser a un KGme qu'avais fait rocketspawn de la FFF pour le site defisfc, ou il mettait dans un registre un pseudo numero de série pour la génération du serial.
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar dionosis » 15 Août 2016, 23:55

Salut,

Je viens de jeter un oeil.
Comme ça en deux minutes j'ai vraiment pas l'impression qu'il y ait des infos propres à la machine.
En revanche dans le serial de la forme A-B-C-D, eh bien les deux derniers hexadigits de B sont directement en rapport avec ... l'adresse de la stack frame (c'est ce que je sous-entendais en parlant d'adresse(s) dans mon précédent post). J'ai pas regardé plus loin mais j'imagine que ça n'est pas la seule.

Ca n'est donc pas keygenable (edit: dans le sens où y compris sur une même configuration et sans tenir compte de ce qui suit, un serial valide pourra varier au fil du temps du fait que même sans aslr la 'location' de la stack est sensée être identique mais n'est pas garantie dixit kro$oft et ça se vérifie empiriquement).
Tu pourrais gérer le décalage mais il suffit qu'un process qui s'injècte type antivirus ou hips soit présent sur la machine cible et ça ne fonctionne plus.
Il faudrait le loader ou bien le tourner en self-keygen vu qu'il est très simplement fishable (ça serait trivial avec un octet en plus, mais faute de l'avoir il faudra utiliser une cave).

Ps: Ca fait longtemps que j'avais pas vu ce template. ^^

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar tiphergane » 17 Août 2016, 18:17

Merci pour l'explication, j'apprécie le temps pris pour écrire ces lignes.

Pour le template, en effet c'est vieux et toujours dispo via codes-source.com. Je me pencherais à faire mes propres template plus tard. Xilitol à sur yt une vidéo assez simple à ce propos.

C'est aussi pour cela que je joint le fichier .asm, car j'ai laissé le header de canterwood :D
tiphergane
Débutant
Débutant
 
Messages: 39
Inscription: 06 Octobre 2005, 19:17
Localisation: France

Re: [lvl 1]Keygenme k4n2 by tHE ANALYST

Messagepar dionosis » 18 Août 2016, 02:11

Salut,

tiphergane a écrit:Merci pour l'explication

Pas de soucis. :)

Ce que tu peux essayer de faire c'est le tourner en self-keygen, c'est un cas presque parfait et ça entraine !

Edit:
Comme ça se fait en 5 minutes, je viens de te le faire pour que tu ais un spoiler histoire de te motiver.
J'ai dérivé le badboy pour que le goodboy fonctionne toujours afin qu'il soit possible de vérifier le serial avec le même binaire.


hXXp://www.mediafire.com/download/39btb02iu8t2tti
Password: forumcrack

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Précédente

Retourner vers Défis & Crackmes

Qui est en ligne

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