Reverse-Engineering Pour le Fun et le Profit

752 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
752
Sur SlideShare
0
Issues des intégrations
0
Intégrations
26
Actions
Partages
0
Téléchargements
15
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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
  • FLIRT (Fast Library Identification Recognition Technology)
    PIT (Parameter Identification & Tracking)
  • Reverse-Engineering Pour le Fun et le Profit

    1. 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. 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. 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. 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. 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. 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. 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. 8. Applications légales 3 – Perte du code source. – Compatibilité ou Interopérabilité. – Réutilisation du code / migration.
    9. 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. 10. Applications illégales 2 – Espionnage industriel. – Vol d'algorithmes ou même de logiciels d'une entreprise concurrente
    11. 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. 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. 13. Les phases du RE Fichier Source Fichier Objet (*.obj) Fichier Exécutable Langage Assembleur Compilation Linking DésassemblageDécompilation
    14. 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. 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. 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. 17. Les débogueurs - OllyDBG – Est gratuit. – Est Très utilisé. – Interface conviviale. – Peut être étendu grâce à un système de plugins.
    18. 18. Les décompilateurs – VB Decompiler ; – Java Decompiler ; – DeDe Delphi Decompiler ; – Reflector .NET Decompiler ; – Sothink SWF Decompiler ;
    19. 19. Les éditeur Hexadécimaux – WinHex – HexDecCharEditor – Hex Workshop – Hiew
    20. 20. Outils de control de système • Le suite Sysinterls de M$. – Process Explorer – RegMon – FileMon – TCPView – Etc...
    21. 21. Les outils de Diffing – WinDiff ; – eEye Digital Security Diffing ; – Zynamics BinDiff. – DarunGrim
    22. 22. 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.
    23. 23. Comment protéger son logiciel ? – Juridiquement – En bloquant ou freinant le piratage du logiciel – En utilisant des mesures punitives
    24. 24. Techniques de protection simples – Protection par numéto de série. – Limitation du temps. – Obfuscation de code – Chiffrement de code – Vérifications furtives
    25. 25. Techniques avancés – Les Packers – Techniques d’anti- RE – Fusion avec l'application – Virtualisation
    26. 26. 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.
    27. 27. RE en action 2 – Cracker le reverse-me pour accepter tous les serials. – Chopper un serial valide. – Faire un self-keygenerateur.
    28. 28. 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é. »
    29. 29. Questions ?

    ×