Durand Guillaume 1997-1998
Année spéciale informatique
REVERSE ENGINEERING
2
3
REMERCIEMENTS
Tous mes remerciements à Serge Rouveyrol qui ma donné le goût de la bidouille en
assembleur.
Remerciements également à la +HCU et à tous ses étudiants pour tout le travail quils ont
réalisé et les connaissances quils ont rassemblées et quil mettent gracieusement à la
disposition du plus grand nombre.
4
SOMMAIRE
1Introduction....................................................................................................................5
2Notions dassembleur 80x86 INTEL...............................................................................6
2.1 Représentation de la mémoire.....................................................................................6
2.2 Les registres................................................................................................................6
2.2.1 Registres de segments.........................................................................................7
2.2.2 Registres doffset................................................................................................7
2.2.3 Registre de flags..................................................................................................7
2.3 Les instructions les plus courantes ..............................................................................8
2.4 Appel de procédure...................................................................................................11
3Principes généraux........................................................................................................12
3.1 Le principe du crack .................................................................................................12
3.2 Les outils du cracker.................................................................................................12
3.3 Les API Windows.....................................................................................................12
3.4 Les services DOS et BIOS........................................................................................12
3.5 Les principes de base des protections........................................................................13
4Les différents types de protection..................................................................................15
4.1 CD check..................................................................................................................15
4.1.1 Vérification de la présence d'un CD ..................................................................15
4.1.2 Vérification de la présence dun fichier.............................................................16
4.2 Mots de passe (serial number)...................................................................................16
4.3 Time check...............................................................................................................19
4.4 Clé électronique........................................................................................................19
5Comment se protéger....................................................................................................20
5.1 Principes de base ......................................................................................................20
5.2 Vérification de clé.....................................................................................................20
5.3 Désactivation des débogueurs...................................................................................21
5.4 Désactivation des désassembleurs.............................................................................23
6Conclusion ...................................................................................................................25
5
1 Introduction
Le reverse engineering consiste à analyser et comprendre un code inconnu (dont on na
pas le source). Cette science peut être utilisée pour ajouter des fonctionnalités à un
programme, pour comprendre le fonctionnement dun logiciel insuffisamment documenté,
pour comprendre la technologie employée par un concurrent ou, dans le cas qui nous
intéresse, pour supprimer les protections des logiciels.
Les protections consistent à nautoriser laccès sans restriction au logiciel quaux
utilisateurs ayant payé pour obtenir cet accès. La partie du reverse engineering consistant à
supprimer les protections sappelle le cracking et se résume à lever ces restrictions
dutilisation.
Les logiciels protégés sont généralement les sharewares et les versions dévaluation que
lon peut trouver sur le web ou sur des CD offerts dans des magazines.
Pour les concepteurs de logiciels, la protection est un sujet critique puisque le principal
vecteur de diffusion de leurs programmes est internet, et quinternet est également le principal
vecteur de diffusion des cracks (programmes chargés de supprimer les protections). Un
utilisateur peut donc télécharger une version dévaluation puis le crack correspondant et
utiliser librement le logiciel sans verser de droits à lauteur. Ceci est illégal bien entendu mais
est couramment pratiqué par les particuliers un tant soit peu avertis. Cette pratique lèse les
petits développeurs et permet la large diffusion des produits des grandes compagnies.
Pour réaliser des protections efficaces, il faut connaître les techniques employées par les
crackers et comme les crackers ne disposent pour travailler que du code exécutable dun
programme, il faut, comme eux, connaître lassembleur (cest dur mais cest comme ça). Ce
rapport comportera donc un chapitre sur lassembleur INTEL 80x86.
Ensuite je traiterai différentes méthodes de protection avec leurs points faibles et la façon
de les cracker. Puis je finirai par des principes et des astuces pour décourager le cracker
moyen (hélas, le cracker expérimenté est capable de venir à bout de nimporte quelle
protection).
1 / 26 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !