hallo mal wieder leutz.
nachdem das letzte (das dritte) tutorial mehr meine Meinung zum Thema lame an die ffentlichkeit brachte als dass es ber cracken ging gibts diesmal wieder ein richtiges tutor. wie immer (ausser in meinem zweiten tutor) setzte ich windasm und hiew kenntnisse voraus. wenn ihr die nicht habt dann lest mein zweites tutor. Da ich meine ersten drei tuts ber games geschreiben habe gehts jetzt mal um appz, die normalerweise schwerer zu cracken sind als games. ein schnes programm das leicht zu cracken ist wenn man weiss wie ist winrar 206. deshalb gehts jetzt ber winrar 206 german. bei der englischen version ist brigens alles gleich, sogar die offsets.

1. Wir brauchen wie immer:
- windasm 8.9x
- hiew 6.xx
- und winrar 206 german (http://www.rarsoft.com)
- wille etwas zu lernen
- zeit und n bier

2. einleitung
es gibt zwei Mglichkeiten winrar zu cracken. ich geh hier nur auf eine, die elegantere *g*, ein da ihr die andere selber schon rausfinden msstet. denn da ist einfach ein jump zu ndern. wenn ihrs nicht rauskriegt und unbedingt wissen wollt, kommt in den #TbC.
diese erste mglichkeit ist nhmlich das strende "unregistrierte Version" das erscheint wenn man winrar startet (oben mitte rechts) einfach wegzucracken. das ist aber unelegant, da dann zwar dieses strende teil weg ist, aber richtig registriert ist man nicht. da besteht in anderen programmen die mglichkeit, dass wenn das programm zb ein zeitlimit hat, dass der crack dieses zeitlimit nicht beeinflusst und somit zwar schn anzuschauen (der nag ist weg), aber eigentlich nutzlos ist. und so gibt es, wie knnte es auch anders sein, eine zweite mglichkeit, die mindestens genauso einfach ist. und zwar gibt es eine weitere art von sprngen, also nicht jne oder je oder..., sondern diese art heisst set.
zb sete (set if equal) , setne (set if not equal) und das sind auch schon die zwei wichtigsten. was fllt auf? wie bei den normalen jumps(je, jne,...) gibt es auch hier die set if equal und die set if not equal version. und die hexcodes hneln sich auch sehr. 
zur erinnerung:      hex              befehl 
 			 74		    je   (jump if equal)
			 75		    jne  (jump if not equal)
und neu:             0F94            sete  (set if equal)
			 0F95            setne (set if not equal)
das ist also der neue sprung, das set. doch was ist der Unterschied zu dem normalem jump? ganz einfach. der normale jump (jne.je,...) springt irgendowhin je nachdem ob einen Bedingung erfllt ist oder nicht. aber er springt irgendwo hin. das macht set nicht set springt berhaupt nicht. es schaut nur ob eine bedingung erfllt ist oder nicht und dann luft das programm weiter. deshalb steht es fast immer hinter einem test. das test testet ob die eingegebene regnummer richtig ist und gibt es an das set. das set speichert wenn die nummer richtig ist (also die bedingung erfllt ist) eine 1 an das zu spezifizierende byte, wenn die regnummer nicht richtig ist dann wird eine 0 gespeichert. konkret heisst das das wir so viele error nags wegmachen knnen wie wir wollen, es ntzt alles nichts weil das programm nach einem neustart wieder unregistriert ist (dieses problemdrften eingige bereits kennen). 

3. los gehts
anmerkung: winrar hat zwei exe dateien, die winrar95.exe und die winrar.exe. in beiden ist die vorgehensweise exakt die gleiche, nur die offsets sind ganz leicht verndert. DAS HIER BEZIEHT SICH AUF DIE WINRAR.EXE!
dann fangen wir mal an. um winrar zu cracken (mit der set methode) ist nur ein einziges byte zu ndern. billiger gehts echt nichtmehr. 
das einzige problem ist nur diese stelle zu finden, wo er die regnummer testet. da gibt es mehrere Mglichkeiten. zuerst sollte man die Fehlermeldung in windasm string data references finden. bei uns heisst diese unregistrierte version und steht nicht drin. scheisse he? macht nix. suchen wir danach (auf die Taschenlampe in windasm, dritte icon von links klicken). einfach mahl unreg eingeben (unregISTRIERTE VERSION) und er fhrt uns dahin: 

possible refernece to string resource id=00029: "unregistrierte version"
0040A0F2 B81D000000                 mov eax, 0000001D
0040A0F7 2BC6                       sub eax, esi
    .
    .
    .
das ist aber unwichtig. wir suchen jetzt nach einem sete das in der NHE dieser fehlermeldung liegt. (ABWRTS SUCHEN!). und wo fhrt er uns hin? dahin:

possible reference to string resource id=00005: "&reparieren"
0040A639 6A05		push 00000005
0040A63B 8D9574FFFFFF	lea edx, dword ptr [ebp+FFFFFF74]
0040A641 52			push edx
0040A642 FF3594A94200	push dword ptr [0042A994]
0040A648 E81F250100		call 0041CB6C
0040A64D 83C40C		add esp, 0000000C
0040A650 85C0		test eax, eax						<------test ob serial richtig
0040A652 0F94C1		sete cl						<------wenn ja hng er ne 1 dran, wenn nein dann ne 0
0040A655 83E101		and ecx, 00000001
0040A658 890DE0464200	mov dword ptr [004246E0], ecx
0040A65E FF35C0464200	push dword ptr [004246C0]
0040A664 E8F37F0100		call 0042265C
0040A669 59			pop ecx
0040A66A 33C0		xor eax, eax
0040A66C A3C0464200		mov dword ptr [004246C0], eax

diese stelle zu finden ist glck. normal ist es nicht so leicht. dann kann man zb alle sete dieser exe suchen (sind nicht viele) und in die nhe schaun was da fr meldungen sind oder auf gut glck alle sete in setne umwandeln (viel spass *g*). nun ndern wir also das sete in eine setne (einfach in hiew die 94 in 95 ndern), starten winrar, geben irgendeinen namen und irgendeine serial ein und er sagt "vielen dank fr ihre Untersttzung" und das programm ist auch nach einem neustart noch registriert. das wre dann also gecrackt. war wirklich simpel oder?
die set methode ist eine wichtige ergnzung zur jump methode. denn wenn was mit der jump methode nicht zu cracken ist, dann versucht mans mit der set methode oder umgekehrt. wenn ihrs mit jumps ndern geschafft habt den nag wegzumachen aber das programm nach einem neustart nicht mehr registriert ist dann schaut nach einem sete in der nahe der Fehlermeldung.
so dass wars schon wieder,
cu aDENOZiN_TbC 

mY gRoUp: TbC  http://TbC.tsx.org
mY pAgE:  http://come.to/aDENOZiN
gReEtZ tO: TbC crew, EVC, (ex) GCG, DCD