Compétences binary-analysis-patterns
🔍

binary-analysis-patterns

Sûr

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.

Prend en charge: Claude Codex Code(CC)
🥉 75 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

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ûr
v1 • 2/25/2026

All 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.

1
Fichiers analysés
453
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
50
Communauté
100
Sécurité
100
Conformité aux spécifications

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

Identificar Patrón de Ensamblador
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?
Analizar Estructura de Funció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]
Recuperación de Estructura de Datos
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]
```
Scripting de Análisis en Ghidra
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í?
No, esta habilidad proporciona patrones de referencia y orientación para comprender código de ensamblador y técnicas de análisis binario. Necesitas utilizar herramientas como Ghidra, IDA Pro u objdump para realizar el desensamblado y análisis reales.
¿Qué arquitecturas están cubiertas en los patrones?
La habilidad cubre principalmente las convenciones de llamada y patrones de instrucciones x86-64 (tanto System V AMD64 para Linux/macOS como Microsoft x64 para Windows), ARM64 (AArch64) y ARM32.
¿Cómo elijo entre las convenciones de llamada System V y Microsoft x64?
Comprueba la plataforma objetivo del binario. Los binarios de Linux y macOS utilizan System V (argumentos en RDI, RSI, RDX, RCX, R8, R9). Los binarios de Windows utilizan Microsoft x64 (argumentos en RCX, RDX, R8, R9 con espacio shadow de 32 bytes).
¿Por qué el código descompilado parece extraño u obviamente incorrecto?
Los descompiladores hacen conjeturas basadas en tipos y patrones. Si el descompilador carece de información de tipos o encuentra optimizaciones del compilador, la salida puede ser engañosa. Utiliza la vista de ensamblador para verificar y corregir las suposiciones del descompilador.
¿Qué herramientas funcionan mejor con estos patrones?
Ghidra (gratuito, descompilador potente), IDA Pro (estándar de la industria, costoso), Binary Ninja (moderno, buena automatización) y radare2 (centrado en línea de comandos). Esta habilidad incluye consejos específicos para Ghidra e IDA Pro.
¿Puedo utilizar estos patrones para análisis de malware?
Sí, estos patrones se utilizan comúnmente en análisis de malware e investigación de seguridad. Los patrones para identificar llamadas a funciones, estructuras de datos y flujo de control se aplican a cualquier tarea de análisis binario, incluido el análisis de código malicioso en entornos controlados.

Détails du développeur

Structure de fichiers

📄 SKILL.md