Dynamorio
À propos de Dynamorio
Dynamorio est un système de manipulation de code d'exécution qui prend en charge les transformations de code sur n'importe quelle partie d'un programme, pendant qu'il s'exécute. Dynamorio exporte une interface pour construire des outils dynamiques pour une grande variété d'utilisations: analyse et compréhension du programme, profilage, instrumentation, optimisation, traduction, etc. Contrairement à de nombreux systèmes d'outils dynamiques, Dynamorio n'est pas limité à l'insertion de callououts / trampolines et permet aux modifications arbitraires des instructions d'instructions IA-32 / AMD64 / ARBARRARY. Dynamorio fournit une manipulation efficace, transparente et complète d'applications non modifiées exécutées sur les systèmes d'exploitation en stock (Windows, Linux ou Android) et le matériel de base IA-32, AMD64, ARM et AARCH64. Le support Mac OSX est en cours.
Outils basés sur Dynamorio existants
Dynamorio est la base de certains outils externes bien connus:
- L'émulateur d'instructions ARM (Armie)
- Winafl, l'outil Windows Fuzzing, comme moteur d'instrumentation et de couverture de code
- Le profileur à grains fins pour le bras drcctprof
- Le cadre portable et efficace pour les profileurs de valeur à grains fins vcliniques
- Le cadre de désinfection basé sur l'échantillonnage GWPSAN
Les outils construits sur Dynamorio et disponibles dans le package de version incluent:
- L'outil de débogage de la mémoire Dr Memory
- Le cadre de traçage et d'analyse DrMemTrace avec plusieurs outils qui fonctionnent à la fois en ligne (avec un support multiproce) et des traces d'instructions et d'adresse mémoire hors ligne:
- Le simulateur de cache drcachesim
- Simulation TLB
- Réutiliser la distance
- Réutiliser le temps
- Mixage d'opcode
- Traçage des appels de fonction
- L'émulateur de processeur hérité DRCPUSIM
- L'outil "Strace for Windows" Drstrace
- L'outil de couverture du code DRCOV
- L'outil de traçage de la bibliothèque drltrace
- Le Memtrace de l'outil de traçage de l'adresse mémoire (les traces hors ligne de DrmemTrace sont plus rapides avec plus d'infrastructure environnante, mais c'est un point de départ plus simple pour le traçage d'adresse mémoire personnalisée)
- L'outil de traçage de la valeur de mémoire memval
- L'outil de traçage des instructions Instace (les traces hors ligne de DrmemTrace sont plus rapides avec plus d'infrastructures environnantes, mais c'est un point de départ plus simple pour le traçage d'instructions personnalisé)
- L'outil de traçage de bloc de base bbbuf
- L'outil de comptage des instructions Inscount
- L'outil de test dynamique de fuzz Dr. Fuzz
- L'outil de démontage drdisas
- Et plus, y compris les dénombrements d'opcodes, l'instrumentation des branches, etc .: Voir les échantillons d'API
Construire vos propres outils personnalisés
L'API puissante de Dynamorio résume les détails de l'infrastructure sous-jacente et permet au constructeur d'outils de se concentrer sur l'analyse ou la modification du flux de code d'exécution de l'application. La documentation de l'API est incluse dans le package de version et peut également être parcourue en ligne. Des diapositives de nos tutoriels passés sont également disponibles.
Télécharger Dynamorio
Dynamorio est disponible gratuitement en tant que package binaire pour Windows et Linux. Le code source de Dynamorio est disponible principalement sous une licence BSD.
Obtenir de l'aide
Utilisez la liste de discussion pour poser des questions.
Pour signaler un bogue, utilisez le tracker du problème.
Voir aussi la page d'accueil de Dynamorio: http://dynamorio.org/