Communitygithub.com

Prompt-Motion/ReaReverse

Ingeniería inversa de binarios nativos, administrados, Electron/JavaScript, empaquetados, firmware y navegadores con REA. Usa evidencia de artefactos distribuidos o tiempo de ejecución para explicar características, comparar versiones, descompilar código o guiar una reconstrucción. Omite REA para el análisis arquitectónico de repositorios de código fuente ordinarios.

¿Qué es ReaReverse?

REA (Reverse Engineering Assistant) es una habilidad especializada que permite a agentes de IA como Claude Code, Cursor, Codex y otros analizar y comprender artefactos de software empaquetados o binarios sin acceso al código fuente original. Su propósito principal es verificar afirmaciones que dependen de binarios distribuidos, paquetes, evidencia de tiempo de ejecución de aplicaciones o comparaciones de comportamiento no establecido por el código fuente disponible. La habilidad proporciona instrucciones detalladas sobre cómo usar las herramientas MCP de REA para tareas como la descompilación de aplicaciones .NET administradas, análisis de paquetes Android, extracción de firmware, inspección de trazas de red, análisis de capturas de paquetes y decodificación de señales lógicas. También incluye guías de conexión y recuperación para cuando las herramientas MCP no están registradas o disponibles, ofreciendo alternativas CLI como `npx -y rea-agents@latest analyze-javascript-application` para artefactos JavaScript sin necesidad de registro MCP. REA está diseñado para no interferir con el análisis ordinario de repositorios de código fuente, y los agentes deben evaluar primero si la tarea realmente requiere REA o puede resolverse con herramientas estándar de repositorio.

Compatible con✓Claude Code✓Codex CLI✓Cursor✓Antigravity✓Gemini CLI✓OpenCode✓Windsurf
npx skills add https://github.com/Prompt-Motion/ReaReverse/tree/HEAD/.agents/skills/reverse-engineer-anything

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

REA

Usa REA cuando una afirmación dependa de un binario o paquete distribuido, descompilación, evidencias de tiempo de ejecución de aplicaciones pasivas, o comparación con comportamiento no establecido por el código fuente disponible. Para el análisis ordinario de un repositorio de código fuente completo, usa las herramientas normales del repositorio y no ejecutes comandos de preparación o proveedor de REA.

Conecta solo cuando sea necesario

Instalar esta habilidad proporciona instrucciones; no registra el servidor MCP de REA, instala motores de análisis, ni añade herramientas a un agente ya en ejecución.

Si las herramientas de REA están disponibles y no se sabe que su registro esté obsoleto, procede directamente al objetivo. No ejecutes diagnósticos ni configuración antes de cada investigación. Usa la lista de herramientas reales y esquemas de entrada del servidor conectado; una habilidad instalada desde el repositorio principal puede describir capacidades ausentes en una versión npm más antigua. Mantén evidencia completa en línea cuando ese servidor no anuncie referencias retenidas.

Si las herramientas están ausentes, una llamada está bloqueada por el cliente, o un proveedor requerido no está disponible, lee conexión y recuperación. Diagnostica el bloqueador observado, continúa con trabajo útil compatible y reanuda la tarea original después de la reparación. La aprobación del cliente, la variable PATH del shell, el registro y la disponibilidad del motor tienen diferentes soluciones; evita repetir la configuración para todos.

  1. Diagnostica sin cambiar la configuración de REA o del cliente. npx puede descargar el paquete y escribir en el caché de npm. Para Codex, ejecuta npx -y rea-agents@latest doctor --client codex --json. Sustituye con el cliente compatible actual: claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, devin, opencode, antigravity, copilot_cli, commandcode, vscode, grok_build, omp, o grok_bot. grok_bot no tiene un registro de archivo local: doctor informa el paso de chat de Grok Bot, y la configuración no escribe mcp.json. Si el cliente es desconocido, usa doctor --json e inspecciona sus resultados de registro antes de elegir un ámbito de configuración.
  2. Distingue la razón. Un registro faltante, malformado u obsoleto necesita una reparación de configuración con ámbito. Un registro alineado sin herramientas en la sesión activa necesita un reinicio/reconexión; doctor no puede probar que el agente actual se ha conectado. Un proveedor faltante afecta solo las tareas que requieren ese proveedor: la inspección estática de JavaScript no necesita ni Hopper ni Ghidra, y la inspección de Android tiene requisitos separados de JADX/Java que debes proporcionar tú mismo.
  3. Para una reparación de configuración, prepara el plan de solo lectura: npx -y rea-agents@latest setup --client codex --dry-run --json. Usa el ID del cliente actual, muestra sus rutas exactas propuestas, copias de seguridad y cambios, y obtén aprobación antes de que la configuración escriba en la configuración o instale Hopper. La configuración normalmente también instala la habilidad empaquetada correspondiente; incluye ese reemplazo en el plan revisado. Después de la aprobación, aplica el mismo ámbito con npx -y rea-agents@latest setup --client codex --yes. Añade --install-hopper solo si esa instalación separada era necesaria y fue explícitamente aprobada.
  4. Reinicia/reconecta el agente afectado. Verifica que las herramientas de REA realmente aparecen en la sesión, luego reanuda la investigación original. Si aún están ausentes, inspecciona el error de lanzamiento MCP del cliente en lugar de repetir la configuración.

