1. “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:ayoub@marocpharm.net
TAHIRI Soufiane aka “Esp!oNLerAvaGe” Chercheur Indépendant en Sécurité
Logiciel, Auteur de « Premièrs Pas vers le Cracking »
mail:soufiane@marocpharm.net
2. 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
3. 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.
4. 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 »
5. 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 !
6. 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.
7. 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).
8. Applications légales 3
– Perte du code source.
– Compatibilité ou
Interopérabilité.
– Réutilisation
du code / migration.
9. 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.
10. Applications illégales 2
– Espionnage
industriel.
– Vol
d'algorithmes
ou même de
logiciels d'une entreprise
concurrente
11. 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
12. 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
13. Les phases du RE
Fichier Source
Fichier Objet (*.obj)
Fichier Exécutable
Langage
Assembleur
Compilation Linking
DésassemblageDécompilation
14. 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 ;
15. 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 ;
– …
16. 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é
17.
18. Les débogueurs - OllyDBG
– Est gratuit.
– Est Très utilisé.
– Interface conviviale.
– Peut être étendu grâce à un système de
plugins.
28. Outils de control de système
• Le suite Sysinterls de M$.
– Process Explorer
– RegMon
– FileMon
– TCPView
– Etc...
29.
30.
31.
32. Les outils de Diffing
– WinDiff ;
– eEye Digital Security Diffing ;
– Zynamics BinDiff.
– DarunGrim
33.
34. 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.
35. Comment protéger son logiciel ?
– Juridiquement
– En bloquant ou freinant le piratage du logiciel
– En utilisant des mesures punitives
36. Techniques de protection simples
– Protection par
numéto de série.
– Limitation du
temps.
– Obfuscation de
code
– Chiffrement de
code
– Vérifications
furtives
37. Techniques avancés
– Les Packers
– Techniques d’anti-
RE
– Fusion avec
l'application
– Virtualisation
38. 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.
39. RE en action 2
– Cracker le reverse-me pour accepter tous les
serials.
– Chopper un serial valide.
– Faire un self-keygenerateur.
40. 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é. »
Dmitry Sklyarov : Il est connu pour avoir été poursuivi en 2001 par la société américaine Adobe qui s'est plainte que le système de protection anti-copie de son format de fichier e-book était contourné par le produit de ElcomSoft.
Intel, Windows, PE
Intel, Linux , ELF
ARM, iOS, Mach-o