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
ASM-Obfuscator — Obfusque le code assembleur x86-64 par injection d'instructions, code parasite, obfuscation des constantes et déchiffrement à l'exécution afin d'entraver la rétro-ingénierie et l'anti-analyse. | Kitploit
Outils/GitHubGitHub/gmh5225/asm-obfuscator
Outils DéfensifsRétro-ingénierieDébogueursAnalyse de Binaires
GitHubgmh5225/asm-obfuscator

ASM-Obfuscator

Obfusque le code assembleur x86-64 par injection d'instructions, code parasite, obfuscation des constantes et déchiffrement à l'exécution afin d'entraver la rétro-ingénierie et l'anti-analyse.

Voir le dépôt
7171il y a 3 ansPas encore vérifié

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

ASM-Obfuscator

Obfusqueur avancé de code assembleur x86-64. License

Description

L'obfusqueur de code assembleur est un outil puissant et polyvalent conçu pour renforcer la sécurité de votre code assembleur x86-64. Il protège vos projets contre la rétro-ingénierie et l'analyse en employant une large gamme de techniques d'obfuscation et de mesures anti-analyse.

Fonctionnalités

  • Injection d'instructions : Injecte des séquences d'octets personnalisées avant chaque instruction assembleur afin de dérouter les désassembleurs.

  • Randomisation : Introduit de l'aléatoire dans la structure du code, le rendant moins prévisible.

  • Détection de débogueurs : Détecte la présence de débogueurs pendant l'exécution du code et emploie des mesures anti-débogage.

  • Techniques anti-analyse : Déroutent les outils d'analyse dynamique à l'aide de branchements conditionnels et de contrôles de temporisation.

  • Déchiffrement dynamique : Chiffre et déchiffre dynamiquement des sections de code à l'exécution, augmentant la complexité.

  • Décompression dynamique : Compresse et décompresse dynamiquement des sections de code, masquant la véritable nature du code.

  • Obfuscation des constantes : Obfusque les constantes et les valeurs de données en utilisant des techniques telles que le XOR et la manipulation de bits.

  • Renommage des variables : Renomme les variables et les registres, rendant le code moins lisible pour les humains.

  • Insertion de code parasite : Insère des partitions de code parasite pour obscurcir davantage la base de code.

Fonctionnement

1. Injection d'instructions

Le cœur du processus d'obfuscation consiste à injecter des séquences d'octets personnalisées avant chaque instruction assembleur du fichier de code. Ces séquences d'octets stratégiquement conçues visent à dérouter aussi bien les désassembleurs que les analystes. Examinons ce processus en détail :

Instruction d'origine :

4005d2:   55                      push   rbp

En mémoire (hex) :

0x55

Après injection :

400665:   eb 01                jmp    400668 <main+0x3>
400667:   b0 55                mov    al,0x55
400669:   eb 01                jmp    40066c <main+0x7>

En mémoire (hex) :

0xEB, 0x01, 0xB0, 0x55

Voici le détail de la transformation :

  • L'instruction d'origine PUSH RBP s'assemble en 0x55. L'obfusqueur insère les octets 0xEB, 0x01, 0xB0 avant elle.

  • Le résultat est une séquence d'instructions qui, une fois désassemblée, peut sembler entièrement différente du code d'origine. Cela rend difficile pour la rétro-ingénierie de comprendre le véritable but du code.

2. Randomisation

Il introduit des éléments d'aléatoire dans le code. Cela implique des techniques telles que la permutation d'instructions, l'échange d'opérandes et la substitution d'opcodes.

3. Détection de débogueurs

Intègre des mécanismes pour détecter la présence de débogueurs pendant l'exécution du code. Dispose de vérifications à l'exécution pour identifier les artefacts liés aux débogueurs et déclencher des mesures anti-analyse.

4. Techniques anti-analyse

Intègre plusieurs mesures anti-analyse, telles que des branchements conditionnels et des contrôles de temporisation. Par exemple, il peut insérer des sauts conditionnels et des boucles de délai pour ralentir le processus d'analyse.