La configuración de REA nunca instala ni actualiza Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk, o Unblob. Usa los requisitos previos existentes; no instales software no relacionado para reparar el registro MCP. Para un cliente no compatible, usa el registro manual stdio con un paquete rea-agents de versión fija o continúa a través de la CLI.

Una alternativa CLI concreta para un árbol JavaScript o ASAR proporcionado por el operador es:

npx -y rea-agents@latest analyze-javascript-application /ruta/absoluta/hacia/app --json

No se requiere registro MCP ni motor nativo. Lee la Evidencia, el gráfico, las limitaciones y las incógnitas devueltas con el mismo cuidado que un resultado MCP; la CLI devuelve el registro de Evidencia directamente. Esta alternativa no establece que MCP esté configurado. Las tareas nativas de CLI aún requieren su motor seleccionado. Prefiere una CLI rea existente. Cuando no haya ninguna instalada y la adquisición del paquete REA esté dentro del ámbito autorizado, usa npx -y rea-agents@latest en su lugar. La reparación de configuración comienza con un plan de configuración de solo lectura; muestra rutas, copias de seguridad y reemplazo de habilidades antes de aplicar cambios autorizados. Preserva los límites de aprobación y ejecución de destino existentes. La configuración de REA nunca instala ni actualiza software no relacionado, incluyendo Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk o Unblob.

Enruta el objetivo primero

