binary-analysis-patterns
Analizar Patrones de Código Binario
Comprende ejecutables compilados sin código fuente. Esta habilidad proporciona patrones de lenguaje ensamblador, reconocimiento de flujo de control y orientación para descompilación en tareas de ingeniería inversa.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "binary-analysis-patterns". ¿Qué hace este patrón de ensamblador? ```asm lea eax, [rax + rax*4] add eax, eax ```
Résultat attendu:
Este patrón multiplica un valor por 10. La instrucción LEA calcula rax * 5 (rax + rax*4), luego el ADD lo duplica para obtener rax * 10. Los compiladores utilizan esta optimización de desplazamiento y suma en lugar de la instrucción MUL, más lenta, para multiplicación por constantes.
Utilisation de "binary-analysis-patterns". ¿Cómo identifico una sentencia switch en desensamblado?
Résultat attendu:
Busca dos patrones: (1) Tablas de salto - un registro se utiliza como índice en un array de direcciones (jmp [table + reg*8]), o (2) Comparaciones secuenciales - múltiples cadenas cmp/je comparando la misma variable contra diferentes constantes. El patrón de tabla de salto es más común para sentencias switch más grandes con muchos casos.
Utilisation de "binary-analysis-patterns". ¿Cuál es la diferencia entre estos dos patrones? Patrón A: mov eax, [rdi] Patrón B: movzx eax, byte [rdi]
Résultat attendu:
El Patrón A lee un entero de 4 bytes (dword) de memoria, sugiriendo un tipo int o uint32. El Patrón B lee un solo byte y lo extiende con ceros a 32 bits, sugiriendo un tipo unsigned char o uint8. La variante movzx se utiliza comúnmente cuando se trabaja con flags booleanos, caracteres ASCII o valores unsigned pequeños que necesitan ser promovidos a registros más grandes para operaciones.
Audit de sécurité
SûrAll 47 static analysis findings are false positives. The detected patterns are Markdown code fence delimiters and assembly code examples in documentation. No executable code, external commands, or security risks present. This is purely educational content about binary analysis patterns.
Score de qualité
Ce que vous pouvez construire
Ingeniería Inversa de Malware
Los investigadores de seguridad utilizan patrones de ensamblador para comprender el comportamiento del malware, identificar funciones maliciosas y reconstruir la lógica del programa sin acceso al código fuente.
Mantenimiento de Código Legacy
Los desarrolladores que mantienen sistemas legacy sin documentación utilizan patrones de desensamblado para comprender binarios compilados, corregir errores y añadir funciones a aplicaciones antiguas.
Resolución de Desafíos CTF
Los participantes de Capture The Flag analizan ejecutables binarios para encontrar banderas ocultas, comprender el flujo del programa y explotar vulnerabilidades utilizando reconocimiento de patrones de ensamblador.
Essayez ces prompts
Explica qué representa este patrón de código de ensamblador en código de alto nivel: ```asm xor ecx, ecx loop_start: cmp ecx, [n] jge loop_end ; ... body ... inc ecx jmp loop_start loop_end: ``` ¿Qué constructo de programación implementa este patrón?
He desensamblado esta función. Ayúdame a entender: 1. ¿Cuál es la signatura de la función (parámetros y tipo de retorno)? 2. ¿Qué convención de llamada se utiliza (System V o Microsoft x64)? 3. ¿Cuál es la lógica general de esta función? [pega aquí el código de ensamblador]
Este código de ensamblador accede a una estructura de datos compleja. Ayúdame a identificar: 1. ¿Qué tipo de estructura de datos es esta (struct, array, lista enlazada)? 2. ¿Cuáles son los desplazamientos de campo y sus tipos probables? 3. ¿Qué representa esta estructura en el código original? ```asm mov rdi, [struct_ptr] mov eax, [rdi] movzx eax, byte [rdi+4] mov rax, [rdi+8] ```
Necesito un script de Python para Ghidra que: 1. Encuentre todas las funciones que llaman a 'strcpy' 2. Identifique vulnerabilidades potenciales de buffer 3. Cree un tipo de estructura para una disposición de datos que he descubierto Proporciona el script con explicaciones de lo que hace cada parte.
Bonnes pratiques
- Comienza con análisis de strings para identificar funciones interesantes - los strings referenciados en código a menudo revelan el propósito de la lógica circundante
- Sigue el flujo de datos hacia atrás desde llamadas API interesantes o funciones de librería para comprender cómo se preparan y validan los datos
- Utiliza extensivamente las referencias cruzadas (xrefs) - comprender quién llama a una función y qué accede revela contexto y propósito
- Documenta tus hallazgos con comentarios y símbolos renombrados inmediatamente - el análisis binario es iterativo y olvidarás el contexto
Éviter
- Asumir que la salida del descompilador es correcta - la descompilación puede producir código engañoso debido a optimizaciones, tipos no reconocidos o llamadas indirectas
- Analizar builds optimizadas sin comprender las optimizaciones del compilador - la optimización de llamadas de cola (jmp en lugar de call+ret) y la inlineación pueden oscurecer los límites de función
- Centrarse solo en las funciones 'interesantes' - los autores de malware a menudo ocultan lógica en funciones utilitarias de aspecto aburrido o utilizan técnicas de ofuscación
- Ignorar las convenciones de llamada específicas de arquitectura - identificar incorrectamente el paso de parámetros conduce a signaturas de función completamente erróneas
Foire aux questions
¿Puede esta habilidad analizar archivos binarios reales por mí?
¿Qué arquitecturas están cubiertas en los patrones?
¿Cómo elijo entre las convenciones de llamada System V y Microsoft x64?
¿Por qué el código descompilado parece extraño u obviamente incorrecto?
¿Qué herramientas funcionan mejor con estos patrones?
¿Puedo utilizar estos patrones para análisis de malware?
Détails du développeur
Auteur
sickn33Licence
MIT
Dépôt
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/binary-analysis-patternsRéf
main
Structure de fichiers
📄 SKILL.md