
Boîte à outils d'assembleur purement Python pour créer du shellcode, patcher dynamiquement des binaires et instrumenter des images de firmware pour le débogage et le fuzzing sur les architectures ARM, PPC, RISC-V et IA-32.
Flopz est une boîte à outils d'assembleur écrite en pur Python. Utilisez-la pour :
Si vous souhaitez voir une autre architecture implémentée, n'hésitez pas à nous contacter à tout moment - nous aimons faire cela !
Au lieu de simplement transformer des chaînes d'assembly en octets, Flopz vise à faciliter le patching interactif et l'instrumentation du firmware. Pour cela, il fournit une API de bas niveau pour les instructions et les registres qui vous permet de construire du shellcode, des modules et des fonctions directement en Python, sans avoir à gérer des chaînes de syntaxe d'assembly.
Dans les tests de sécurité embarqués, aucun appareil ne ressemble à un autre : C'est pourquoi nous proposons une approche orientée objet pour définir des cibles personnalisées, afin que le plus de composants possible puissent être réutilisés entre des projets impliquant différents appareils et architectures de processeurs.
Comme Flopz a été écrit à partir de zéro en pur Python, il peut ne pas supporter autant d'architectures que d'autres outils (comme ceux basés sur Clang/LLVM). Cependant, notre objectif est de couvrir exactement les architectures qui comptent pour les experts en sécurité embarquée et qui peuvent ne pas être couvertes par d'autres outils. De plus, étendre Flopz est rendu moins complexe grâce à un ensemble maintenu de tests unitaires et de documentation de code.
Flopz est conçu pour fonctionner avec d'autres outils. En particulier, il existe une Extension Ghidra qui vous aide à instrumenter le firmware directement dans Ghidra.
La documentation fournie facilite le travail avec flopz et l'utilisation de son interface dans vos projets.