L’obfuscation contournée (Partie 1)

Magazine
Marque
MISC
Numéro
41
Mois de parution
janvier 2009
Domaines


Résumé

Implémenter un système pour obscurcir le code d’une application de façon efficace demande au développeur de ce système une connaissance importante dans le domaine de la protection logicielle et notamment dans la furtivité. En plus de devoir connaître les techniques variées utilisées en obfuscation, il doit connaître les méthodes employées par les attaquants pour mettre en déroute ces systèmes de défense.Indubitablement, la grande majorité des reversers utilisent une méthode mixte constituée d’un savant mélange d’analyse statique et d’analyse dynamique. Ils utilisent entre autres la méthode dite de « reconnaissance des patterns » pour éliminer l’obfuscation présente. Il existe des outils semi-automatiques très prometteurs dans ce domaine comme le plugin IDA « DeObfuscator » d’Éric Laspe.


1. Introduction

Si cette méthode d’élimination se révèle très efficace, elle se trouve être également très coûteuse en temps. En effet, l’identification de patterns se fait en général en deux temps : on commence par une reconnaissance « manuelle », c'est-à-dire qu’on identifie chaque pattern de visu en désassemblant le code source du programme protégé, puis on automatise la tâche à l’aide de scripts (scripts IDC si l’on utilise IDA, scripts ODBGScripts si l’on utilise OllyDbg, scripts en Python si l’on utilise Immunity Debugger) ou d’outils de désassemblage spécifiquement codés pour l’occasion. Malgré l’automatisation de cette opération, l’identification de centaines de patterns différentes est un travail fastidieux et pénible.

La reconnaissance de patterns n’est pas la seule technique d’attaque à pouvoir donner des résultats probants lors d’une analyse. Je vais illustrer dans cet article une toute autre approche qui...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Créez des présentations animées avec Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Expliquer des faits scientifiques (des formules mathématiques, des phénomènes de physique, etc.) ou du code n’est pas toujours simple. Le recours à des animations peut apporter beaucoup plus de clarté et faciliter la compréhension de votre auditoire. Et ce n’est pas si compliqué à créer...

La téléportation, de la fiction au SDN

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

L’art de se téléporter n’est plus réservé au cinéma ! Suite au développement de nouveaux paradigmes tels que le SDN, facilitant le déploiement de firewalls, la sécurité du plan de données a considérablement augmenté. Mais est-il possible d’éviter ces points de passage pour exfiltrer des données entre deux extrémités d’un réseau ? Au lieu de chercher un trou dans le mur, ne serait-il pas plus simple de trouver un moyen de le contourner ? C’est là l’ambition des techniques de téléportation. Nous explorerons les différentes techniques exploitant ce concept, puis nous reproduirons l’une de celles-ci sur un contrôleur SDN, ONOS.

Traitement de tâches de fond en Ruby

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Beaucoup de projets web utilisent des frameworks qui font grand usage de Redis pour gérer les tâches de fond. Pourtant RabbitMQ ou Kafka sont des options qui peuvent donner un regard tout à fait différent sur l’application en elle-même. Tour d’horizon des trois approches.

Découverte de la puce Titan M a.k.a Citadel

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

La puce Titan M ou Citadel est une puce sécurisée sur laquelle repose en grande partie la sécurité des terminaux Android de Google, la gamme Pixel. Dans cet article, nous détaillerons le fonctionnement interne et les usages de ce composant pour lequel peu d’information publique est disponible à ce jour. Nous donnerons également plusieurs pistes pour aider le rétro-ingénieur à travailler sur ce projet.

Découvrez la programmation différentiable

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

La programmation différentiable est une nouvelle façon de penser la programmation. Le principe consiste à considérer tout un programme comme une fonction qu’on puisse différentier, et donc optimiser. Nous allons construire dans cet article les outils de base pour ce faire, et présenter la librairie JAX, qui facilite la tâche.