PeeGee´s Cracking Tutorial #1


Ok, hier ist mein erstes Tutorial, und hier ersmal der standardwitz entschuldigt meine reChTsrAIbFeHLa !

Naja nun aber zu den wichtigeren Sachen, diese Tools werden benötigt

  1. CPU-Idle 5.2 (im ZIP archiv enthalten) ----> http://cpuidle.home.pages.de
  2. Dissasembler, am besten W32Dasm V8.9 oder höher ---> http://www.crackstore.com
  3. HexEditor, ich bevorzuge HexWorkshop 2.54 ---> http://www.bpsoft.com

Ok, nun starten wir mal CPU-Idle 5.2, sososo, kein nag (nervender startbildschirm) gar nichts...was ich schick euch nen trojaner ??? nee schaut mal unten rechts im system tray da ist so ein kleines symbol. nun gehen wir mit der maus drüber und klicken auf es mit der RECHTEN (Gott hat einige intelliegente leute erschaffen, der rest waren rechtshänder, hehe) und da öffnet sich man glaubt es nicht ein menü, jetzt gehen wir mal auf "Options..." und was müssen unserer WAREZ augen da sehen ? "25 Days left for evulation", oh oh das heist nix gutes und wir haben kein kleingeld für die registriergebühr aber haben irgendwo was übers cracken gelesen... nein keine Kohlenwasserstoff verbindungen cracken, nein Software cracken.... also er sagt uns 25 tage ? naja beenden wir es mal und stellen unsere systemuhr 2 monate nach vorne, nein ihr müsst keinen restart machen und ins bios wechseln ! klickt einfach auf die uhrzeit und ändert aufs jahr 2000 so können wir gleich mal testen ob euer system "millenium" sicher ist... Nun starten wir es nochmal. Was ist das jetzt ? wir sehen ein dialogbox in der steht "This Shareware version of CPU Idle has expired. If you want to continue using CPU idle, you must register !" naja das Programm ist ziemlich doof weil wir die Optionen immernoch aufrufen können und keine funktionen deaktiviert sind also ein guter kandidat zum cracken. Nun merken wir uns diesen Dialog und starten WinDis.


Der wichtige Teil

Nun sind wir hier drin und was nu ? Gehen wir mal ins menü "Dissasembler|Open File to dissasemble", langsam komm ich mir vor wie ein ComputerBild redakteur. Und wählen die datei "CPUIdle.EXE". Jetzt warten wir mal....ihr dachtet das war lang ??? dann dissasembliert mal die EXE von der NetObjects Fusion 3.0 Trial version ! DAS dauert lange ! Naja, egal ! So jetzt seht ihr ungefähr sowas :

Oh, mein Gott was ist das ?????

Naja das checkt ihr irgendwan wenn ihr mit gepackten programmen rummacht <hechel> Das ist jetzt weniger von bedeutung, also was haben wir uns zuvor für nen dialog gemerkt ?? 3 sec. bedenkpause.... 1....2.....3...tada. Jetzt klicken wir mal auf dieses symbol in der toolbar : Das ist das Symbol für die String Reference...das bedeutet soviel wie das ihr hier alle Dialoge und texte (manchmal auch EasterEggs, Partiton Magic 4, hehe) findet die das Programm verwendet, ausser bei VB5 Programmen da steht nix ausser der Programmierer hat ne .res datei verwendet..aber das ist ein anderes thema. So nun öffnet sich ein Neues fenster in dem siehts so aus

Also jetzt suchen wir mal nach unserem Dialog, ihr müsst beachten das die dinger alle mit solchen "Hasenfüssen" beginnen... also tippen wir mal auf unser keyboard "This.." und schon wurden wir fündig.. jetzt klicken wir mal mit der maus doppelt auf diesen text und was passiert ???? wir finden uns hier:

naja ihr müsst halt ein bissel nach oben scrollen, also jetzt mal zur genauen erklärung :

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:0043AB84(C)

|

:0043AB8A 6A10 push 00000010

