Le Soft-Cracking - Les mthodes de protection
--------------------------------------------- 
              Part II by S/ash (rtc-slash@fr.st)

Disclaimer : S/asH signale que le debugage de logiciel est jusque l 
autorise en France. De mme que la modif de prog ou la fourniture de crack 
du momment qu'ils ne soient pas distribus avec le prog. Cependant
l'utilisation de logiciel sans licence est elle illgale. Si vous n'habitez
pas en france je signale que dans beaucoup de pays non europen tout ce que
vient de citer est illgale. Pour ma part, je ne suis pas responsable de 
l'utilisation faite de ces informations par les lecteurs.

Je vais ici crire un article beaucoup plus thorique que le premier. 
J'y commente les diffrentes techniques de protection utiliser par les
dveloppeurs.

I. Les clefs d'enregistrements
------------------------------
Les clefs d'enregistrements est la technique la plus utilis par les auteurs
de shareware. Ces clefs rpondent, dans la plupart des cas,  un algorithme
en fonction en gnrales d'une autre chane de caractre (en gnrale le
nom). Il se peut cependant que la clef soit fixe (comme pour les soft de m$).
Les techniques pour en venir  bout sont nombreuses : patcher le logicielle
pour enlever la vrification de la clef (cf article prcdent), recrer
l'algorithme de gnration de clef ou encore aller chercher en mmoire lors
de l'excution la chane avec laquelle la clef sera compar... Pour les clef
fixe, cette dernire mthode est la plus lgante et pour les clef gnr,
la mthode la plus lgante est le Key Generator (cependant il est chiant 
raliser).

II. La protection par mot de passe
----------------------------------
La protection par mot de passe est souvent utilis dans les jeux (en gnral
les vieux). Pour la contrer, plusieur mthodes existent : modifier le test
pour qu'il accepte n'importe qu'elle mot de passe, sauter la vrification du
mot de passe (la plus lgante), faire en sorte que ce soit toujours le mme
mot de passe (enlever la partie gnration alatoire), et afficher le mot de
passe  taper  l'cran.

III. La protection par support de donne
----------------------------------------
J'entend par cette protection, une protection contre la copie. Il s'agit d'une
chane de donne crite  un emplacement particulier du support (boot, partie
cach de la table iso9660...). Il existe bien sur des programmes qui
effectuent des copies compltes des supports mais cela est fastidieux. La
solution la plus pratique est de retir la vrification de la protection.

VI. La protection par Dongle
----------------------------
C'est une protection trs efficace mais couteuse. En effet on ne peut pas 
comme les codes, le recopier sur un bout de papier. On peut cependant en 
muler mais cela est galement couteux. La meilleur solution est de retir 
la vrif du dongle.

V. Les techniques anti-debugging
--------------------------------
Je parle ici des techniques cherchant  nous empcher de ralis le crack.
Ces techniques sont cens faire plant le debugger.

  a. Faire joujou avec l'interrupt 3
  
  Maintenant, peu de codeur le font car c'es chiant  mettre en oeuvre : il 
s'agit de modifier l'interrupt 3 qui sert au dbugage. Cette mthode n'est 
plus utilis pour plusieur raison : peu de gens code en assembleur, cette
protection est incompatible avec Windows et des logiciels comme Soft-Ice ne 
sont pas affect par celle-ci.

  b. Faire joujou avec le mode protg
  
  Cette mthode consiste  passer successivement du mode non protg au mode 
protg et vice-versa. Cela  un effet redical sur certain debugger : il 
plante car il ne supporte pas le mode protg. Pour viter cela ? utiliser
SoftIce ou Turbo Dbugger. Un truc drole est que Windows supporte aussi trs
mal cela :)

  c. Faire joujou avec la mmoire
  
  Ben si c'est un programme DOS, rserv toute la mmoire basse  pour effet
d'empecher un debugger de tourner.

  d. Le coup de la PIQ
  
  Bon, toutes les techniques prcdentes ne nous emmerde pas car elles sont
infficace sur les debuggers actuels. Le coup de la PIQ est l pour empcher
le dbugage pas  pas. Il consiste  modifier la vrification de la version 
de DOS dans le code en instruction d'arrt. Il n'a pas d'incidence dans le
cas d'une xcution classique car le code normal sera dj charg mais  pour
effet de planter le dbuggeur en mode pas  pas. Il suffit de sauter
l'instruction quand on la rencontre. C'est technique est peu connus donc peu
utilis (kewl !!!)
Voici le code asm correspondant :
PIQ_Stop_System proc near
   push ds
   push ax
   push bx
   push cs
   pop  ds
   mov  cs:word ptr [@int_21_fonct],4cb4h  ; c'est le code de modification
                                           ; fonction arrter
@int_21_fonct:
   mov  ah, 30h                            ; fonction de version du DOS
   int  21h
   pop  bx
   pop  ax
   pop  ds
   ret
PIQ_Stop_System endp

  e. L'encodage des donnes
  
  Cela consiste  coder le programme et  le dcoder  l'xcution. Bof, 
empche d'utiliser WDasm (dsassembleur) mais pas SoftIce. Technique peut 
utilis car drangeante.

  f. Le checksum
  
  C'est la technique la plus chiante  enlever, surtout si elle est appliqu 
plusieur reprise. Cette technique est sans doute la seule encore utilis. Elle
consiste  effectu une somme de contrle de certaine partie du code. Si un
logiciel patch s'arrte, il y a de forte chance que ce soit  cause de cela.
La seule solution est d'aller modifier la somme de contrle (attention il
peut y en avoir plusieurs !!!).

Conclusion : ne vous inquitez pas trop pour ces techniques anti-debugging,
elles sont rarement mise en oeuvre !!!
<--                            File by S/ash                               -->
[EOF]
