[ - Intro - Explications - L'outil expliqué - Liens - Notes de fin - ]
 
[ - Tutoriaux : Bases ~ Jnz / Jz ~ Jmp ~ La fonction d'enregistrement ~ Crack GifMovieGear 3.0 - ]

Assembleur, mon amour...
A la recherche des protections perdues...
Contrôles simples à faire
 
Assembleur, mon amour...

La première chose est de croire que le Cracking, c'est : "trouver des fichiers texte dans le répertoire du logiciel et de modifier des valeurs pour qu'il continue à fonctionner...".
Ne vous étouffez pas de rire, je paraphrase ce que m'a écrit un "expert" sur un des forums d'un fournisseur d'adresses e-mails gratuites que The Analyst connait bien ; ) 
Bref, "Hommes de peu de foi, qui entrez ici, perdez tout espoir !".
En effet, le Cracking se base sur un langage informatique le plus tordu qui soit : l' Assembleur  ( ou ASM ).
Ce langage est à la base de l'informatique. On dit aussi que c'est un le langage le plus bas de niveau... En dessous, vous avez des 0 et des 1, bref du binaire.
La notion de "bas ou haut niveau" signifie seulement leur distance par rapport à l'interprétation du processeur. Plus le niveau est haut, plus nous pouvons le lire facilement, plus le processeur doit  travailler. L'inverse est vrai.

Prenons un exemple sur l'affichage d'un message style DOS.

Pascal
write (' Mais non c'est pas dur ce langage ! ');

Assembleur ( 16 bits )
mon_texte  DB "Mais non c'est pas dur ce langage ! ",13,10,"$"
....
mov ah,09h
lea dx,mon_texte
int 21h

Vous comprennez maintenant ce que je voulais dire par "lire facilement"...?

A quoi sert l'assembleur et quel est son avantage ?

Si vous compilez un programme écrit en C, C++, basic, pascal ou que vous utilisez un builder du genre Delphi, Visual Basic, etc., votre éxécutable aura une taille plus ou moins élévé selon le volume du code. Logique.
Si vous assemblez le même programme écrit en ASM avec Turbo Assembler / TASM, vous aurez la surprise de voir ce même programme avec une taille largement moins élevée.
Le compilateur, builder ajoute sa propre cuisine pour avoir un éxécutable qui tourne avec votre processeur ce qui va alourdir l'exécutable.
L'assembleur permet ainsi d'avoir une rapidité d'éxécution plus grande que d'autres langages, malgrè l'amélioration des compilateurs.
Le jeu DOOM a été par exemple écrit en C mais avec des routines graphiques en assembleur afin de pouvoir être rapidement exécutées.
L'assembleur présente aussi l'avantage de vous donner accès à la presque totalité des services DOS, W32 et du BIOS, et donc de la gestion du matériel, ce que ne vous fera pas complètement un autre langage. D'ailleurs, il vous est permis en C, etc. de pouvoir inclure des routines en pur ASM dans le code.

Aujourd'hui, les processeurs sont cadencés à des vitesses très rapides et donc l'optimisation du code avec l'assembleur n'est plus nécessaire.

Son utilisation reste très limitée.
écriture de certains drivers.
écriture de certaines mises à jour.
la scène démo bien que cela devienne de plus en plus rare.
le Cracking ( logique )
les Virus ( bien que des langages beaucoup plus "lames" : VBS et autres, prennent le pas en terme de célébrité... Il est loin le temps de CIH et sa routine d'écriture du BIOS Flash ! NB: j'en fus victime : /  )
écriture de routines et de programmes de protections pour logiciel. ( éh oui ! )
j'en oublie... : )

Bref, même si son aspect austère rebute, si vous avez le courage, vous pourrez découvrir notamment avec MASM32 que l'on peut faire des trucs intéressants et surtout comprendre une foule de choses.

Bon sinon pour nous, quel est son utilité ?
Et bien c'est tout simple. Quelque soit le langage utilisé pour réaliser un éxécutable, celui-ci se retrouve en langage machine.
Or ce langage machine peut être facilement traduit en ASM, mais cela devient quasi impossible dans le langage d'origine ( C, Basic, Pascal,... ) et surtout on peut réinjecter un code ASM modifié dans un éxécutable !
L' assembleur est donc un langage avec ses instructions, sa syntaxe, etc...
La lecture d'un livre sur l'assembleur vous permettra de mieux comprendre. Pour en trouver, ce n'est pas dur, il n'en existe que très peu dont les célébres "Marabout" qui ont aidé bon nombre de crackers francophones. ( Assembleur pratique de Bernard Fabrot  et aussi Assembleur facile de Philippe Mercier. )
Le principal travail devra être fait de votre côté pour approfondir la chose.

J'ai placé deux documents qui vous permettront de comprendre, certainement mieux que je ne l'aurais fait, ce langage.
- Corn2 ( Traduction ) : assembleur pour Crackers.
- Acidburn / The Analyst ( extrait ) : The Millenium Tutorial. 
 

A la recherche des protections perdues

Connaitre les protections d'un logiciel peut vous faire gagner du temps sur votre étude. On trouve plus facilement ce que l'on connait que l'inverse. ( Lapalisse ; ).
La première chose est de lancer le logiciel et de voir son comportement.
1 - Y-a-t-il un ou des Nag-screens ? Apparaissent-ils au lancement du programme et / ou pendant son utilisation ? 
2 - A-t-on un serial à entrer ?
3 - A-t-on des chaînes de caractères affichées précisant que le soft est "non enregistré" ( Fr ) ou "Unregistered" ( US ) ? Généralement, vous pouvez trouver ces phrases, mots dans le "A propos / About", dans un des menus du programme ( Aide / Help, Fichier / File, etc ... ), voir aussi dans le barre de titre ( caption ) du logiciel...
4 - A-t-on des fonctionnalités que l'on ne peut pas activer ? Normallement, le programme vous renvoit un joli message pour vous prévenir que si vous ne payez pas, la fonctionnalité ne marchera pas.
5 - Pour le time trial, à moins d'être sûr de ce que vous faites, ne le testez pas en avançant l'horloge ! En effet, si vous pouvez revenir en mode Time Trial non expiré en reculant l'horloge comme avec Paint Shop Pro, certains autres logiciels n'apprécient pas du tout le test avec l'horloge et se vérouillent automatiquement.
Réinstaller un logiciel avec une limitation temporelle expirée, ne marche quasiment jamais. Les auteurs ne sont pas stupides ! A quoi cela servirait-il de vous demander de payer si au bout de 15 ou 30 jours ( fin du temps permis d'utilisation du logiciel ), vous pouviez vous en servir de nouveau en le réinstallant ?
Normallement, le logiciel laisse une clé dans la base des registres avec la trace de son passage. Cette ou ces clés ne sont pas effacées après la désinstallation du programme... ( Merci les sharewares de nous saturer notre base des registres. ) Si vous avez de la chance, effacer ces clés pourra permettre d'avoir de nouveau un Time Trial remis à zéro, sinon cela sera un peu plus complexe... ( voir avec les espions de registre : regmon... et de fichiers  : filemon... )

Si vous voyiez pas concrétement les protections, renseignez-vous directement auprès de l'auteur ou de l'éditeur... en consultant les documents ( fichiers Help, texte... ) fournis avec le logiciel ou en allant sur le site du concepteur. Avec un peu de chance, il devrait vous rappeler les "Benefits" que vous gagnez à en vous enregistrant.
Attention, certains ne donnent aucunes informations et peuvent être très vicieux à vous cacher leur( s ) protection( s ).
 

Contrôles simples à faire

Une fois, le crack fait, il faut vérifier que l'on n'a pas oublié quelque chose.
Voici une petite liste de choses simples à contrôler. A moins que vous ne disposiez d'un béta-testeur.

1 - Lancer son crack sur une version originale du programme pour voir qu'il marche bien et relancer le soft.
2 - Avancer l'horloge Windows de 4 ou 5 mois pour voir si le Time Trial est bien mort. ( Même si le logiciel ne déclare pas de Time Trial dans ces limitations. ) Eviter de la mettre à J + 1 an car l'auteur peut toujours sortir une contre-mesure pour que le soft se lance de J à J+30 jours et aussi de J+1 an à J+1 an +30 jours.
3 - Retarder l'horloge de 4 à 5 mois, pour bien contrôler que le time trial est complètement HS. En effet, si vous retardez votre horloge, un message du style "L'horloge a été modifiée [...]" peut apparaître.
4 - Essayer de contrôler quelques fonctions majeurs du logiciel.
5 - Dans le cas d'un logiciel à serial, si vous ne pouvez pas faire un Keygen ou au moins trouver un serial, et que donc vous émuliez le mode enregistré, vérifiez bien si le fait de rentrer un serial bidon, est nécessaire. Si c'est oui, il faudra le préciser.

Avec ces quelques précautions, ça devrait limiter les surprises.
 

Lise Grim 2002 / WiA