Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ropfuscator — ROPfuscator est un framework d'obfuscation de code à grain fin pour les programmes C/C++ utilisant la ROP (programmation orientée retour). | Kitploit
Outils/GitHubGitHub/ropfuscator/ropfuscator
Outils DéfensifsAnalyse de CodeExploitationRétro-ingénierieAnalyse de Binaires
GitHubropfuscator/ropfuscator

ropfuscator

ROPfuscator est un framework d'obfuscation de code à grain fin pour les programmes C/C++ utilisant la ROP (programmation orientée retour).

Voir le dépôt
4453311il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Avertissement

ROPfuscator est une preuve de concept de recherche et n'est pas destiné à une utilisation en production. Les auteurs déclinent toute responsabilité quant à l'utilisation du logiciel. Veuillez faire preuve de prudence et l'utiliser à vos propres risques.


ROPfuscator Build

logo

ROPfuscator est un framework d'obfuscation de code à grain fin pour les langages supportés par LLVM, reposant sur la ROP (return-oriented programming). ROPfuscator obfusque un programme au niveau du code assembleur en transformant les instructions classiques en chaînes ROP, contrecarrant notre conception naturelle du flux de contrôle normal. Il est implémenté comme une extension du backend x86 de LLVM (10.0.1).

Pour la compilation, l'utilisation et l'implémentation, consultez les documents suivants :

  • Compiler ROPfuscator : build.md
  • Utiliser ROPfuscator pour obfusquer des programmes : usage.md
  • Détails de l'algorithme d'obfuscation : algorithm.md
  • Détails d'implémentation : implementation.md

Article de recherche


Lire l'article ici
@inproceedings{depasquale2023ropfuscator,
  title={ROPfuscator: Robust Obfuscation with ROP},
  author={De Pasquale, Giulio and Nakanishi, Fukutomo and Ferla, Daniele and Cavallaro, Lorenzo},
  booktitle={2023 IEEE Security and Privacy Workshops (SPW)},
  pages={1--10},
  year={2023},
  organization={IEEE}
}

Améliorations clés

Ce projet vise à fournir une version améliorée de ROPfuscator avec un fort accent sur la reproductibilité et la facilité d'intégration. Nous avons apporté plusieurs améliorations clés dans ce dépôt, comme indiqué ci-dessous.

Gestionnaire de paquets Nix

ROPfuscator exploite désormais Nix, un gestionnaire de paquets déclaratif et puissant qui permet des builds fiables et reproductibles. Nix offre plusieurs avantages :

  • Garantit la cohérence des dépendances et des environnements de build entre les systèmes.
  • Permet des environnements de build isolés, éliminant les conflits avec d'autres paquets installés.
  • Prend en charge les retours arrière vers les versions précédentes des paquets, ce qui facilite la récupération après des mises à jour échouées.

ROPfuscator fournit un flake Nix exposant les stdenv de ROPfuscator et diverses fonctions d'aide utilisées pour compiler nativement des dérivations Nix, sans appliquer aucune modification au système de build du projet à construire.

Processus d'évaluation

Le processus d'évaluation a été entièrement réécrit, en tirant pleinement parti du gestionnaire de paquets Nix. Cela garantit une évaluation plus fiable et transparente, qui servira de base aux futurs travaux sur ROPfuscator.

Obfuscation transparente des paquets Nix amont

ROPfuscator peut désormais tenter d'obfusquer de manière transparente n'importe quel paquet présent dans le dépôt de paquets Nix amont, nixpkgs, sans nécessiter de modifications. Cela permet aux utilisateurs de Nix d'intégrer ROPfuscator de manière transparente dans leurs flux de travail existants et de tester ses capacités.

ROPfuscator peut cibler un seul projet, en n'obfusquant que les fichiers objets pertinents pour le projet lui-même, ou il peut obfusquer la cible ainsi que toutes ses dépendances.


Pour commencer

Utiliser Nix (recommandé)

Étape 0 : Installer Nix

Installez Nix (le gestionnaire de paquets) et assurez-vous que son démon est en cours d'exécution.

Étape 1 : Activer l'utilisation des Flakes dans Nix

Les Flakes vous permettent de spécifier les dépendances de votre code de manière déclarative et de définir facilement les entrées et sorties des projets. ROPfuscator expose différentes sorties, nous devons donc activer l'utilisation des Flakes dans Nix.

Voici une procédure pas à pas pour les activer.

Étape 2 : Ajouter le dépôt de cache ROPfuscator aux canaux de Nix (facultatif)

Cette étape permet de tirer parti du dépôt de cache de ROPfuscator pour éviter de recompiler le projet et toutes ses dépendances à partir de zéro. Cette étape est facultative mais recommandée.

Pour activer le cache de ROPfuscator, installez d'abord cachix :

nix-env -iA cachix -f https://cachix.org/api/v1/install

Ensuite, configurez nix.conf pour utiliser le cache binaire :

cachix use ropfuscator

Étape 3 : Compiler et utiliser ROPfuscator

La dernière étape consiste à compiler ROPfuscator. Cela peut être fait en exécutant :

nix build github:ropfuscator/ropfuscator -L

Si vous souhaitez ouvrir un shell configuré pour utiliser ROPfuscator par défaut, exécutez simplement :

nix shell github:ropfuscator/ropfuscator

ROPfuscator peut être utilisé pour obfusquer des paquets présents dans le dépôt Nixpkgs. Actuellement, nous utilisons un fork personnalisé car certains paquets amont n'étaient pas correctement configurés pour la compilation croisée. Bien que nous ayons déjà soumis certains correctifs en amont, il reste encore du travail à faire pour une expérience sans faille.

Pour commencer, suivez les deux premières étapes ci-dessus et installez Nix. Ensuite, copiez flake-example.nix dans un répertoire en le renommant flake.nix :

 mkdir -p ropfuscator-example && cd ropfuscator-example
 cp ../flake-example.nix flake.nix

À ce stade, vous pouvez compiler les deux paquets définis dans le flake : hello et obfuscatedHello.

Pour compiler obfuscatedHello, utilisez :

 nix build .#obfuscatedHello -L

De même, pour compiler hello, exécutez :

 nix build .#hello -L

Aperçu de ROPfuscator

architecture

Nous combinons les couches d'obfuscation suivantes pour obtenir une obfuscation robuste face à plusieurs attaques.

  • Transformation ROP
    • Convertit chaque instruction en un ou plusieurs gadgets ROP, et traduit l'ensemble du code en chaînes ROP.
  • Insertion de prédicats opaques
    • Traduit les adresses de gadgets ROP et les valeurs poussées sur la pile en constantes opaques, qui sont une composition de plusieurs prédicats opaques.

Configurations

ROPfuscator peut être configuré via des fichiers de configuration TOML. Ce dépôt contient les configurations prêtes à l'emploi suivantes :

Télécharger l’outil