Boomerang Decompiler - l'ingénierie inverse en Open Source - Automatisation
Le reverse engineering ou ingénierie inverse est un sujet qui n'interesse que lorsque le besoin s'en fait cruellement sentir.
En général, il ne s'agit pas de faire des cracks de programmes mais simplement de se coupler à un programme déjà existant qui fait presque tout le travail sauf la fonctionnalité que vous voudriez automatiser.
Celle-ci ne peut se faire qu'à la main parce que son créateur est devenu indisponible, a oublié de vous fournir l'interface ou bien les sources nécessaires ont été perdus ou ...
Il peut aussi s'agir d'optimiser par 100 la vitesse d'accès à un programme en évitant de passer par son interface graphique. Ce que ferait classiquement un outil d'automatisation comme [AutoIt v3 pour Windows] (excellent freeware) .
L'ingénierie inverse fonctionne comme on peut le lire dans le fichier [.PDF ici !].
Mais, ne pas rêver, après la décompilation il reste souvent énormément de travail - d'analyse en particulier : comprendre un programme décompilé est bien pire que de lire un programme non documenté. Ici les noms donnés aux variables par le décompilateur ne sont pas parlant. En général, il vaut mieux réécrire un programme plutôt que de faire une usine à gaz ou bien d'essayer de comprendre un programme trop complexe. [On vous l'explique ici en anglais !]
On peut voir de la théorie sur la décompilation dans la [thèse de Christina Cifuentes faite sur son dcc Decompiler !] qui a influencé Boomerang
Si c'est le côté sombre, qui vous interesse, commencez par les Essays de Fravia qui justement ne l'est pas trop !!! Bonne chasse ;-)
Les machines virtuelles du moment se décompilent plutôt bien,. Néanmoins dans les décompilateur éprouvés :
En général, il ne s'agit pas de faire des cracks de programmes mais simplement de se coupler à un programme déjà existant qui fait presque tout le travail sauf la fonctionnalité que vous voudriez automatiser.
Celle-ci ne peut se faire qu'à la main parce que son créateur est devenu indisponible, a oublié de vous fournir l'interface ou bien les sources nécessaires ont été perdus ou ...
Il peut aussi s'agir d'optimiser par 100 la vitesse d'accès à un programme en évitant de passer par son interface graphique. Ce que ferait classiquement un outil d'automatisation comme [AutoIt v3 pour Windows] (excellent freeware) .
Dans un monde parfait, le système serait transparent et l'on devrait toujours avoir accès à l'information mais nous ne sommes pas dans un monde parfait.
Une des réponses à ce problème est l'ingénierie inverse
L'ingénierie inverse fonctionne comme on peut le lire dans le fichier [.PDF ici !].
Mais, ne pas rêver, après la décompilation il reste souvent énormément de travail - d'analyse en particulier : comprendre un programme décompilé est bien pire que de lire un programme non documenté. Ici les noms donnés aux variables par le décompilateur ne sont pas parlant. En général, il vaut mieux réécrire un programme plutôt que de faire une usine à gaz ou bien d'essayer de comprendre un programme trop complexe. [On vous l'explique ici en anglais !]
On peut voir de la théorie sur la décompilation dans la [thèse de Christina Cifuentes faite sur son dcc Decompiler !] qui a influencé Boomerang
Les bouquins
- celui de Eldad Eilam [ Reversing: Secrets of Reverse Engineering ] semble être le bon choix du moment.
- Si vous voulez de la théorie [Reverse Engineering of Object-Oriented Code] est le livre qu'il vous faut.
- Si c'est la sécurité de Java qui vous préoccupe, lisez attentivement [Covert Java ] et utilisez RetroGuard Java Obfuscator de Retrologic pour rendre vos programmes illisibles.
- Si ce sont les problèmes de sécurité en général qui vous préoccupent alors c'est [Sockets, Shellcode, Porting, and Coding : Reverse Engineering Exploits and Tool Coding for Security Professionals] écrit par les spécialistes de la sécurité de chez Foundstone qu'il vous faut.
Si c'est le côté sombre, qui vous interesse, commencez par les Essays de Fravia qui justement ne l'est pas trop !!! Bonne chasse ;-)
Les Décompilateurs
Les machines virtuelles du moment se décompilent plutôt bien,. Néanmoins dans les décompilateur éprouvés :
- Pour Java, tous les étudiants connaissent [ Jad ], [JCavaj & JODE] et [DJ Java Decompiler]
- Pour .NET [Reflector for .NET] est un bon outil mais un excellent décompilateur est [RemoteSoft Salamander] qui vous permet aussi de rendre vos programmes illisibles à la décompilation - si c'est ce que vous cherchez - car la décompilation .NET est un sujet passionnant
- voila le décompilateur [Boomerang Decompiler]
0 Comments:
Enregistrer un commentaire
<< Home