Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/mg1937/asc
Seguridad AndroidAnálisis EstáticoAnálisis de CódigoAnálisis Dinámico de Código (DAST)Pentesting de Apps MóvilesIngeniería InversaSeguridad MóvilUtilidades y FrameworksAnálisis de Binarios
GitHubmg1937/asc

ASC

Front-end rápido de descompilador de APK de Android que consulta directamente artefactos DEX compilados, extrayendo clases y referencias cruzadas en milisegundos sin preprocesamiento.

2.1k28717hace 3 díasRevisado 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
Ver Repositorio

Droid ASC: Optimización del compilador R8 como primitiva de descompilación

https://blackhat.com/europe/arsenal/schedule/index.html#droid-asc-r8-compiler-optimization-as-a-decompiler-primitive-54834

Al descompilar APKs de Android masivos, el procedimiento estándar es esperar. Esperamos a que las herramientas consuman gigabytes de RAM, inflen por completo los artefactos y pasen decenas de minutos construyendo pesados índices globales y referencias cruzadas... Todo esto solo para garantizar búsquedas rápidas de código más adelante, pero aquí está la contradicción. Un artefacto compilado ya está altamente estructurado, los descompiladores modernos nunca aprovechan esto, desperdician enormes cantidades de tiempo y memoria reconstruyendo una base de datos inflada de relaciones de código sobre datos ya estructurados. Este enfoque de ingeniería desafía el sentido común. Cuando puedo extraer directamente cualquier relación de código del APK en milisegundos, ¿sigue teniendo algún valor este preprocesamiento?

En lugar de forzar a los descompiladores a un preprocesamiento pesado, elegimos consultar el artefacto compilado directamente como una base de datos. Construimos un motor sin estado y sin sobrecarga que extrae y busca código bajo demanda en milisegundos. En esta sesión, exploraremos la ingeniería subyacente necesaria para evitar los cuellos de botella tradicionales. Demostraremos cómo abandonar el inflado completo sondeando directamente dentro del flujo de bits Deflate, construyendo densas tablas de búsqueda Huffman para extraer metadatos esenciales sin tocar bloques de datos irrelevantes. Además, explicaremos detalles de optimización del compilador R8, especialmente cómo la reubicación determinista de constantes y la deduplicación de instrucciones dejan tras de sí diseños físicos altamente concentrados; aprovechamos este comportamiento del compilador para ejecutar búsquedas de código cruzadas entre DEX a velocidad relámpago. Para mapear estos desplazamientos de bytecode sin procesar de vuelta a métodos, diseñamos una primitiva de localización de instrucciones O(1), logrando resolución de métodos en tiempo constante sin construir tablas de mapeo pesadas. Finalmente, al alcanzar un objetivo, Droid ASC extrae solo los bytecodes específicos y sus dependencias, reconstruyendo dinámicamente un DEX mínimo y autoconsistente completamente en memoria para una descompilación instantánea.

Demostraremos esta arquitectura en vivo contra un APK comercial de 352MB. Droid ASC ejecuta búsquedas globales de referencias cruzadas en 1.79 segundos y descompila clases objetivo en 177 milisegundos usando solo 141MB de RAM. Al tratar el artefacto como una base de datos de solo lectura y operar con cero preprocesamiento, devolvemos el descompilador a su esencia fundamental. Ya no es una herramienta de indexación inflada, sino un motor de descompilación bajo demanda, ultrarrápido, que redefine fundamentalmente cómo analizamos código compilado.

Benchmark

Benchmark

https://github.com/user-attachments/assets/4c4a6813-8561-490c-a573-ef113da861b6

Instalación

# from PyPI
pip install droidasc

# or from source
pip install .

Después de la instalación, el comando CLI droidasc está disponible globalmente:

usage: droidasc [-h] {getclass,listclass,getmanifest,findrefs} ...

ASC tooling entry.

positional arguments:
  {getclass,listclass,getmanifest,findrefs}
    getclass            Locate the target class in APK, extract one DEX in memory, then decompile.
    listclass           List classes defined across all DEX entries in APK.
    getmanifest         Decode AndroidManifest.xml from APK and print it as XML.
    findrefs            Find code references for string/type/method/field across all DEX entries in APK.

options:
  -h, --help            show this help message and exit

examples:
  droidasc app.apk --gui
  droidasc getclass app.apk Lcom/poc/Main; -o Main.java
  droidasc getclass app.apk com.poc.Main --threads 16
  droidasc listclass app.apk -o classes.txt
  droidasc listclass app.apk --prefix com.poc
  droidasc getmanifest app.apk -o AndroidManifest.xml
  droidasc findrefs app.apk string token -o string_refs.txt
  droidasc findrefs app.apk type com.poc.Main
  droidasc findrefs app.apk method onCreate --class com.poc.Main
  droidasc findrefs app.apk method notify --class MainActivity --fuzzy-class -o method_refs.txt
  droidasc findrefs app.apk field apiKey -o field_refs.txt

listclass imprime descriptores de clase Dalvik en el orden de definición del APK/DEX, uno por línea. Con -o, la salida se escribe en el archivo seleccionado en lugar de stdout. --prefix com.poc filtra por Lcom/poc; un prefijo ya normalizado como Lcom/poc se mantiene sin cambios.

También puedes usar python main.py como antes — delega al mismo punto de entrada.

Patrocinadores

PatrocinadorCantidad
HTTChina5000¥
c01ns11.9¥
gguowang AND cococount2¥
Ylarod50.11¥

¡Gracias a todos los patrocinadores por su apoyo!

ASC está construido con la esperanza de que pueda ayudar genuinamente a todos a mejorar su flujo de trabajo de ingeniería inversa — desde acelerar las partes tediosas hasta hacer que lo imposible parezca rutinario.

Agradecimientos

Gracias al proyecto Androguard por proporcionar la base de ingeniería inversa de Android y análisis DEX utilizada por Droid ASC.

Descargar herramienta