//**cracking tut von alpine**// //*****und******// //**The Immortal Descendants**// Übersetzt aus dem englischen von NiKai [Blizzard] Grüße OK, dieses ist mein erstes Tut für die Immortal Descendants. Ich hoffe, ihr werdet es genießen. Unser Ziel heute ist die beste drum-machine im Internet. Sie heißt Drum Station und ist von D-Lusion. Wir werden die folgenden Werkzeuge für unsere Lektion brauchen: Drum Station // ladet es von www.d-lusion.com, um die 3 megs Wdasm/Ida // ich hoffe, ihr wißt wo es sie gibt softice // dito winspect // ist ein gutes und immer wieder nützliches Werkzeug, welches den spezifischen handle // für jedes window zeigt. Es ist als zip-file in den cracker notes von Torn@do // Wenn ihr es nicht finden könnt, laßt es mich wissen hex- // deiner editor// Wahl Erster Schritt: Während wir unser Ziel beobachten, werden wir verschiedene "Schutzmechanismen" finden. Zuerst sehen wir einen nag-screen der alle zwei Minuten auftaucht und 20 Sekunden dauert. Während dieser Zeit können wir Drum Station nicht benutzen. Dies ist sehr, sehr ärgerlich. Dann sehen wir einen Rec-Knopf. Wenn wir da draufklicken, kommt der gleiche nag-screen und selbstverständlich ist der Knopf disabled. Es gibt auch eine serial-schutzfunktion, aber die behandele ich nicht in dieser Lektion. Zweiter Schritt: Löschen des nag-screens: Wir starten Winspect.Exe und werden ein kleines Fenster sehen. Was wir machen wollen, ist, den handle von diesem Fenster zu ermitteln, um einen breakpoint zu setzen. Betreffend der Winspect.exe sehen wir in der ersten Zeile den handle; das ist wichtigste für uns. Wir starten Drum Station und warten bis der nag-screen verschwunden ist. Wir cracken den nag-screen im Moment noch nicht. Jetzt drücken wir auf den Rec-Knopf und der nag-screen kommt. Bewege den Mauszeiger auf den nag-screen und wir erhalten den handle von winspect. In meinem Fall war es &h840. Wir müssen das &h löschen. Jetzt ist unser handle 840. Wir gehen in softice und machen folgendes: !!! Wir müssen in softice springen, solange der nag-screen zu sehen ist !! bmsg 840 wm_destroy Was bedeutet das? Ich gehe nicht ins Detail, aber hier ist eine kurze Erklärung: Es bedeutet: Break, wenn das Fenster mit dem handle 840 zerstört wird. Wir verlassen softice und warten ein bißchen. Wir landen wieder in softice. Jetzt drücken wir so lange F12 bis wir uns in prot-32-Mode befinden, müsste in mfc42.dll sein. Wir befinden uns jetzt eine Zeile unter dem Call zu user32!DestroyWindow. Jetzt drücken wir F10 bis wir wieder in der Haupt.exe (dt-010) sind. Wenn wir eine Zeile hochscrollen, sehen wir folgenden Call: 004078E7 C744247800000000 mov [esp+78], 00000000 * Reference To: MFC42.Ordinal:09D2, Ord:09D2h | :004078EF E848330100 Call 0041AC3C <-- unser Call :004078F4 8D442464 lea eax, dword ptr [esp+64] <--hier landen wir :004078F8 C744246420DB4100 mov [esp+64], 0041DB20 :00407900 89442400 mov dword ptr [esp], eax :00407904 8D4C2464 lea ecx, dword ptr [esp+64] :00407908 C744247802000000 mov [esp+78], 00000002 Der Call bei 0137:004078ef löst unseren nag-screen aus, wenn wir den Rec-Knopf drücken. Gehen wir nun zu wdasm, disassemblieren das prog und suchen 004078f8. Der offset ist 6cef und wir suchen diesen offset in unserem hex-editor. Jetzt wäre es das leichteste, dieses auszunoppen. Versuchen wir es. Wir starten das prog und drücken den Rec-Knopf. Geschieht nichts? Gut, geschafft. Das war der erste nag. Jetzt müssen wir auf den nagscreen warten, der alle drei Minuten ausgelöst wird. Moment, er taucht nicht auf? Haben wir ihn gleichzeitig gecrackt? Mal sehen, den Call, den wir ausgenoppt haben, wird von 3 Stellen angesprungen: * Referenced by a CALL at Addresses: |:00402DF2 , :00408067 , :0041071B <--- das sind die calls. | :004078C0 6AFF push FFFFFFFF :004078C2 68C8BD4100 push 0041BDC8 :004078C7 64A100000000 mov eax, dword ptr fs:[00000000] :004078CD 50 push eax :004078CE 64892500000000 mov dword ptr fs:[00000000], esp :004078D5 83EC70 sub esp, 00000070 :004078D8 6A00 push 00000000 :004078DA 8D4C2408 lea ecx, dword ptr [esp+08] :004078DE E81D750000 call 0040EE00 :004078E3 8D4C2404 lea ecx, dword ptr [esp+04] :004078E7 C744247800000000 mov [esp+78], 00000000 * Reference To: MFC42.Ordinal:09D2, Ord:09D2h | :004078EF E848330100 Call 0041AC3C Einer von diesen Calls ist unser nag vom Rec-Knopf, der andere ist der, der alle drei Minuten ausgelöst wird. So haben wir diesen nag-screen gecrackt. Dritter Schritt: Wir müssen den Rec-Knopf funktionstüchtig machen, damit wir unsere loops als wav-datei abspeichern können. Also, bpx 0137:004078ef. Ja, daß ist die Adresse, die wir vorher gecrackt haben. Nun drücken wir den Rec-Knopf und landen in softice. Wir landen bei: lea eax, dword ptr [esp+64]. Wir tracen weiter bis 0137:00402df7 :00402DE8 81FE201CB62E cmp esi, 2EB61C20 :00402DEE 740B je 00402DFB <-- beachtet den jump :00402DF0 8BCB mov ecx, ebx :00402DF2 E8C94A0000 call 004078C0 :00402DF7 6A00 push 00000000 <--wir sollten hier sein :00402DF9 EB20 jmp 00402E1B * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00402DEE(C) | :00402DFB 8B83341B0000 mov eax, dword ptr [ebx+00001B34] :00402E01 85C0 test eax, eax Habt ihr den bedingten Sprung gesehen? Gut, er prüft, ob unser prog registriert ist oder nicht. Wenn es nicht registriert ist, sind esi und 2eb61c20 ungleich. Deshalb ändern wir den bedingten Sprung in einen unbedingten Sprung und wir können aufzeichnen. Das ist alles... Fragen an: alpine@gmx.at alpine Dank an Immortal Descendants