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
Alcatraz — Ofuscador de binarios x64 para archivos PE con aplanamiento de flujo de control, anti-desensamblado, ofuscación de importaciones y mutación de instrucciones para dificultar la ingeniería inversa. | Kitploit
Herramientas/GitHubGitHub/weak1337/alcatraz
Ingeniería InversaAnálisis de Binarios
GitHubweak1337/alcatraz

Alcatraz

Ofuscador de binarios x64 para archivos PE con aplanamiento de flujo de control, anti-desensamblado, ofuscación de importaciones y mutación de instrucciones para dificultar la ingeniería inversa.

Ver Repositorio
2.0k2683hace 3 añosRevisado por Kitploit

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

Alcatraz

Alcatraz es un ofuscador de binarios x64 que puede ofuscar varios archivos PE diferentes, incluyendo:

  • .exe
  • .dll
  • .sys

Descripción general

  • Alcatraz
  • Requisitos
  • Uso
  • Características
    • Ofuscación de movimientos inmediatos
    • Aplanamiento del flujo de control
    • Mutación ADD
    • Ofuscación del punto de entrada
    • Ofuscación LEA
    • Anti-desensamblado
    • Ofuscación de importaciones
    • Resultado final

Requisitos

Instalación: https://vcpkg.io/en/getting-started.html

asmjit: vcpkg.exe install asmjit:x64-windows
Zydis: vcpkg.exe install zydis:x64-windows

Uso

imgbefore 1.) Cargue un binario haciendo clic en file en la esquina superior izquierda.
2.) Agregue funciones expandiendo el árbol Functions. (Puede buscar escribiendo el nombre en la barra de búsqueda en la parte superior)
3.) Presione compile (nota: ofuscar muchas funciones puede tomar algunos segundos)

Características

En la demostración siguiente, todas las características (excepto la que se muestra) están deshabilitadas.

Ofuscación de movimientos inmediatos

Si un valor inmediato se mueve a un registro, lo ofuscamos aplicando múltiples operaciones bitwise. Echemos un vistazo a la popular función _security_init_cookie.
Antes: imgbefore Después: imgafter

Aplanamiento del flujo de control

Al eliminar la estructura ordenada del programa generada por el compilador y colocar nuestro código en nuevos bloques generados, aumentamos la complejidad del programa. Tomemos esta simple función main como ejemplo (la optimización para este programa está deshabilitada):
imgmain
Si lo metemos en IDA 7.6, el descompilador lo optimizará:
imgmainnoobf
Ahora, aplanemos su flujo de control y dejemos que IDA lo analice de nuevo:
imgmainobf
Como puede ver, la complejidad aumentó mucho aunque solo muestro una pequeña parte del código generado. Si quiere saber cómo se ve el cfg: imgmaincfg

Mutación ADD

Si se suma un registro (p. ej., RAX) a otro registro (p. ej., RCX), mutaremos la instrucción. Esto significa que la sintaxis cambia pero no la semántica. La instrucción ADD RCX, RAX se puede mutar a:

root@kitploit:~
push rax
not rax
sub rcx, rax
pop rax
sub rcx, 1

Si desea aprender más sobre la mutación, eche un vistazo a perses.

Ofuscación del punto de entrada

Si el archivo PE es un .exe (se agregará soporte para .dll), crearemos un punto de entrada personalizado que descifra el real al inicio (!!! no funciona cuando se mapea manualmente).
imgmaincfg

Ofuscación LEA

La ofuscación LEA es bastante simple pero efectiva. Movemos una ubicación diferente al registro y la desciframos después. De esta manera, los ingenieros inversos no pueden hacer referencias cruzadas a ciertos datos / funciones. Digamos que encontramos la siguiente instrucción: lea rcx, [0xDEAD] La mutaremos a:

root@kitploit:~
pushf
lea rcx, [1CE54]
sub rcx, EFA7
popf

rcx -> 0xDEAD

Anti-desensamblado

Si encontramos una instrucción que comienza con el byte 0xFF, pondremos un 0xEB delante. Hacemos esto porque 0xEB 0xFF se codifica como jmp rip + 1 que, al final, salta a nuestro primer 0xFF real. Esto confundirá a las herramientas que decodifican instrucciones de manera lineal.
Antes:
imgffbefore
Después:
imgffafter

De vez en cuando podemos insertar:

root@kitploit:~
jz 3
jne 1
0xE8

IDA intentará decodificar el 0xE8 (call) pero no tendrá éxito:
imgjz

Ofuscación de importaciones

No hay una ofuscación IAT "adecuada" en este momento. El truco anti-desensamblado 0xFF se encarga de ello por ahora. La implementación adecuada está planeada aquí:
iat.cpp

Resultado final

Este es un fragmento de nuestra función main con todo excepto el anti-desensamblado habilitado (para que IDA pueda crear una función):
imgfinal

Descargar herramienta