Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ASM-Obfuscator — Ofusca el ensamblador x86-64 con inyección de instrucciones, código basura, ofuscación de constantes y descifrado en tiempo de ejecución para dificultar la ingeniería inversa y el anti-análisis. | Kitploit
Herramientas/GitHubGitHub/gmh5225/asm-obfuscator
Herramientas DefensivasIngeniería InversaDepuradoresAnálisis de Binarios
GitHubgmh5225/asm-obfuscator

ASM-Obfuscator

Ofusca el ensamblador x86-64 con inyección de instrucciones, código basura, ofuscación de constantes y descifrado en tiempo de ejecución para dificultar la ingeniería inversa y el anti-análisis.

Ver Repositorio
719hace 2 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ASM-Obfuscator

Ofuscador avanzado de ensamblador x86-64. License

Descripción

El Ofuscador de Código Ensamblador es una herramienta potente y versátil diseñada para mejorar la seguridad de tu código ensamblador x86-64. Protege tus proyectos de la ingeniería inversa y el análisis mediante el empleo de una amplia gama de técnicas de ofuscación y medidas anti-análisis.

Características

  • Inyección de instrucciones: Inyecta secuencias de bytes personalizadas antes de cada instrucción de ensamblador para confundir a los desensambladores.

  • Aleatorización: Introduce aleatoriedad en la estructura del código, haciéndolo menos predecible.

  • Detección de depuradores: Detecta la presencia de depuradores durante la ejecución del código y emplea medidas anti-depuración.

  • Técnicas anti-análisis: Confunde las herramientas de análisis dinámico con ramas condicionales y comprobaciones de tiempo.

  • Descifrado dinámico: Cifra y descifra dinámicamente secciones de código en tiempo de ejecución, aumentando la complejidad.

  • Descompresión dinámica: Comprime y descomprime dinámicamente secciones de código, ocultando la verdadera naturaleza del código.

  • Ofuscación de constantes: Ofusca constantes y valores de datos mediante técnicas como la aplicación de XOR y la manipulación de bits.

  • Renombrado de variables: Renombra variables y registros, haciendo que el código sea menos legible para los humanos.

  • Inserción de código basura: Inserta particiones de código basura para oscurecer aún más el código base.

Funcionamiento

1. Inyección de instrucciones

El núcleo del proceso de ofuscación consiste en inyectar secuencias de bytes personalizadas antes de cada instrucción de ensamblador en el archivo de código. Estas secuencias de bytes, diseñadas estratégicamente, pretenden confundir tanto a desensambladores como a analistas. Examinemos este proceso en detalle:

Instrucción original:

root@kitploit:~
4005d2:   55                      push   rbp

En memoria (hex):

root@kitploit:~
0x55

Después de la inyección:

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

En memoria (hex):

root@kitploit:~
0xEB, 0x01, 0xB0, 0x55

A continuación se muestra un desglose de la transformación:

  • La instrucción original PUSH RBP se ensambla como 0x55. El ofuscador inserta los bytes 0xEB, 0x01, 0xB0 delante de ella.

  • El resultado es una secuencia de instrucciones que, al desensamblarla, puede parecer completamente distinta del código original. Esto dificulta que la RE (ingeniería inversa) comprenda el verdadero propósito del código.

2. Aleatorización

Introduce elementos de aleatoriedad en el código. Implica técnicas como la permutación de instrucciones, el intercambio de operandos y la sustitución de opcodes.

3. Detección de depuradores

Incorpora mecanismos para detectar la presencia de depuradores durante la ejecución del código. Incluye comprobaciones en tiempo de ejecución para identificar artefactos relacionados con depuradores y activar medidas anti-análisis.

4. Técnicas anti-análisis

Integra varias medidas anti-análisis, como ramas condicionales y comprobaciones de tiempo. Por ejemplo, puede insertar saltos condicionales y bucles de retardo para ralentizar el proceso de análisis.

5. Descifrado dinámico

Emplea técnicas de descifrado dinámico. Cifra ciertas secciones de código y las descifra en tiempo de ejecución mediante una clave secreta. Este proceso de descifrado ocurre dinámicamente durante la ejecución del código.

6. Descompresión dinámica

Comprime secciones específicas de código y las descomprime sobre la marcha cuando se ejecutan.

7. Ofuscación de constantes

Utiliza técnicas como la aplicación de XOR, la manipulación de bits y las operaciones aritméticas para ofuscar constantes. Esto garantiza que los valores constantes no sean fácilmente reconocibles.

8. Renombrado de variables

La herramienta renombra variables y registros, haciendo que el código sea menos legible. El proceso consiste en reemplazar los nombres de las variables con cadenas generadas aleatoriamente o identificadores numéricos.

9. Inserción de código basura

Para oscurecer aún más el código, el ofuscador inserta particiones de código basura en ubicaciones estratégicas. Este código basura consiste en instrucciones irrelevantes que no afectan a la lógica del programa, pero sirven para abarrotar el código base.

Ejemplo de inserción de código basura:

root@kitploit:~
; Original Code
mov eax, 1

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

En memoria (hex):

root@kitploit:~
0x89, 0xD8, 0x31, 0xC9, 0x01, 0xD2

El código basura insertado está diseñado para desviar la atención y hacer que el código parezca más enrevesado.

10. Detección de UPX falso

También incorpora una función para detectar cabeceras UPX falsas. Escanea el código en busca de señales de manipulación de las cabeceras UPX, garantizando la integridad del ejecutable.

Antes de la transformación (código original):

root@kitploit:~
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

Representación hexadecimal (código original):

root@kitploit:~
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

Después de la transformación (código ofuscado):

root@kitploit:~
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

Representación hexadecimal (código ofuscado):

root@kitploit:~
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

En el código ofuscado, hemos hecho que la lógica original del programa sea menos evidente añadiendo instrucciones ADD redundantes y utilizando valores hexadecimales como operandos inmediatos.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas!.

Soporte

Para problemas, solicitudes de funciones o consultas generales, por favor crea un issue.

Descargo de responsabilidad

Esta herramienta está destinada a fines educativos y éticos.

Descargar herramienta