Elige la primera herramienta del objetivo que el usuario proporcionó. Usa open_binary para flujos de trabajo nativos o de archivos de objetivo activo; las herramientas sin objetivo toman su propia ruta explícita o punto final y no lo necesitan.

  • Árbol ASAR o JavaScript/Electron extraído: analyze_javascript_application.
  • Inventario de miembros de archivo/paquete (ZIP/APK/IPA/MSIX/AppX o DMG): open_binary con la ruta local proporcionada; usa inspect_artifact cuando su gráfico y hallazgos ayuden a responder la pregunta.
  • Código Android APK, clases, métodos, o referencias entrantes: inspect_android_package, luego herramientas Android enfocadas cuando se anuncien. El inventario de miembros del archivo aún usa la ruta de archivo anterior.
  • Ensamblado PE/CLI administrado: inspect_managed_artifact.
  • Imagen de firmware: inspect_firmware_regions cuando se anuncie. Usa extract_firmware cuando se solicite la extracción, con un nuevo directorio de salida absoluto seleccionado por la persona que llama. Estas herramientas usan Binwalk/Unblox proporcionados por la persona que llama en Linux; consulta la guía de firmware.
  • .NET NativeAOT PE/ELF: análisis nativo de Ghidra. El código nativo puede producir pseudocódigo; consulta el flujo de trabajo NativeAOT en references/native-and-artifacts.md para la recuperación opcional de metadatos y su límite de host/diseño compatible.
  • Página de navegador propiedad del usuario ya abierta: list_browser_targets.
  • Acción de navegador que el agente debe realizar (clic, escribir, navegar): capture_browser_scenario con acciones declaradas. Consulta observación de tiempo de ejecución para conectar/iniciar y las herramientas de navegador de seguimiento enfocadas.
  • Tráfico de Fiddler Everywhere o una captura nativa .saz: lee el flujo de trabajo de Fiddler. Inspecciona SAZ guardado con inspect_web_network_capture y format: "saz"; conecta el servidor MCP separado de Everywhere para tráfico en vivo.
  • Capturas HAR/SAZ/mitmproxy nativas/aioquic qlog retenidas: inspect_web_network_capture. Selecciona ordinales de registro originales cuando sea útil; inspecciona los campos del productor y los acompañamientos de byte/número sin obtener las URL registradas ni reclamar atribución en vivo. Consulta capturas históricas para el perfil ascendente exacto y las exclusiones de credenciales. El soporte de Qlog comienza con aioquic 1.5.0 JSON 0.3; la cobertura de flujo y las declaraciones de pérdida de punto final no recuperan cuerpos ni establecen pérdida de red. Prefiere resumen detallado, luego páginas de traza/flujo de tipo qlog; selecciona una traza, ID de flujo y dirección para páginas de contribución/rango. Los hechos retienen el alcance de todos-los-eventos-registrados-antes-de-la-selección. Otros diseños de qlog y la correlación PCAP no son compatibles.
  • Tiempo de ejecución de Electron propiedad del usuario ya abierto: list_electron_targets. Antes de un intento de Inspector de electron-main, verifica los fusibles empaquetados con inspect_electron_fuses; EnableNodeCliInspectArguments deshabilitado significa que la aplicación ignora --inspect.
  • Descubrimiento de campos de paquetes: inspect_packet_fields busca protocolos instalados y nombres/tipos de campo antes de elegir campos para inspect_packet_capture. Consulta/pagina los registros relevantes; los registros no establecen tráfico observado.
  • Capturas de paquetes grabadas: inspect_packet_capture con campos TShark seleccionados, filtros de visualización y reglas de decodificación como. Requiere Linux, util-linux prlimit y REA_TSHARK_COMMAND; consulta guía de captura. Los límites de paquetes cuentan los paquetes de entrada antes del filtrado. La salida por defecto es de 50 tramas coincidentes; usa match_offset / match_limit para páginas posteriores, o un límite nulo explícito para la salida de coincidencia completa. Preserva el resumen de origen entre páginas. Esto no realiza captura en vivo. Para resúmenes de dirección/DNS/SNI/protocolo usa inspect_pcap_capture con MCP resumen detallado, luego páginas de pcap de tipo retenido. Requiere Wireshark 4.x tshark y capinfos, con Linux prlimit o Windows Job Objects; consulta resúmenes de paquetes. Selecciona una pregunta DNS exacta para páginas de dirección; el agotamiento de la página no prueba la integridad de la red. Esto lee grabaciones y no adquiere tráfico.
  • Descubrimiento de decodificador: inspect_signal_decoders busca IDs de decodificador instalados o ayuda de decodificador seleccionado, incluyendo canales y opciones. Consulta y pagina los detalles relevantes antes de elegir configuraciones; esto no escanea hardware.
  • Trazas de señal/lógica grabadas: decode_signal_recording con decodificador explícito, configuración de canal y protocolo. En Linux con util-linux prlimit, proporciona sigrok-cli 0.7.2 a través de REA_SIGROK_COMMAND; consulta guía de grabación. La salida por defecto es de 50 líneas literales; selecciona clases de anotación y pagina con line_offset / line_limit, o nulo explícito para toda la salida restante. Los recuentos de ventana son líneas de visualización, no anotaciones o muestras. Preserva los resúmenes de origen entre páginas. Esto lee archivos existentes; no adquiere señales de hardware.
  • Artefacto WebAssembly local explícito: inspect_wasm_artifact. Proporciona WABT 1.0.42 a través de REA_WABT_BIN_DIRECTORY; retén la identidad exacta de byte/herramienta y WAT decodificado. Selecciona el código de unión JavaScript y las rutas candidatas explícitamente y preserva la ambigüedad de URL/ruta. Sin obtención implícita ni ejecución de objetivo; WAT no es código fuente original. Consulta la guía WASM.
  • Portador de bytecode EVM local explícito: inspect_evm_interface con codificación raw o hex seleccionada por la persona que llama. Preserva los resúmenes de portador/decodificado y trata los selectores, cadenas de argumento y mutabilidad como candidatos inferidos; esto no realiza búsqueda en cadena ni ejecución de objetivo. Para la interfaz inferida completa sin hex o stdout duplicado, descubre soporte y selecciona detail: "summary"; la Evidencia completa permanece retenida bajo su identidad original. Usa el parent_evidence_id devuelto para una función exacta o páginas de bytecode_hex/stdout/stderr. La cobertura del candidato no establece la integridad de la interfaz. Consulta la guía de bytecode EVM.
  • Metadatos de compilador, módulo o configuración de compilación Go incrustados: inspect_go_binary con el archivo local explícito. Esta inspección incorporada sin objetivo no requiere instalación de Go ni desensamblador. Preserva los bytes de módulo sin procesar y los rangos de origen; los metadatos ausentes no prueban que un binario no sea Go, y los registros de texto no analizados permanecen explícitos. Consulta la guía de binarios Go.
  • Metadatos de dependencia Rust cargo-auditable incrustados: inspect_rust_binary con el archivo ELF, PE o Mach-O fino local explícito. Esta inspección incorporada sin objetivo no requiere instalación de Rust ni desensamblador. Preserva el orden de los paquetes, los índices de dependencia y el rango de archivos de la sección. Una sección .dep-v0 faltante son metadatos nulos, no prueba de que el binario no tenga dependencias. Un hash de commit de rustc es una inferencia de una ruta de solo lectura /rustc/<40-hex>/. Consulta la guía de binarios Rust.
  • Instantánea de base de datos SQLite local explícita: inspect_sqlite_database. Inspecciona con Node.js 24.x >=24.15 o 26+ proporcionando límites nativos de SQLite. Lee el esquema primero (inventario compacto por defecto), o selecciona una tabla ordinaria exacta y columns cuando se necesiten filas. Los valores predeterminados son el esquema de la tabla seleccionada y 20 filas; solicita schema_scope: "database" para el esquema almacenado completo. Preserva tanto la base de datos como la identidad WAL existente; las muestras de filas informan truncamiento y tienen un orden no especificado. Usa una instantánea inactiva en lugar de asumir que un par base de datos/WAL en vivo se copió atómicamente. Consulta la guía SQLite.
  • Archivo ELF Linux explícito para diseño fuera de línea, símbolos, reubicaciones o evidencia de mitigación estática: inspect_binary_layout. Esta operación sin objetivo usa pwntools proporcionado por la persona que llama sin abrir una base de datos de desensamblador. Preserva sus ubicaciones sin procesar y límites de inferencia/cobertura; consulta la guía de binarios fuera de línea.
  • Core ELF x86-64 Linux proporcionado: inspect_recorded_crash. Lee cada hilo grabado, nota sin procesar y registro vinculado al origen sin abrir un objetivo en vivo. Los PID históricos no seleccionan procesos en vivo. Solicita include_debugger_context solo cuando los candidatos de mapeo solo de núcleo ayuden; consulta la guía de fallos grabados.
  • Árboles de tipo/nombre/idioma de recursos PE y referencias de grupo de iconos estáticos: inspect_pe_resources con una ruta explícita. Esta operación portátil requiere ningún objetivo o motor activo; las cargas útiles opacas retienen rangos de archivo y SHA-256.
  • Ejecutable, biblioteca o base de datos de análisis nativo: open_binary, luego usa las herramientas de análisis enfocadas directamente; llama a binary_overview cuando los metadatos o el contexto de inventario sean útiles y estén disponibles desde el proveedor seleccionado.

Para una configuración MCP de IDA existente, usa open_binary con el binario de entrada original y provider_id: "ida"; no pases una base de datos .idb o .i64. El perfil adjunto heredado vincula la entrada GUI ya abierta por SHA-256 y deja su base de datos abierta. El manejo moderno...

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados