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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sleigh — Compilation CMake de la bibliothèque de spécifications de processeur SLEIGH de Ghidra, fournissant des moteurs autonomes de désassemblage et de lifting p-code pour les outils de rétro-ingénierie. | Kitploit
Outils/GitHubGitHub/lifting-bits/sleigh
Analyse StatiqueAnalyse de CodeAnalyse Dynamique de Code (DAST)Rétro-ingénierieScripting et AutomatisationUtilitaires et FrameworksAnalyse de Binaires
GitHublifting-bits/sleigh

sleigh

Compilation CMake de la bibliothèque de spécifications de processeur SLEIGH de Ghidra, fournissant des moteurs autonomes de désassemblage et de lifting p-code pour les outils de rétro-ingénierie.

Voir le dépôt
191268il y a 3 joursVérifié par Kitploit
Site web

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

Bibliothèque Sleigh

Sleigh est un langage utilisé pour décrire la sémantique des jeux d'instructions des microprocesseurs à usage général, avec suffisamment de détails pour faciliter la rétro-ingénierie des logiciels compilés pour ces architectures. Il fait partie de la plateforme de rétro-ingénierie Ghidra et sous-tend deux de ses composants majeurs : ses moteurs de désassemblage et de décompilation.

Ce dépôt fournit un projet de compilation basé sur CMake pour Sleigh afin qu'il puisse être compilé et empaqueté en tant que bibliothèque autonome et être réutilisé dans des projets autres que Ghidra.

Plateformes prises en charge

NomPrise en charge
LinuxOui
macOSOui
WindowsOui

Dépendances et prérequis

Requis

NomVersionPaquet Linux à installerPaquet macOS Homebrew à installer
(compilations HEAD) zlibRécentezlib1g-devzlib
GitDernièregitN/A
CMake3.18+cmakecmake

REMARQUE : Ce projet CMake récupère le code source de Ghidra depuis Internet lors de la configuration. Consultez la note sur la section du code source de Ghidra pour plus de détails.

Facultatif

Pour la génération de la documentation :

NomVersionPaquet Linux à installerPaquet macOS Homebrew à installer
DoxygenDernièredoxygendoxygen
GraphVizDernièregraphvizgraphviz

Compiler et installer la bibliothèque Sleigh

# Clone this repository (CMake project for sleigh)
git clone https://github.com/lifting-bits/sleigh.git
cd sleigh

# Configure CMake
cmake -B build -S .

# Build Sleigh
cmake --build build --parallel 8

# Install Sleigh
cmake --install build --prefix ./install

Note sur le code source de Ghidra

Le code source de Ghidra n'est pas réellement inclus dans ce dépôt git, et par défaut, CMake récupérera automatiquement une version stable depuis Internet pour vous.

Veuillez consulter src/README.md pour plus d'informations sur la façon de personnaliser quel commit du code source de Ghidra sera utilisé/compilé, y compris la spécification de votre propre copie locale du code source de Ghidra.

Empaquetage

La configuration CMake prend également en charge la création de paquets pour Sleigh.

Par exemple :

# Package Sleigh
cmake --build build --target package

Utilisation de l'API

Un programme d'exemple appelé sleigh-lift a été inclus pour démontrer comment utiliser l'API Sleigh. Il prend une chaîne hexadécimale d'octets et peut la désassembler ou la transformer en p-code. Le programme peut être invoqué comme suit, où l'argument action doit être soit disassemble soit pcode :

sleigh-lift [action] [sla_file] [bytes] [-a address] [-p root_sla_dir] [-s pspec_file]

Par exemple, pour désassembler la chaîne d'octets suivante :

$ sleigh-lift disassemble x86-64.sla 4881ecc00f0000
0x00000000: SUB RSP,0xfc0

Et pour la transformer en p-code :

$ sleigh-lift pcode x86-64.sla 4881ecc00f0000
(register,0x200,1) = INT_LESS (register,0x20,8) (const,0xfc0,8)
(register,0x20b,1) = INT_SBORROW (register,0x20,8) (const,0xfc0,8)
(register,0x20,8) = INT_SUB (register,0x20,8) (const,0xfc0,8)
(register,0x207,1) = INT_SLESS (register,0x20,8) (const,0x0,8)
(register,0x206,1) = INT_EQUAL (register,0x20,8) (const,0x0,8)
(unique,0x12c00,8) = INT_AND (register,0x20,8) (const,0xff,8)
(unique,0x12c80,1) = POPCOUNT (unique,0x12c00,8)
(unique,0x12d00,1) = INT_AND (unique,0x12c80,1) (const,0x1,1)
(register,0x202,1) = INT_EQUAL (unique,0x12d00,1) (const,0x0,1)

Si vous ne souhaitez pas compiler sleigh-lift, vous devez définir l'option de variable CMake sleigh_BUILD_EXTRATOOLS sur OFF lors de la configuration CMake.

Assistants

Ce dépôt contient un assistant qui ne fait pas partie de Sleigh/Ghidra, que vous pouvez trouver dans le répertoire support. Il a la signature suivante et peut aider l'utilisateur à trouver l'emplacement d'un fichier de spécification donné sur le système :

std::optional<std::filesystem::path>
FindSpecFile(std::string_view file_name,
             const std::vector<std::filesystem::path> &search_paths =
                 gDefaultSearchPaths);

La fonction sleigh::FindSpecFile recherchera dans les chemins fournis par l'utilisateur via l'argument search_paths un fichier de spécification portant le nom file_name. L'argument par défaut de search_paths est sleigh::gDefaultSearchPaths, qui contient les répertoires d'installation/compilation générés lors de la configuration CMake et un ensemble d'emplacements d'installation courants.

Si vous ne souhaitez pas compiler les assistants, vous devez définir l'option de variable CMake sleigh_BUILD_SUPPORT sur OFF lors de la configuration CMake.

Intégration en tant que dépendance

Une installation de Sleigh fournit une interface CMake que vous pouvez utiliser lors de la compilation de votre projet.

Vous pouvez trouver un exemple d'utilisation du fichier de configuration du paquet CMake dans l'exemple find_package.

Nous fournissons également une fonction d'assistance CMake sleigh_compile pour compiler vos fichiers .slaspec à l'aide d'un compilateur sleigh.

Vous pouvez trouver un exemple CMake plus complexe avec la compilation des spécifications Sleigh dans le répertoire example, qui utilise le code source d'exemple sleigh fourni en amont.

Enfin, vous pouvez localiser les fichiers sleigh compilés installés via la variable CMake sleigh_INSTALL_SPECDIR, qui est un chemin absolu vers le répertoire racine des fichiers sleigh compilés---vous devriez l'inspecter manuellement pour savoir à quoi vous attendre.

Il est également suggéré de consulter le fichier de configuration CMake et le fichier CMake specfiles pour en savoir plus sur les variables et modules CMake exposés.

Licence

Voir le fichier LICENSE.

Télécharger l’outil