[ - Intro - Explications - L'outil expliqué - Liens - Notes de fin - ] |
[ - Tutoriaux : Bases ~ Jnz / Jz ~ Jmp ~ La fonction d'enregistrement ~ Crack GifMovieGear 3.0 - ] |
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.
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 ).
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.