:0043AB8C B92CAD4300 mov ecx, 0043AD2C

* Possible StringData Ref from Code Obj ->"This shareware version of CpuIdle "

->"has expired. If you want to continue "

->"using CpuIdle, you must register."


Erklärung:

(U)ncoditional = Das heist soviel das dieser sprung nicht von irgendetwas abhängt = das wurde vom JMP befehl aufgerufen

(C)onditional = Dieser sprung ist mit einer Bedingung geschehen, bei unserem beispiel dadurch das das zeitlimit überschritten wurde

0043AB84(C) = von dieser addresse wurde die Funktion angefordert (C) = conditional


Was nun ?

Was weis ich ? Naja wie wärs wenn wir mal zu der addresse gehen würden woher der text aufgerufen wurde ??? also zur addresse 0043AB84. Nun klicken wir auf dieses Symbol :. Übersetzung : Goto Code Location : Gehe zu einer Programm stelle. Und sehen eine eingabe box. dort tippen wir unsere address (nein nicht die wo ihr wohnt !!) Huh ? wo sind wir nun ????

:0043AB84 7304 jnb 0043AB8A

das steht da ?? also hier zur erklärung : das erste steht für den abschnitt im Programm, 7304 ist der HexWert, jnb ist der Assembler Befehl, der rest ist die addresse zu der er springen soll. also was heist jnb genau, jump if not below, springe dahin wenns nicht kleiner ist also nicht kleiner als 30 tage wie z.B. 31 da 31 nicht kleiner als 30 ist springt er dahin. also was müssen wir nun tun ? wir müssen das springe wenns nicht kleiner ist in ein springe wenns weniger ist und das ist der HEX-Wert 7C

Hier ist nun mal ne Kleine Tabelle mit den Hexwerten und ihrer bedeutung, ich empfehel euch sie auszudrucken, die werdet ihr immer wieder benötigen

JNE Jump if not Equal Springe wenn nicht gleich 75
JE Jump if Equal Springe wenn gleich 74
JMP Jump Springe (Unconditional) EB
JA Jump if above Springe wenn drüber 0F87
JNA Jump if not above Springe wenn nicht drüber 0F86
JAE Jump if above or equal Springe wenn drüber oder gleich 0F83
JNAE Jump if not above or equal Springe wenn nicht drüber oder gleich 0F82
JB Jump if below Springe wenn drunter 0F82
JNB Jump if not below Springe wenn nicht drunter 0F83
JBE Jump if below or equal Springe wenn drunter oder gleich 0F86
JNBE Jump if not below or equal Springe wenn nicht drunter oder gleich 0F87
JG Jump if greater Springe wenn größer 0F8F
JNG Jump if not greater Springe wenn nich größer 0F8E
JGE Jump if greater or equal Springe wenn größer oder gleich 0F8D
JNGE Jump if not greater or equal Springe wenn nicht größer oder gleich 0F8C
JL Jump if Less Springe wenn weniger 0F8C
JLE Jump if Less or equal Springe wenn wniger oder Gleich 0F8D
JNLE Jump if not less or equal Springe wenn nicht weniger oder gleich 0F8E
NOP No Operation Mach nix (win98, hehe) 908F

Wie immer ohne gewehr....ja ihr dürft die tabelle in euren tutors verwenden...


Der HEX-Editor

Also als erstes brauchen wir den offset des zu veränderbaren bytes, und hier bekommen wir es :

Dazu müssen wir mit den Pfeiltasten-auch cursor tasten genannt-über den text gehen wo der sprung aufgerufen wird in unserem beispiel: 0043AB84 dann schauen wir nach unten und da steht :

@0043AB84 @Offset 00039F84h in File:Cpuidle.exe

Was uns dabei interessiert ist die angabe Offset also 39F84h, das h könnt ihr weglassen da es nur angibt das es im hexformat angegeben wird und nicht in dezimalformat. Also öffnen wir unseren hexeditor und öffnen die datei nun drücken wir ALT+F5 und tippen 39F84 ein, beachten müssen wir das er vom anfang der datei ausgehen soll also auf den punkt klicken. So jetzt sind wir hoffentlich an der richtigen stelle ! schaut sicherheitshalber nochmal nach im dissasembler ob das stimmt was uns der hexeditor zeigt, tatsächlich da steht 7304 nun ändern wir mal das 73 in ein 7C um. Jetzt schliesen wir erstmal unseren disassembler weil wir sonst nix speichern können. Danach speichern wir die veränderte datei und testen es mal. Hier noch ein paar beispiele für Sharewar Serial # protections

call mach_eine_serial
cmp deine_serial, echte_serial
jne falscheserial

 

call geh_zu_der_serialcheckroutine
cmp 1, ergebnis_der_serialcheckroutine ; die routine gibt 1 zurück falls die serial richtig war !
je geh_zu_der_registrierfunktion

Ach ja nochwas: meistens sind es zwei checkroutinen (nicht wie bei cpuidle)

1. Check die serial bei der eingabe des benutzers (also im registrier formular) und schreib diese in die registry

2. Beim starten geht das programm in die registry und holt sich nochmal die serial und vergleicht diese, falls sie nicht gleich sind dann ist das programm nicht registriert (viele programme benutzen diese funktion !)


Le Final

Scheis franzosen ! Ok, starten wir es mal. was kommt ? Es geht ! Ihr (lol) habt es tatsächlich geschaft ein programm zu cracken ! Wow ! aber was nun ? Falls ihr einen crack schreiben wollt, in vb5 íst es echt einfach (obwohl von micro$oft). Die anleitung findet ihr in einzelteilen auf meiner page (http://cracksare.here.de). Als nächstes würd ich mich wieder an ein einfaches programm ranmachen...z.B. WinRAR, oder TwinXPlorer, naja für winamp benötigt ihr noch kenntnise in SoftIce. Oder ihr könnt euch auch an ein spiel ranmachen...z.B. Quake 2, Unreal, NeedForSpeed 3, die sind alle einfach. Wenn ihr euch an härtere programme ranmacht und ihr kein erfolgserlebnis bekommt dann nicht aufgeben ! Es geht jedem so ! Lest euch noch andere tutorials durch ! Ich kann die von rahowa oder rubor empfehlen, auch die von laxity sind sehr gut und falls ihr noch gute englischkenntnise habt dann findet ihr tausende ! Es gibt genug zu tun ! Ach ja ich kann eure cracks auf meiner seite hosten ! Aber bitte eure eigenen nicht irgendwelche von tutorials, sehr beliebt sind da twinexplorer, oder quake 2.....also machts gut ! Zu vb programmen kommt irgendwann noch ein tutorial von mir, da ich der vb spezialist bin..hehe (selbstlob stinkt). jetzt muss ich aber wirklich, dieser tutorial will ja noch an fusionic geschickt werden, hehe


The End

Ich hoffe ihr lernt was aus diesem tutorial, falls nicht solltet ihr euch mal ehrlich überlegen ob ihr nicht doch anfangen solltet lesen zu lernen (nix gegen analfabeten). Naja ich musste ja auch irgendwann ein tutorial schreiben und da hat ich eh grad nix zu tun an diesem kalten tag, dann hab ich halt eins geschrieben. naja falls jemandem das tutorial gefallen hat oder nicht kann er mir ja seine eindrücke mailen.


Greetz

SyntaX 2oo1, DCD, TBC, FB, UCT 2000

@ngelkiller, rahowa, the_butcher, jfk, basic, viny, zikariuz, moolok, fusionic, mvd (bye, bye...), bgf, woodchuck, atbbyte, hellborder (HI !), BFC, Batman (lern cracken !), rubor, flaier, breaker, dark_zun, De'FeinD, itsgallus, NSC, Silverhawk, Sub_Zero, tha merlin, copyright killer, zor.......und alle die nicht in meiner icq liste sind hehe...