Tutoriel sur le piratage QSetup Compositeur 7

Tutoriel sur le piratage QSetup Compositeur 7 (par rel4nium)

Outils:
  peid
 
  Upx_mod
 
  KWdsm
 
  OlyDGB
 
  Hiew
 
  tpe
 

Pour commencer à déterminer ce qui est emballé notre victime, pour cette course peid:
UPX 0.89.6 - 1.02 / 01.05 à 01.24 (Delphi) stub -> Markus & Laszlo
Maintenant, nous avons besoin de déballeurs pour le UPX, upiksu lui-même est pas trop difficile, donc nous allons utiliser Upx_mod, déballez nous avons juste besoin d'exécuter Upx_mod comme suit:
unp1_24.exe -d QSetup.exe
Donc, le programme déballés, toutes les autres opérations, nous allons effectuer sur déballés taille exe-shnikom 1,69. Maintenant, nous devons voir quels types de protection sont utilisés dans le programme:


Nous avons donc 3 façons de protéger, maintenant nous avons besoin de trouver ces phrases / mots dizasemblere, exécutent KWdsm. Nous déterminons que nous recherchons:
1) Illégal Code d'enregistrement!
2) non enregistré Copie (DEMO)
3) QSetup Compositeur (DEMO)
Donc, après ces phrases sont trouvés, et a trouvé la fonction de voisins (je suis toujours à la recherche à courte portée transitions fonction, c.-à-je, jne, jmp;):
Illégal Code d'enregistrement! - Jne 0051D4FB
Copie non enregistré - jmp 0051D369
QSetup Compositeur - jne 0051DBA8
Encore une fois, je vais vous expliquer, nous étions à la recherche des points de référence pour la rupture, à savoir si nous ne trouvons pas l'erreur dans la fonction, nous allons utiliser les résultats pour aider DASM'a.Tantsuem plus loin, le lancement d'un allié. Juste pour le plaisir d'essayer de trouver la fonction:
bpx MessageBoxA
et nous ne trouvons pas rien, donc pas étonnant que nous avons cherché des phrases dans DASM) .Fraza numéro un:
0051D4DF |. 75 1A JNZ SHORT QSetup.0051D4FB
Cette fonction est intéressante pour nous car il retire son but:
0051D510 |. BA 70D65100 MOV EDX, QSetup.0051D670; ASCII "Vous devez disposer des droits d'administrateur pour inscrire!"
=> Nous examinons le code ci-dessus:
  0051D47A |.  84dB ESSAI BL, BL
 0051D47C 74 57 JE SHORT QSetup.0051D4D5 0051D47E |.
  E8 25B2FBFF CALL QSetup.004D86A8
 0051D483 |.  84C0 ESSAI AL, AL
 0051D485 74 0D JE SHORT QSetup.0051D494 0051D487 |.
  8D45 FC LEA EAX, DWORD PTR SS: [RASE-4]
 0051D48A |.  BA 80D55100 MOV EDX, QSetup.0051D580;  ASCII "QSetup PRO enregistré OK!"
 0051D48F |.  E8 0077EEFF CALL QSetup.00404B94
 0051D494 |> E8 A7B1FBFF CALL QSetup.004D8640
 0051D499 |.  84C0 ESSAI AL, AL
 0051D49B |.  74 0D JE SHORT QSetup.0051D4AA
 0051D49D |.  8D45 FC LEA EAX, DWORD PTR SS: [RASE-4]
 0051D4A0 |.  BA A4D55100 MOV EDX, QSetup.0051D5A4;  ASCII "QSetup LITE Enregistré OK!"
 0051D4A5 |.  E8 EA76EEFF CALL QSetup.00404B94
 0051D4AA |> QSetup.0051D5C8 68 C8D55100 PUSH;  ASCII "| & OK | & Annuler | & Yes | & No | & Abort | & Retry | & Ignore |"
 0051D4AF |.  6A 00 PUSH 0
 0051D4B1 |.  8D45 F8 LEA EAX, DWORD PTR SS: [RASE-8]
 0051D4B4 |.  8B4D FC MOV ECX, DWORD PTR SS: [RASE-4]
 0051D4B7 |.  BA 00D65100 MOV EDX, QSetup.0051D600;  ASCII "Félicitations 

" 0051D4BC |. E8 4779EEFF CALL QSetup.00404E08 0051D4C1 |. 8B55 F8 MOV EDX, DWORD PTR SS: [RASE-8] 0051D4C4 |. B9 28D65100 MOV ECX, QSetup.0051D628; ASCII "Attention" 0051D4C9 |. B8 01000000 MOV EAX, 1 0051D4CE |. E8 39B1F7FF CALL QSetup.0049860C 0051D4D3 |. EB 61 JMP SHORT QSetup.0051D536 0051D4D5 |> 8B45 FC MOV EAX, DWORD PTR SS: [RASE-4] 0051D4D8 |. E8 2BACFBFF CALL QSetup.004D8108 0051D4DD |. 84C0 ESSAI AL, AL 0051D4DF 75 1A JNZ SHORT QSetup.0051D4FB 0051D4E1 |. 68 C8D55100 PUSH QSetup.0051D5C8; ASCII "| & OK | & Annuler | & Yes | & No | & Abort | & Retry | & Ignore |" 0051D4E6 |. 6A 00 PUSH 0 0051D4E8 |. B9 3CD65100 MOV ECX, QSetup.0051D63C; ASCII "Error" 0051D4ED |. BA 4CD65100 MOV EDX, QSetup.0051D64C; ASCII "Illegal de code d'enregistrement!"

Je ne sais pas pour vous, mais je me suis intéressé à la ligne:
 0051D47C 74 57 JE SHORT QSetup.0051D4D5
 0051D485 74 0D JE SHORT QSetup.0051D494
Nous comprenons où ils sont, comment vidiv que dans la 1ère place, à savoir:
 0051D4D5 |> 8B45 FC MOV EAX, DWORD PTR SS: [RASE-4]
On peut comprendre que cette transition va à la phrase code d'enregistrement illégal!
Changez immédiatement 2 transition, comme si nous changeons un, vous ne serez pas avoir d'effet:
 0051D47C 74 57 JNE SHORT QSetup.0051D4D5
 0051D485 74 0D JNE SHORT QSetup.0051D494
Donc, changer les fonctions de sortie, on obtient:
QSetup PRO Enregistré OK!
Mais réjouir trop tôt 2 autre protection ne soit pas compromise, et même si nous allons voir une boîte de fun que le programme est enregistré, il ne sera pas si, comme deux autres inscriptions sur place.
Zaymёmsya eux dans la ligne jmp 0051D369, nous ne hésitera pas et tournez immédiatement notre attention sur le code ci-dessus cette fonction:
  0051D2F3 |.  84C0 ESSAI AL, AL
 0051D2F5 |.
  74 4F JE SHORT QSetup.0051D346 0051D2F7 |.
  E8 ACB3FBFF CALL QSetup.004D86A8
 0051D2FC |.  84C0 ESSAI AL, AL
 0051D2FE |.
  74 0D JE SHORT QSetup.0051D30D

 0051D300 |.  8D45 FC LEA EAX, DWORD PTR SS: [RASE-4]
 0051D303 |.  BA 94D35100 MOV EDX, QSetup.0051D394;  ASCII "Copier enregistrés (PRO)"
 0051D308 |.  E8 8778EEFF CALL QSetup.00404B94
 0051D30D |> E8 2EB3FBFF CALL QSetup.004D8640
 0051D312 |.  84C0 ESSAI AL, AL
 0051D314 |.  74 0D JE SHORT QSetup.0051D323
 0051D316 |.  8D45 FC LEA EAX, DWORD PTR SS: [RASE-4]
 0051D319 |.  BA B4D35100 MOV EDX, QSetup.0051D3B4;  ASCII "Copier enregistré (LITE)"
 0051D31E |.  E8 7178EEFF CALL QSetup.00404B94
 0051D323 |> 8B55 FC MOV EDX, DWORD PTR SS: [RASE-4]
 0051D326 |.  8B83 DC060000 MOV EAX, DWORD PTR DS: [EBX + 6DC]
 0051D32C |.  E8 6379F5FF CALL QSetup.00474C94
 0051D331 |.  8B83 DC060000 MOV EAX, DWORD PTR DS: [EBX + 6DC]
 0051D337 |.  8B40 68 MOV EAX, DWORD PTR DS: [EAX + 68]
 0051D33A |.  BA 180000FF MOV EDX, FF000018
 0051D33F |.  E8 989CF0FF CALL QSetup.00426FDC
 0051D344 |.  EB 23 JMP SHORT QSetup.0051D369
 0051D346 |> BA D4D35100 MOV EDX, QSetup.0051D3D4;  ASCII "Copie non enregistré (DEMO)"
Nous voyons une protection typique, mais est plus facile, cette fonctionnalité JE SHORT QSetup.0051D346, si CH entré est pas vrai, nous apporte une fenêtre: Copie non enregistré (DEMO), et t.d.Poetomu changer la fonction sur:
 0051D2F5 75 4F JNZ SHORT QSetup.0051D346
 0051D2FE 75 0D JNZ SHORT QSetup.0051D30D
Il est maintenant 2 programme simple algorithme de protection piraté, laissé seul. Nous allons à la fonction trouvée dans DASM: jne Code 0051DBA8.Smotrim dans son ensemble, il est responsable, de mettre dans la fenêtre du programme DEMO:
 0051DBCB |.  8D45 FC LEA EAX, DWORD PTR SS: [RASE-4]
 0051DBCE |.  BA C4DC5100 MOV EDX, QSetup.0051DCC4;  ASCII "QSetup Composer"
 0051DBD3 |.  E8 3072EEFF CALL QSetup.00404E08
 0051DBD8 |.  8B55 FC MOV EDX, DWORD PTR SS: [RASE-4]
 0051DBDB |.  A1 40E25400 MOV EAX, DWORD PTR DS: [54E240]
 0051DBE0 |.  8B00 MOV EAX, DWORD PTR DS: [EAX]
Et elle se soucie de boucle avant d'aller:
 0051DBA8 |> 6A 00 / PUSH 0
 0051DBAA |.  6A 00 | PUSH 0
 0051DBAC |.  49 | décembre ECX
 0051DBAD |. ^ 75 F9 \ JNZ SHORT QSetup.0051DBA8
Tout se passe sur le fait qu'il y ait une sorte d'algorithme pour vérifier que nous avons pas remarqué. Maintenant, nous avons besoin d'ouvrir à nouveau le programme dans le dasme.Posle d'ouverture à nouveau la recherche d'un QSetup de glace Compositeur et attire immédiatement le regard:
0051DBC3 |. E8 48ABFBFF CALL QSetup.004D8710
Effectuez cet appel, en appuyant simplement sur le bouton d'appel sur la barre d'outils.
Exercée ici:
  004D8710 / $ 53 PUSH EBX
 004D8711 |.  8BD8 MOV EBX, EAX
 004D8713 |.  8BC3 MOV EAX, EBX
 004D8715 |.  BA 54874D00 MOV EDX, QSetup.004D8754;  ASCII "DEMO"
 004D871A |.  E8 31C4F2FF CALL QSetup.00404B50
 004D871F |.  E8 84FFFFFF CALL QSetup.004D86A8
 004D8724 |.  84C0 ESSAI AL, AL
 004D8726 |.
  74 0C JE SHORT QSetup.004D8734

 004D8728 |.  8BC3 MOV EAX, EBX
 004D872A |.  BA 64874D00 MOV EDX, QSetup.004D8764;  ASCII "PRO"
 004D872F |.  E8 1CC4F2FF CALL QSetup.00404B50
 004D8734 |> E8 07FFFFFF CALL QSetup.004D8640
 004D8739 |.  84C0 ESSAI AL, AL
 004D873B |.  74 0C JE SHORT QSetup.004D8749
 004D873D |.  8BC3 MOV EAX, EBX
 004D873F |.  BA 70874D00 MOV EDX, QSetup.004D8770;  ASCII "LITE"
 004D8744 |.  E8 07C4F2FF CALL QSetup.00404B50
 004D8749 |> 5B POP EBX
 004D874A \.  C3 RETN
Encore une fois, la conception de la protection familiale, et maintenant ne reste plus qu'à changer JE 004D8734 004D8734 JNE et le programme dans la fenêtre supérieure écrit PRO) .Vot et toute protection simple. Maintenant, nous avons seulement patcher le programme reste, vous pouvez utiliser hiew 'a.Patchit doivent fonctionner aux adresses suivantes:
0051D47C, 0051D485, 0051D2F5, 0051D2FE, 004D8726 je tout besoin de changer jne et le programme sera toujours se considérer comme enregistré.
Après la correction du programme peut faire un patch en utilisant TPE (à ce sujet je l'ai dit dans les articles précédents, donc je ne vais pas répéter)
Le programme est cassé, le patch a été créé ...