		-----------------------------------
			Duelist's Crackme #6
		Tutorial de Lucifer48, 25 juin 1999
		-----------------------------------

===============
1. INTRODUCTION
===============

Dans le txt qui accompagne le crackme, on lit a:
"this time i may have created a challenge that is too hard for most of the people, ..."
Au dbut j'ai eu un peu peur, et une heure plus tard j'ai rigol :)
Ce crackme est en fait trs facile!

==============
2. LE TUTORIAL
==============

La protection consiste en deux boucles:

XXXX:0040106B  MOV  EAX,36455544        ;"DUE6"  l'envers
XXXX:00401070  MOV  ECX,[00402121]      ;lit les 4 premiers caractres
XXXX:00401076  ROL  EAX,06
XXXX:00401079  XOR  AH,AL
XXXX:0040107B  ADD  AL,CL
XXXX:0040107D  DEC  ECX
XXXX:0040107E  JNZ  00401076
XXXX:00401080  CMP  EAX,04071885
XXXX:00401085  JNZ  004010D5            ;(jump)= mauvais cracker!

Pour ce qui est de la deuxime boucle, c'est la mme chose, sauf que 36455544 devient 43534952 
("CSIR") et 04071885 devient 4B00D127.

Le serial comporte 8 caractres. Comment trouver les 4 premiers caractres du serial ??
En fait, faut partir de la fin pour arriver au dbut. On a aucune incunnue  trouver; on doit juste
dterminer combien de boucles (=ecx) on doit effectuer pour arriver au bon rsultat (04071885 pour
la premire boucle et , 4B00D127 pour la deuxime boucle). On doit donc trouver la valeur d'ECX.
La solution est donc juste de remonter la boucle (de l'excuter  l'envers). Et par chance dans ce
cas de figure c'est possible.
(exemple: je veux obtenir 85h aprs avoir fait ADD AL,01; donc AL=84h, c'est pas plus dur que a!).
En effet, on peut trouver la rciproque de chaque "fonction" (instruction).

DEC ECX    ===> INC ECX
ADD AL,CL  ===> SUB AL,CL
XOR AH,AL  ===> XOR AH,AL        ;a XOR b = c <=> c XOR b = a, N'OUBLIEZ JAMAIS CA!
ROL EAX,06 ===> ROR EAX,06

Regardez la source c'est trs trs simple (n'oubliez pas d'activer la dtection de l'int 3 dans
soft-ice).

Pour la premire boucle, on trouve les rsultats suivants:
	0DBD76F6
	34647369 <---- hh :)
	C4E2A92A
Pour la seconde boucle, on trouve une unique solution:
	72657665

Serial/ isd4ever

Greetings: ID group, Eternal Bliss (wonderfull site), tC... (for his *big* crackme in delphi ),
           ACiD BuRN, and others i forgot.

Lucifer48
