********Black & White 1.0*********** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *******Howto Crack Tut No.20******** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *****Tutorial by The Dark One******* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ***********From da C2001************ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Was braucht Ihr? -Softice 4.xx <- Saugts euch bei crackstore.com -Hiew 6.40 <- Und das Tool gibts auch auf crackstore.com -Windasm 8.93+ <- Gibts ebenfalls bei www.crackstore.com -Safedisc Analyser 3.4 <- gibts bei kickme.to/DaRKoNe -Unsafedisc 2 <- gibts bei protools.cjb.net -Black & White 1.0 <- Kann man sich ausleihen oder kaufen -Nen PC <- Kann man in jedem PC geschäft kaufen! Subject: Black and White 1.0 *ger* Skill: Middle Cracker: [DaRKoNe] Hi Leude Heute cracken wir mal Black and White 1.0! Is ja so ein cooles game mit ne lamen schutz ;) Ok auf die pladde hauen. Im verzeichnis mal umgucken... ah da sind ja ein paar *.TMP dateien also Safedisc 2. Startet Safedisc Analyser 3.4 und öffnet die Runblack exe mit dem Teil. v2.10.030 ist die Version also entpackern wir es mit dem passenden tool von r!sc. Safedisc_v2_10_30_Dumper.EXE starten udn die cd reinlegen. Die Runblack.exe auswählen und öffnen clicken. So jetzt dauerts was und dann wurde eine *.data.bin erstellt aber wir wollen sie ja nicht verschicken wie r!sc sagt. Also startet den Rbuilder und mach ne vernüftige exe draus. Löscht die alte exe und das data.bin teil und nennt die fixed exe runblack.exe. K startet sie mal ohne cd. Hmm... nach ein paar secs passiert nichts mehr. Beendet den Task. Drückst strg + D udn setzt einen breakpoint auf GetVolumeInformationA (bpx GetVolumeInformationA). Nochmal starten und sice breakt. Einmal F11 drücken und sich den Offset aufschreiben. Jetzt Die exe disassemblieren. Shift + F12 drücken und den Offset eingeben dann seit ihr hier: * Reference To: KERNEL32.GetVolumeInformationA, Ord:0000h <- Aufruf von GetVolumeInformationA :005F126C 8B3D74B17E00 mov edi, dword ptr [007EB174] * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:005F1319(U) | :005F1272 6900010000 push 00000100 :005F1277 8D8C242001000 lea ecx, dowrd ptr [esp+00000120] :005F127E 51 push ecx :005F127F 8D542420 lea edx, dowrd ptr [esp+20] :005F1283 52 push edx :005F1284 8D44241C lea eax, dowrd ptr [esp+1C] :005F1288 50 push eax :005F1289 8D4C2424 lea ecx, dword ptr [esp+24] :005F128D 51 push ecx :005F128E 6800010000 push 00000100 :005F1293 8D44242C lea edx, dword ptr [esp+34] :005F1297 52 push edx :005F1298 8D542434 lea eddx, dword ptr [esp+34] :005F129C 50 push eax :005F129D 885C242C mov byte ptr [esp+2C], bl :005F12A1 FFD7 call edi :005F12A3 FEC3 inc bl * Possible StringData Ref from Data Obj ->"BNW" <- Name der CD :005F12A5 BEEC22B200 mov esi, 00B222EC :005F12AA 8D44241C lea eax, dword ptr [esp+1C] * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:005F12CC(C) | :005F12AE 8A10 mov dl, byte ptr [eax] :005F12B0 8ACA mov cl, dl :005F12B2 3A16 cmp dl, byte ptr [esi] :005F12B4 751C jne 005F12D2 :005F12B6 84C9 test cl, cl :005F12B8 7414 je 005F12CE :005F12BA 8A5001 mov dl, byte ptr [eax+01] :005F12BD 8ACA mov cl, dl :005F12BF 3A5601 cmp dl, byte ptr [esi+01] :005F12C2 750E jne 005F12D2 :005F12C4 83C002 add eax, 00000002 :005F12C7 83C602 add esi, 00000002 :005F12CA 84C9 test cl, cl :005F12CC 75E0 jne 005F12AE * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:005F12B8(C) | :005F12CE 33C0 xor eax, eax :005F12D0 EB05 jmp 005F12D7 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:005F12B4(C), :005F12C2(C) | :005F12D2 1BC0 sbb eax, eax :005F12D4 83D8FF sbb eax, FFFFFFFF * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:005F12D0(U) | :005F12D7 85C0 test eax, eax <- Hier ist endlich der Compare :005F12D9 7439 je 005F1314 * Possible StringData Ref from Data Obj ->"CDFS" | :005F12DB BEE422B200 mov esi, 00B222E4 :005F12E0 8D84241C010000 lea eax, dword ptr [esp+0000011C] So GetVolumeInformationA hat ne RetVal die in eax ist. So nachdem wir ein biisln runter getranced haben finden wir den test eax, eax. Den kann man reversen oder denn Call zum GetVolumeIformationA durch mov eax, 00000001 ersetzen. Vobei das letztere besser ist! Das ist eure Sache! Notiert den Offset und patch es mit nem Hex editor und geniest diese coole Game :) Ich finds zwar Lame aber egal. Jetzt wisst ihr auch wie man safedisc 2 crackt wobei B & W das einzige game ist was noch zusetzlich einen Cd-Check hat! Have Phun!!! Cya [DaRKoNe]dBC Wenn Du Fragen oder Kritik hast mail sie an : DaRKoNe@HeRZeLeiD.net *******Special Thanks******* *****Greetings fly out to:**** * * * Saiyajin * ********Fly out to:********* * Firstlord * * T]oke * * h[a]nes * * G-3 * * and all dBC * * * * Memberz * **************************** ****************************** c by [DaRKoNe]