Tutorial über das Hacking QSetup Komponist 7

Tutorial über das Hacking QSetup Komponist 7 (von rel4nium)

Werkzeuge:
  PEiD
 
  Upx_mod
 
  KWdsm
 
  OlyDGB
 
  Hiew
 
  tpe
 

Um zu beginnen, um zu bestimmen, was unser Opfer verpackt ist, für diesen Lauf PEiD:
UPX 0.89.6 - 1.02 / 1,05-1,24 (Delphi) Stub -> Markus & Laszlo
Jetzt müssen wir Entpacker für die UPX, upiksu selbst nicht zu hart ist, so dass wir Upx_mod verwenden, entpacken wir müssen nur Upx_mod laufen wie folgt:
unp1_24.exe -d QSetup.exe
So entpackte Programm, alle anderen Operationen werden wir führen über die entpackte EXE-shnikom Größe 1,69. Jetzt müssen wir sehen, welche Arten von Schutz sind im Programm verwendet:


So haben wir drei Möglichkeiten, zu schützen, jetzt müssen wir diese Sätze / Wörter finden dizasemblere, laufen KWdsm. Wir bestimmen, dass wir suchen:
1) Illegale Registrierungscode!
2) Nicht registrierte Kopie (DEMO)
3) QSetup Komponist (DEMO)
So, nachdem diese Phrasen gefunden werden, und fand Nachbarn Funktion (ich immer bin für Kurzstreckenübergänge Funktion, das heißt je, jne, jmp;):
Illegal Registrierungscode! - Jne 0051D4FB
Nicht registrierte Kopie - JMP 0051D369
QSetup Komponist - jne 0051DBA8
Noch einmal, ich werde erklären, wir wurden für Referenzpunkte suchen Vorrichtung, das heißt, wenn wir finden, nicht die Fehler in der Funktion, werden wir die Ergebnisse verwenden DASM'a.Tantsuem weiter zu helfen, einen Verbündeten zu starten. Just for fun versuchen, auf die Funktion zu finden:
bpx MessageBoxA
und wir finden nicht nichts, also kein Wunder, dass wir suchten Sätze in DASM) .Fraza Nummer eins:
0051D4DF |. 75 1A JNZ SHORT QSetup.0051D4FB
Diese Funktion ist für uns nicht interessant, weil sie ihren Zweck zurückziehen:
0051D510 |. BA 70D65100 MOV EDX, QSetup.0051D670; ASCII "Sie müssen über Administratorrechte verfügen zu registrieren!"
=> Wir untersuchen den Code oben:
  0051D47A |.  84dB TEST BL, BL
 0051D47C 74 57 JE SHORT QSetup.0051D4D5 0051D47E |.
  E8 25B2FBFF CALL-QSetup.004D86A8
 0051D483 |.  84C0 TEST AL, AL
 0051D485 74 0D JE SHORT QSetup.0051D494 0051D487 |.
  8D45 FC LEA EAX, DWORD PTR SS: [EBP-4]
 0051D48A |.  BA 80D55100 MOV EDX, QSetup.0051D580;  ASCII "QSetup PRO Registriert OK!"
 0051D48F |.  E8 0077EEFF CALL-QSetup.00404B94
 0051D494 |> E8 A7B1FBFF CALL-QSetup.004D8640
 0051D499 |.  84C0 TEST AL, AL
 0051D49B |.  74 0D JE SHORT QSetup.0051D4AA
 0051D49D |.  8D45 FC LEA EAX, DWORD PTR SS: [EBP-4]
 0051D4A0 |.  BA A4D55100 MOV EDX, QSetup.0051D5A4;  ASCII "QSetup LITE Registrierte OK!"
 0051D4A5 |.  E8 EA76EEFF CALL-QSetup.00404B94
 0051D4AA |> 68 C8D55100 PUSH QSetup.0051D5C8;  ASCII "| & OK | & Stornieren | & Yes | & No | & Abort | & Retry | & Ignorieren |"
 0051D4AF |.  6A 00 PUSH 0
 0051D4B1 |.  8D45 F8 LEA EAX, DWORD PTR SS: [EBP-8]
 0051D4B4 |.  8B4D FC MOV ECX, DWORD PTR SS: [EBP-4]
 0051D4B7 |.  BA 00D65100 MOV EDX, QSetup.0051D600;  ASCII "Glückwunsch 

" 0051D4BC |. E8 4779EEFF CALL-QSetup.00404E08 0051D4C1 |. 8B55 F8 MOV EDX, DWORD PTR SS: [EBP-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: [EBP-4] 0051D4D8 |. E8 2BACFBFF CALL-QSetup.004D8108 0051D4DD |. 84C0 TEST AL, AL 0051D4DF 75 1A JNZ SHORT QSetup.0051D4FB 0051D4E1 |. 68 C8D55100 PUSH QSetup.0051D5C8; ASCII "| & OK | & Stornieren | & Yes | & No | & Abort | & Retry | & Ignorieren |" 0051D4E6 |. 6A 00 PUSH 0 0051D4E8 |. B9 3CD65100 MOV ECX, QSetup.0051D63C; ASCII "Error" 0051D4ED |. BA 4CD65100 MOV EDX, QSetup.0051D64C; ASCII "Illegal Registrierungscode!"

Ich weiß nicht, über Sie, aber ich habe in der Linie interessiert:
 0051D47C 74 57 JE SHORT QSetup.0051D4D5
 0051D485 74 0D JE SHORT QSetup.0051D494
Wir werden verstehen, wo sie sind, wie vidiv, dass in den 1. Platz, und zwar:
 0051D4D5 |> 8B45 FC MOV EAX, DWORD PTR SS: [EBP-4]
Man kann verstehen, dass dieser Übergang geht zum Ausdruck Illegal Registrierungscode!
Ändern Sie sofort 2 Übergang, als ob wir ein ändern, werden Sie keine Auswirkungen haben:
 0051D47C 74 57 JNE SHORT QSetup.0051D4D5
 0051D485 74 0D JNE SHORT QSetup.0051D494
Also, die Ausgabe-Funktionen zu ändern, erhalten wir:
QSetup PRO Registriert OK!
Aber freuen zu früh wie 2 andere Schutzart nicht gefährdet ist, und auch wenn wir ein Fun-Box sehen, dass das Programm registriert ist, wird es nicht so sein, wie zwei andere Inschriften auf der Stelle.
Zaymёmsya sie in Linie JMP 0051D369, werden wir nicht zögern und sofort unsere Aufmerksamkeit über diese Funktion, um den Code:
  0051D2F3 |.  84C0 TEST AL, AL
 0051D2F5 |.
  74 4F JE SHORT QSetup.0051D346 0051D2F7 |.
  E8 ACB3FBFF CALL-QSetup.004D86A8
 0051D2FC |.  84C0 TEST AL, AL
 0051D2FE |.
  74 0D JE SHORT QSetup.0051D30D

 0051D300 |.  8D45 FC LEA EAX, DWORD PTR SS: [EBP-4]
 0051D303 |.  BA 94D35100 MOV EDX, QSetup.0051D394;  ASCII "registrierte Kopie (PRO)"
 0051D308 |.  E8 8778EEFF CALL-QSetup.00404B94
 0051D30D |> E8 2EB3FBFF CALL-QSetup.004D8640
 0051D312 |.  84C0 TEST AL, AL
 0051D314 |.  74 0D JE SHORT QSetup.0051D323
 0051D316 |.  8D45 FC LEA EAX, DWORD PTR SS: [EBP-4]
 0051D319 |.  BA B4D35100 MOV EDX, QSetup.0051D3B4;  ASCII "Registrierte Copy (LITE)"
 0051D31E |.  E8 7178EEFF CALL-QSetup.00404B94
 0051D323 |> 8B55 FC MOV EDX, DWORD PTR SS: [EBP-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 "noch nicht registriert Copy (DEMO)"
Wir sehen einen typischen Schutz, aber es ist einfacher, diese Funktion JE SHORT QSetup.0051D346, wenn eingegeben CH nicht wahr ist, bringen uns ein Fenster: Nicht registrierte Kopie (DEMO) und t.d.Poetomu die Funktion ändern auf:
 0051D2F5 75 4F JNZ SHORT QSetup.0051D346
 0051D2FE 75 0D JNZ SHORT QSetup.0051D30D
Es ist jetzt 2 einfachen Schutzalgorithmus Programm gehackt, allein gelassen. Wir gehen auf die Funktion in DASM gefunden: jne 0051DBA8.Smotrim Code als Ganzes, ist er verantwortlich für die im DEMO-Programmfenster zu bringen:
 0051DBCB |.  8D45 FC LEA EAX, DWORD PTR SS: [EBP-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: [EBP-4]
 0051DBDB |.  A1 40E25400 MOV EAX, DWORD PTR DS: [54E240]
 0051DBE0 |.  8B00 MOV EAX, DWORD PTR DS: [EAX]
Und sie kümmert sich Schleife, bevor sie:
 0051DBA8 |> 6A 00 / PUSH 0
 0051DBAA |.  6A 00 | PUSH 0
 0051DBAC |.  49 | Dezember ECX
 0051DBAD |. ^ 75 F9 \ JNZ SHORT QSetup.0051DBA8
Alles geht auf die Tatsache, dass es irgendeine Art von Algorithmus ist zu prüfen, ob wir nicht bemerkt haben. Nun müssen wir das Programm wieder in die Öffnung dasme.Posle wieder auf der Suche nach einem Eis QSetup Composer zu öffnen und sofort ins Auge:
0051DBC3 |. E8 48ABFBFF CALL-QSetup.004D8710
Führen Sie diesen Aufruf, indem Sie einfach die Ruftaste an der Werkzeugleiste drücken.
Ausübte hier:
  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 TEST 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 TEST 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
Auch hier bleibt die bekannte Schutzentwurf, und jetzt nur JE 004D8734 JNE 004D8734 und das Programm im oberen Fenster zu ändern, schreibt PRO) .Vot und alle einfachen Schutz. Jetzt haben wir nur das Programm zu flicken bleibt, können Sie Hiew 'a.Patchit unter den folgenden Adressen zu funktionieren müssen:
0051D47C, 0051D485, 0051D2F5, 0051D2FE, 004D8726 je müssen alle jne zu ändern und das Programm wird sich registrierte immer in Betracht ziehen.
Nach dem Programm Patchen eines Patches machen können TPE (etwa das sagte ich in früheren Artikeln, so werde ich nicht wiederholen)
Das Programm unterbrochen wird, wurde der Patch erstellt ...