5. Déchiffrement dynamique

Il utilise des techniques de déchiffrement dynamique. Il chiffre certaines sections de code et les déchiffre à l'exécution à l'aide d'une clé secrète. Ce processus de déchiffrement se produit dynamiquement pendant l'exécution du code.

6. Décompression dynamique

Il compresse certaines sections de code et les décompresse à la volée lors de leur exécution.

7. Obfuscation des constantes

Utilise des techniques telles que le XOR, la manipulation de bits et les opérations arithmétiques pour obfusquer les constantes. Cela garantit que les valeurs constantes ne sont pas facilement reconnaissables.

8. Renommage des variables

L'outil renomme les variables et les registres, rendant le code moins lisible. Le processus consiste à remplacer les noms de variables par des chaînes générées aléatoirement ou des identifiants numériques.

9. Insertion de code parasite

Pour obscurcir davantage le code, l'obfusqueur insère des partitions de code parasite à des emplacements stratégiques. Ce code parasite est constitué d'instructions sans rapport qui n'affectent pas la logique du programme mais servent à encombrer la base de code.

Exemple d'insertion de code parasite :

; Original Code
mov eax, 1

; After Junk Code Insertion
mov ebx, 2
sub ecx, ecx
add edx, edx

En mémoire (hex) :

0x89, 0xD8, 0x31, 0xC9, 0x01, 0xD2

Le code parasite inséré est conçu pour détourner l'attention et rendre le code plus alambiqué.

10. Détection de faux en-têtes UPX

Intègre également une fonctionnalité de détection des faux en-têtes UPX. Il analyse le code à la recherche de signes d'altération des en-têtes UPX, garantissant l'intégrité de l'exécutable.

Avant transformation (code original) :

section .text
global _start

_start:
    ; Calculate the sum of the first 10 natural numbers
    mov ecx, 10        ; Initialize loop counter
    mov eax, 0         ; Initialize sum to 0

loop_start:
    add eax, ecx       ; Add current value of ECX to EAX (sum)
    loop loop_start    ; Decrement ECX and loop if not zero

    ; Exit program
    mov eax, 1         ; SYS_exit
    int 0x80           ; Invoke syscall

Représentation hexadécimale (code original) :

31 C9                 xor    ecx,ecx
B8 00 00 00 00        mov    eax,0x0
EB 0E                 jmp    0x1c
01 C8                 add    eax,ecx
E2 FB                 loop   0x11
B8 01 00 00 00        mov    eax,0x1
CD 80                 int    0x80

Après transformation (code obfusqué) :

section .text
global _start

_start:
    ; Calculate the sum of the first 10 natural numbers
    mov eax, 0x1
    add eax, 0x2
    add eax, 0x3
    add eax, 0x4
    add eax, 0x5
    add eax, 0x6
    add eax, 0x7
    add eax, 0x8
    add eax, 0x9
    add eax, 0xa

    ; Exit program
    mov eax, 0x1
    int 0x80

Représentation hexadécimale (code obfusqué) :

B8 01 00 00 00        mov    eax,0x1
83 C0 02              add    eax,0x2
83 C0 03              add    eax,0x3
83 C0 04              add    eax,0x4
83 C0 05              add    eax,0x5
83 C0 06              add    eax,0x6
83 C0 07              add    eax,0x7
83 C0 08              add    eax,0x8
83 C0 09              add    eax,0x9
83 C0 0A              add    eax,0xa
B8 01 00 00 00        mov    eax,0x1
CD 80                 int    0x80

Dans le code obfusqué, nous avons rendu la logique du programme d'origine moins apparente en ajoutant des instructions ADD redondantes et en utilisant des valeurs hexadécimales comme opérandes immédiates.

Licence

Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus de détails.

Contribution

Les contributions sont les bienvenues !.

Support

Pour les problèmes, les demandes de fonctionnalités ou toute question générale, veuillez créer une issue.

Avertissement

Cet outil est destiné à des fins éducatives et éthiques.

Télécharger l’outil