-
-
FiReAnGeL [EViDENCE] Cracking Tutorial #2 (GERMAN)
-
发表于: 2007-2-21 19:01 2224
-
FiReAnGeL [EViDENCE] Cracking Tutorial #2 (GERMAN)
==================================================
(1) Vorwort
(2) Ben鲷igte Programme
(3) Patchen des Crackmes
(4) Serial sniffen des Crackmes
(5) Einen Keygen coden
(6) Schlusswort
(7) Gr?e
[1 - Vorwort]
-------------
Hallo allezusammen. Mein Name ist FiReAnGeL und ich bin Member der !!!neuen!!! EViDENCE.
Ich m鲢hte euch heute zeigen wie man f? r0m4n's Crackme 1 eine Serial f? seinen Namen snifft
und es so patcht das es jede Serial annimmt. Es ist zwar schon ein bischen alt, aber ich fand
es gerade auf mein Festplatte gefunden.
[2 - Ben鲷igte Programme]
-------------------------
- NuMega SoftIce 4.xx (http://protools.cjb.net)
- W32Dasm 8.93 (http://protools.cjb.net)
- Hexeditor (http://protools.cjb.net)
- r0m4n's Crackme 1 (http://crackmes.cjb.net)
- Irgendein Compiler
[3 - Patchen des Crackmes]
--------------------------
Wenn ihr das Crackme runtergeladen habt und es entpackt habt, macht ihr eine Kopie der *.EXE.
Dann starten mal W32Dasm und lasst die Kopie von crackme1.exe dissamblen.
W滂rend dessen schauen wir uns das Crackme mal ein wenig an. Es hat ein Eingabefeld f? den
Namen und eines f? die Serial. Gebt dort mal irgendwas ein und ihr erhaltet die Meldung
"Incorrect!!!".
So, das reicht. Inzwischen m?ste auch WinDasm fertig sein. Nun 鲦fnet mal die "STRING DATA
REFERENCES" und sucht diese Meldung, wenn ihr sie gefunden habt macht ein doppelklick darauf
und ihr m?stet an folgender Stelle sein:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042CE76(C)
|
* Possible StringData Ref from Code Obj ->"Incorrect!!!"
|
:0042CE8E B83CCF4200 mov eax, 0042CF3C // Hier steht ihr
:0042CE93 E824FCFFFF call 0042CABC
Wie ihr sehen k鲱nt wird unsere Meldung von einem JUMP bei der Adresse 0042CE76 aufgerufen.
Also gehen wir mal dort hin ?er GOTO --> GOTO CODE LOCATION --> ADDRESSE EINGEBEN, dann seit
ihr hier.
--- schnitt ---
:0042CE32 8BC3 mov eax, ebx
:0042CE34 8B08 moc ecx, dword ptr [eax]
:0042CE36 FF5118 call [ecx+18]
* Possible StringData Ref from Code Obj ->"420" // Sieht verd溷htig aus, merken
|
:0042CE39 68C4CE4200 push 0042CEC4
:0042CE3E FF7308 push [ebx+08]
* Possible StringData Ref from Code Obj ->"C00l" // Sieht verd溷htig aus, merken
:0042CE41 68D0CE4200 push 0042CED0
:0042CE46 B818F74200 mov eax, 0042F718
:0042CE4B BA03000000 mov edx. 00000003
:0042CE50 E82B6AFDFF call 00403880
:0042CE55 8D45FC lea eax, dword ptr [ebp-04]
:0042CE58 8B0D18F74200 mov ecx, dword ptr [0042F718]
* Possible StringData Ref from Code Obj ->"Rc1-" // Sieht verd溷htig aus, merken
:0042CE5E 8B15C8E84200 mov edx, dword ptr [0042E8C8]
:0042CE64 E8A369FDFF call 0040380C
:0042CE69 8B55FC mov edx, dword ptr [ebp-04]
:0042CE6C A110F74200 mov eax, dword ptr [0042F710]
:0042CE71 E85A6AFDFF call 004038D0 // Der ist Sp漪er wichtig
:0042CE76 7516 jne 0042CE8E // Bad boy
* Possible StringData Ref from Code Obj ->"Good work, Cracker!!!" // Erfolgsmeldung
:0042CE78 B8E0CE4200 mov eax, 0042CF00
:0042CE7D E83AFCFFFF call 0042CABC
* Possible StringData Ref from Code Obj ->"Send the tut/patcher/keygen to " // Erfolgsmeldung
"r0m4n@flyhost.com"
:0042CE82 B800CF4200 mov eax, 0042CF00
--- schnitt---
Wie ihr seht, wird unsere Fehlermeldung von dem "JNE 0042CE8E, an Addresse 0042CE76" ausgel鲶t.
Also 鲦fnet nun die Crackme1.exe im Hexeditor, geht an die Stelle des JNE und 漕dert das 7516 in,
9090. Also ausnoppen. Dann speichert die 念derung.
Nun startet das Crackme mal und versucht es zu reggen, und siehe da, es bringt immer die Erfolgs-
meldung.
Nun haben wir es gepatched. Wenn ihr noch ne Serial rippen wollt lest weiter.
[4 - Serial sniffen]
--------------------
So, ihr wollt also ne Serial. Dann schauen wir uns doch mal 9in der Umgebung des JNE 0042CE8E um.
:0042CE5E 8B15C8E84200 mov edx, dword ptr [0042E8C8]
:0042CE64 E8A369FDFF call 0040380C
:0042CE69 8B55FC mov edx, dword ptr [ebp-04]
:0042CE6C A110F74200 mov eax, dword ptr [0042F710]
:0042CE71 E85A6AFDFF call 004038D0 // Hier rein
:0042CE76 7516 jne 0042CE8E // Bad boy
Wir sehen ?er dem Jump ein call. Dort gehn wir mal rein und sehen folgenden ASM Code.
--- schnitt ---
:004038D0 53 push ebx // ebx wird auf den Stack gesichert
:004038D1 56 push esi // esi wird auf den Stack gesichert
:004038D2 57 push edi // edi wird auf den Stack gesichert
:004038D3 89c6 mov esi, eax // eax wird in esi kopiert
:004038D5 89D7 mov edi, edx // edx wird in edi kopiert
:004038D7 39D0 cmp eax, edx // eax wird mit edx verglichen
:004038D9 0F848F000000 je 0040396E // Wenn eax=edx dann Sprung
--- schnitt ---
Nun k鲱nt ihr raten was bei Adresse 004038D7 verglichen wird, richtig unsere Fake Serial mit der
richtigen. Merkt euch diese Adresse.
So, das reicht und um eine Serial zu rippen.
Startet euren Rechner mit Soft Ice neu (wenn ihr SI noch nicht geladen habt).
Nun startet eine noch nicht ver漕derte EXE des Crackmes und gebt euren Namen und eine Serial ein,
aber noch NICHT auf check klicken.
宙fnet nun Soft Ice und setzt einen Breakpoint auf HMEMCPY. Dann verlasst SI wieder und dr?kt auf
Check. Nun sollte SI aufpoppen. Dr?kt nun einmal F5 und dann solange F12 bis ihr im richtigen Code
des Crackmes seid.
L鲶cht nun den gesetzten breakpoint und setzt einen neuen auf das "cmp eax, edx". Dr?kt nun F5.
Schaut euch dann mal die register an, wenn ihr auf dem CMP steht, mit d eax und d edx.
Nun m?stet ihr einmal euren Fakecode sehn und einmal euren richtigen.
In meinem Fall:
NAME : FiReAnGeL
SERIAL: Rc1-420FiReAnGeLC00L
Nun sehen wir auch wieder unsere Hardgecodeten Strings aus WinDasm, das w潋en: Rc1-, 420, C00L
Daraus l潴st sich schliesen dass jeweils nur der Name ver漕dert wird, der rest schon Feststeht.
Nun k鲱nte man auch sehr leicht einen Keygen "bauen". Versucht es selbst, ansonsten lest weiter.
[5 - Keygen coden]
------------------
Da ihr seht das Die Serial so gut wie feststeht, nur der Namen wird immer ge漕dert, ist es relativ
leicht einen Keygen zu Coden. Versucht es selbst, ist sau einfach. Ansonsten ist hier mein Source,
erstellt in Delphi 5.0.
---------- Start Delphi ----------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
Edit1: TEdit;
GroupBox2: TGroupBox;
Edit2: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
name, a, b, c: String;
procedure TForm1.Button1Click(Sender: TObject);
begin
Name := edit1.Text;
a := ('Rc1-');
b := ('420');
c := ('C00L');
edit2.text := a + b + Name + c;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
---------- Ende ----------
Der Source ist vielleicht nicht der sch鲱ste, erf?lt aber seinen Zweck.
[6 - Schlusswort]
-----------------
So, das war es auch schon. Mailt mir doch bitte, wie euch das Tutorial gefallen hat. Wenn ihr noch
Fragen habt, mail mir diese. Ich werde dann versuchen, diese so gut wie m鲧lich zu beantworten.
[7 - Gr?e]
-----------
Groups: EViDENCE, Da Breaker Crew, refleXXion, Ebola Virus Crew, Natural Born Killers, CROSSFiRE,
iNTENSiON, LAXiTY, Underground Cracking Crew
Personen: Garuro, MacBain2k, Incredible Fighter, Yaan, vtec, viruz666, pHAT_tEQ, NUKEM, kab00m2k,
The FoX, Gravity-, Tojo, Milhouse, Cre@k, bYtEbReAkEr, L1quid, The_5TAR, BOT-CK, Hixxy,
PorTeX, Tschenzi, Daywalker, Helium, R2-C2, RaMSiX, Erazor, FiReStAr, Raven, ...
---------------------------------------
Autor : FiReAnGeL
Groups : EViDENCE, Natural Born Killers
E-Mail : FiReAnGeL-2001@gmx.net
Homepage: http://evidence.6x.to
http://nabocrk.cjb.net
Datum : 12.06.2001
==================================================
(1) Vorwort
(2) Ben鲷igte Programme
(3) Patchen des Crackmes
(4) Serial sniffen des Crackmes
(5) Einen Keygen coden
(6) Schlusswort
(7) Gr?e
[1 - Vorwort]
-------------
Hallo allezusammen. Mein Name ist FiReAnGeL und ich bin Member der !!!neuen!!! EViDENCE.
Ich m鲢hte euch heute zeigen wie man f? r0m4n's Crackme 1 eine Serial f? seinen Namen snifft
und es so patcht das es jede Serial annimmt. Es ist zwar schon ein bischen alt, aber ich fand
es gerade auf mein Festplatte gefunden.
[2 - Ben鲷igte Programme]
-------------------------
- NuMega SoftIce 4.xx (http://protools.cjb.net)
- W32Dasm 8.93 (http://protools.cjb.net)
- Hexeditor (http://protools.cjb.net)
- r0m4n's Crackme 1 (http://crackmes.cjb.net)
- Irgendein Compiler
[3 - Patchen des Crackmes]
--------------------------
Wenn ihr das Crackme runtergeladen habt und es entpackt habt, macht ihr eine Kopie der *.EXE.
Dann starten mal W32Dasm und lasst die Kopie von crackme1.exe dissamblen.
W滂rend dessen schauen wir uns das Crackme mal ein wenig an. Es hat ein Eingabefeld f? den
Namen und eines f? die Serial. Gebt dort mal irgendwas ein und ihr erhaltet die Meldung
"Incorrect!!!".
So, das reicht. Inzwischen m?ste auch WinDasm fertig sein. Nun 鲦fnet mal die "STRING DATA
REFERENCES" und sucht diese Meldung, wenn ihr sie gefunden habt macht ein doppelklick darauf
und ihr m?stet an folgender Stelle sein:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042CE76(C)
|
* Possible StringData Ref from Code Obj ->"Incorrect!!!"
|
:0042CE8E B83CCF4200 mov eax, 0042CF3C // Hier steht ihr
:0042CE93 E824FCFFFF call 0042CABC
Wie ihr sehen k鲱nt wird unsere Meldung von einem JUMP bei der Adresse 0042CE76 aufgerufen.
Also gehen wir mal dort hin ?er GOTO --> GOTO CODE LOCATION --> ADDRESSE EINGEBEN, dann seit
ihr hier.
--- schnitt ---
:0042CE32 8BC3 mov eax, ebx
:0042CE34 8B08 moc ecx, dword ptr [eax]
:0042CE36 FF5118 call [ecx+18]
* Possible StringData Ref from Code Obj ->"420" // Sieht verd溷htig aus, merken
|
:0042CE39 68C4CE4200 push 0042CEC4
:0042CE3E FF7308 push [ebx+08]
* Possible StringData Ref from Code Obj ->"C00l" // Sieht verd溷htig aus, merken
:0042CE41 68D0CE4200 push 0042CED0
:0042CE46 B818F74200 mov eax, 0042F718
:0042CE4B BA03000000 mov edx. 00000003
:0042CE50 E82B6AFDFF call 00403880
:0042CE55 8D45FC lea eax, dword ptr [ebp-04]
:0042CE58 8B0D18F74200 mov ecx, dword ptr [0042F718]
* Possible StringData Ref from Code Obj ->"Rc1-" // Sieht verd溷htig aus, merken
:0042CE5E 8B15C8E84200 mov edx, dword ptr [0042E8C8]
:0042CE64 E8A369FDFF call 0040380C
:0042CE69 8B55FC mov edx, dword ptr [ebp-04]
:0042CE6C A110F74200 mov eax, dword ptr [0042F710]
:0042CE71 E85A6AFDFF call 004038D0 // Der ist Sp漪er wichtig
:0042CE76 7516 jne 0042CE8E // Bad boy
* Possible StringData Ref from Code Obj ->"Good work, Cracker!!!" // Erfolgsmeldung
:0042CE78 B8E0CE4200 mov eax, 0042CF00
:0042CE7D E83AFCFFFF call 0042CABC
* Possible StringData Ref from Code Obj ->"Send the tut/patcher/keygen to " // Erfolgsmeldung
"r0m4n@flyhost.com"
:0042CE82 B800CF4200 mov eax, 0042CF00
--- schnitt---
Wie ihr seht, wird unsere Fehlermeldung von dem "JNE 0042CE8E, an Addresse 0042CE76" ausgel鲶t.
Also 鲦fnet nun die Crackme1.exe im Hexeditor, geht an die Stelle des JNE und 漕dert das 7516 in,
9090. Also ausnoppen. Dann speichert die 念derung.
Nun startet das Crackme mal und versucht es zu reggen, und siehe da, es bringt immer die Erfolgs-
meldung.
Nun haben wir es gepatched. Wenn ihr noch ne Serial rippen wollt lest weiter.
[4 - Serial sniffen]
--------------------
So, ihr wollt also ne Serial. Dann schauen wir uns doch mal 9in der Umgebung des JNE 0042CE8E um.
:0042CE5E 8B15C8E84200 mov edx, dword ptr [0042E8C8]
:0042CE64 E8A369FDFF call 0040380C
:0042CE69 8B55FC mov edx, dword ptr [ebp-04]
:0042CE6C A110F74200 mov eax, dword ptr [0042F710]
:0042CE71 E85A6AFDFF call 004038D0 // Hier rein
:0042CE76 7516 jne 0042CE8E // Bad boy
Wir sehen ?er dem Jump ein call. Dort gehn wir mal rein und sehen folgenden ASM Code.
--- schnitt ---
:004038D0 53 push ebx // ebx wird auf den Stack gesichert
:004038D1 56 push esi // esi wird auf den Stack gesichert
:004038D2 57 push edi // edi wird auf den Stack gesichert
:004038D3 89c6 mov esi, eax // eax wird in esi kopiert
:004038D5 89D7 mov edi, edx // edx wird in edi kopiert
:004038D7 39D0 cmp eax, edx // eax wird mit edx verglichen
:004038D9 0F848F000000 je 0040396E // Wenn eax=edx dann Sprung
--- schnitt ---
Nun k鲱nt ihr raten was bei Adresse 004038D7 verglichen wird, richtig unsere Fake Serial mit der
richtigen. Merkt euch diese Adresse.
So, das reicht und um eine Serial zu rippen.
Startet euren Rechner mit Soft Ice neu (wenn ihr SI noch nicht geladen habt).
Nun startet eine noch nicht ver漕derte EXE des Crackmes und gebt euren Namen und eine Serial ein,
aber noch NICHT auf check klicken.
宙fnet nun Soft Ice und setzt einen Breakpoint auf HMEMCPY. Dann verlasst SI wieder und dr?kt auf
Check. Nun sollte SI aufpoppen. Dr?kt nun einmal F5 und dann solange F12 bis ihr im richtigen Code
des Crackmes seid.
L鲶cht nun den gesetzten breakpoint und setzt einen neuen auf das "cmp eax, edx". Dr?kt nun F5.
Schaut euch dann mal die register an, wenn ihr auf dem CMP steht, mit d eax und d edx.
Nun m?stet ihr einmal euren Fakecode sehn und einmal euren richtigen.
In meinem Fall:
NAME : FiReAnGeL
SERIAL: Rc1-420FiReAnGeLC00L
Nun sehen wir auch wieder unsere Hardgecodeten Strings aus WinDasm, das w潋en: Rc1-, 420, C00L
Daraus l潴st sich schliesen dass jeweils nur der Name ver漕dert wird, der rest schon Feststeht.
Nun k鲱nte man auch sehr leicht einen Keygen "bauen". Versucht es selbst, ansonsten lest weiter.
[5 - Keygen coden]
------------------
Da ihr seht das Die Serial so gut wie feststeht, nur der Namen wird immer ge漕dert, ist es relativ
leicht einen Keygen zu Coden. Versucht es selbst, ist sau einfach. Ansonsten ist hier mein Source,
erstellt in Delphi 5.0.
---------- Start Delphi ----------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
Edit1: TEdit;
GroupBox2: TGroupBox;
Edit2: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
name, a, b, c: String;
procedure TForm1.Button1Click(Sender: TObject);
begin
Name := edit1.Text;
a := ('Rc1-');
b := ('420');
c := ('C00L');
edit2.text := a + b + Name + c;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
---------- Ende ----------
Der Source ist vielleicht nicht der sch鲱ste, erf?lt aber seinen Zweck.
[6 - Schlusswort]
-----------------
So, das war es auch schon. Mailt mir doch bitte, wie euch das Tutorial gefallen hat. Wenn ihr noch
Fragen habt, mail mir diese. Ich werde dann versuchen, diese so gut wie m鲧lich zu beantworten.
[7 - Gr?e]
-----------
Groups: EViDENCE, Da Breaker Crew, refleXXion, Ebola Virus Crew, Natural Born Killers, CROSSFiRE,
iNTENSiON, LAXiTY, Underground Cracking Crew
Personen: Garuro, MacBain2k, Incredible Fighter, Yaan, vtec, viruz666, pHAT_tEQ, NUKEM, kab00m2k,
The FoX, Gravity-, Tojo, Milhouse, Cre@k, bYtEbReAkEr, L1quid, The_5TAR, BOT-CK, Hixxy,
PorTeX, Tschenzi, Daywalker, Helium, R2-C2, RaMSiX, Erazor, FiReStAr, Raven, ...
---------------------------------------
Autor : FiReAnGeL
Groups : EViDENCE, Natural Born Killers
E-Mail : FiReAnGeL-2001@gmx.net
Homepage: http://evidence.6x.to
http://nabocrk.cjb.net
Datum : 12.06.2001
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创]某通用更新程序的DIY 6618
- [原创]6.1礼物 DJ Java Decompiler v3.11.11.95(支持中文路径+破解) 11285
- [原创]ASPACK 2.2 破解手记 11361
- [原创]a4desk 标准版+模板破解 10308
看原图
赞赏
雪币:
留言: