You are on page 1of 2

INGENIERÍA INVERSA Y ANÁLISIS DE ANÁLISIS ESTÁTICO AVANZADO

MALWARE
ALUMNO: FECHA:

Niveles de Codificación en el análisis de Malware Arquitectura x86: Memoria Principal:


CPU: Ejecuta el código
Control Unit: Obtiene de la
RAM las instrucciones a Data: Cargados al inicio
ejecutar. con el ejecutable al inicio.
ALU: Ejecuta una instrucción Code: Programa
recuperada de la RAM y Heap: Se asigna para crear
coloca los resultados en datos o se libera para
registros o memoria borrarlos, de forma
RAM: Almacén de datos y dinámica.
código. Stock: Variables locales,
funciones, aux. control
flujo.

Registros x86: Instrucciones:

Operador lea: lea eax, [ebx+8] = pone ebx+8 en eax Push: Introduce operando en ESP. ESP - 4.
lea ebx, [eax*4+4] = ebx=(eax+1)*4 POP: Introduce el contenido de ESP en operando. ESP + 4.
Operador Nop: No operation - > alias de xchg eax, eax Pusha/Popa: Guarda/Recupera todos los registros(16 bits)
Código = 0x90 Pushad/Popad: Guarda/Recupera todos los registros(32bits)
Muchas veces NOP sled = intento de buffer overflow attack
Instrucciones:

Condicionales:

FLAGS
ZF Cero Flag - > Resultado Ope=0
Carry Flag -> Resultado Ope=Muy grande o
CF
Muy pequeño para operador destino
Sing Flag -> Resultado Ope= Positivo ó
SF
Negativo
Trap Flag -> Depuración. Ejecución de 1
TF
instrucción a la vez.

Comandos IDA Pro: Código de colores:


Alt + P -> Cambia la información de una función
Espacio -> Alterna entre vista esquemática y código fuente
Funciones gráficas en IDA: Bucle For:
IF

Switch tabla de Saltos: Switch – Estilo IF: Grafico de una función específica: