“Reverse-Engineering pour
le Fun et le Profit”
17 Mai 2012
FAOUZI Ayoub aka “Noteworthy”, Etudiant-Chercheur Malware Analysis, Auteur
de « Pas à Pas vers l'Assembleur »
mail:[email protected]
TAHIRI Soufiane aka “Esp!oNLerAvaGe” Chercheur Indépendant en Sécurité
Logiciel, Auteur de « Premièrs Pas vers le Cracking »
mail:[email protected]
Agenda
• Qu’est ce que la rétro-ingénierie ?
• A quoi ça sert ?
• Ses applications légales/illégales
• Pourquoi c’est toujours un Black Art ?
• En quoi c’est interessant?
• Les phases du RE
• Les connaissances requises
• Les outils pour le RE
• Pourquoi protéger son logiciel ?
• Comment protéger son logiciel ?
• Les techniques de protections simples
• Techniques avancés
• RE en action
• Conclusion
• Questions/Réponses
Qu’est ce que la rétro-ingénierie ?
Est un activité qui consiste
à étudier un objet pour
en déterminer le
fonctionnement interne
ou sa méthode de
fabrication.
Qu’est ce que la rétro-ingénierie
RE : Reverse Engineering
– Rétro conception
– Rétro ingénierie
– Ingénierie inverse
– Ingénierie inversé
– Ou bien Tout simplement: « reversing »
A quoi ça sert ?
– Comprendre le fonctionnement de cet objet.
– Fabriquer une copie de cet objet.
– Créer un nouvel objet ayant des
fonctionnalités identiques à l'objet de départ.
– Analyser un objet produit par un concurrent.
Solution: Reverse Engineer it !
Applications légales 1
– Etude d'un protocole réseau pour son portage
sur d'autres plateformes.
– Etude d'un format
de fichier pour son
portage sur d'autres
plateformes.
Applications légales 2
– Recherche de vulnérabilités dans un logiciel
Légal pour les entreprises agrémentées
(exemple Google).
– Etude de malwares : comprendre les
virus/vers/rootkits/botnets pour mieux s'en
défendre. (exemple ZeuS, SpyEye, Stuxnet).
Applications légales 3
– Perte du code source.
– Compatibilité ou
Interopérabilité.
– Réutilisation
du code / migration.
Applications illégales 1
– Etude des vulnérabilités d'un logiciel/OS en vue
d'une exploitation.
– Casser une
protection
logiciel ainsi
qu’une publication du
patch sur Internet.
Applications illégales 2
– Espionnage
industriel.
– Vol
d'algorithmes
ou même de
logiciels d'une entreprise
concurrente
Pourquoi c’est toujours un Black Art ?
• Reverse Engineering = Cassage
des Protections Logiciels ?
• La DMCA qui fait chier!
• Les gens pensent encore que ça
devrait être illégal!
Please, Le reverse engineering est légal!
Dmitry Sklyarov
En quoi c’est interessant?
– Une compréhension plus profonde de la façon
dont fonctionne n’importe quel
microprocesseur.
– Apprendre comment le processeur gère les
données aide à comprendre énormément
d’autres nombreux aspects de la sécurité
informatique
Les phases du RE
Fichier Source
Fichier Objet (*.obj)
Fichier Exécutable
Langage
Assembleur
Compilation Linking
DésassemblageDécompilation
Les connaissances requises
• Identifier le format binaire cible ;
• Maîtriser les outils ;
• Creuser et découvrir autant que vous le pouvez ...
• Identifier le
processeur cible ;
• Identifier le système
d'exploitation cible ;
Les outils pour le RE
– Désassembleurs ;
– Débuggeurs ;
– Décompilateurs ;
– Editeurs hexadécimaux ;
– Outils de contrôles de systèmes
;
– Les outils de diffing ;
– …
Les désassembleurs – IDA
– Est un désassembleur professionnel et très
puissant mais $$
– Certains plugins (très chers) de retrouver le
code source originel du programme analysé
Les débogueurs - OllyDBG
– Est gratuit.
– Est Très utilisé.
– Interface conviviale.
– Peut être étendu grâce à un système de
plugins.
Les décompilateurs
– VB Decompiler ;
– Java Decompiler ;
– DeDe Delphi Decompiler ;
– Reflector .NET Decompiler ;
– Sothink SWF Decompiler ;
Les éditeur Hexadécimaux
– WinHex
– HexDecCharEditor
– Hex Workshop
– Hiew
Outils de control de système
• Le suite Sysinterls de M$.
– Process Explorer
– RegMon
– FileMon
– TCPView
– Etc...
Les outils de Diffing
– WinDiff ;
– eEye Digital Security Diffing ;
– Zynamics BinDiff.
– DarunGrim
Pourquoi protéger son logiciel ?
– Les désassembleurs et les débogueurs
permettent d‘étudier un exécutable sans
posséder sa source.
– Protéger les logiciels d'une entreprise est alors
indispensable.
Comment protéger son logiciel ?
– Juridiquement
– En bloquant ou freinant le piratage du logiciel
– En utilisant des mesures punitives
Techniques de protection simples
– Protection par
numéto de série.
– Limitation du
temps.
– Obfuscation de
code
– Chiffrement de
code
– Vérifications
furtives
Techniques avancés
– Les Packers
– Techniques d’anti-
RE
– Fusion avec
l'application
– Virtualisation
RE en action 1
– Un ReverseMe
(littéralement
« crack-moi ») est
un petit programme
destiné à tester les
capacités en rétro-
ingénierie d'un
programmeur.
RE en action 2
– Cracker le reverse-me pour accepter tous les
serials.
– Chopper un serial valide.
– Faire un self-keygenerateur.
Conclusion
– RE est vaste et complexe.
– Avec beaucoup de pratique,
il devient très facile.
« Un bon rétro-ingénieure maitrise parfaitement le proc
cible, l’OS cible, le format fichier cible, et les outils
disponible au marché. »
Questions ?
Top Related