You are on page 1of 2

Creative Commons v3 Attribution License for this Cheat Sheet v.1.5.

Reverse-Engineering Cheat Sheet


Por Lenny Zeltser Aprende a darle la vuelta al Malware h t t p : / / w w w . z e l t s e r . c o m / r e v e r se malware T r a d u c i d o p o r J o s e S e l vi http://www.pentester.es Aproximacin General

Redirige el trfico de red (hosts file, DNS, Honeyd). Activa los servicios (IRC, HTTP, SMTP, etc.) as como los necesites para provocar nuevo comportamiento en el especimen.
IDA Pro para anlisis esttico Alt+T Buscar texto Mays+F12 Mostrar ventana de cadenas Mostrar operando como Q hexadecimal : Insertar comentario Enter Seguir salto o llamada Esc Volver a la anterior vista Ctrl+Enter Ir a la siguiente vista Mays+F4 Mostrar ventana de nombres Mostrar diagrama de flujo de F12 las funciones Mostrar diagrama de Ctrl+F12 llamadas a funciones Ir al entry point del Ctrl+E programa G Ir a una direccin especfica Renombrar variable o N funcin Ctrl+L Mostrar lista de nombres Ctrl+S Mostrar lista de segmentos Mostrar Seleccionar nombre referencias de la funcin cruzadas de una Ctrl+X funcin Mostrar pila de la funcin Ctrl+K actual OllyDbg para anlisis dinmico

1. Preparate un laboratorio controlado y aislado donde examinar los especmenes de malware. 2. Haz un anlisis del comportamiento para examinar las interacciones del especimen con el entorno. 3. Haz un anlisis del cdigo esttico para entender el funcionamiento interno del especimen. 4. Haz un anlisis del cdigo dinmico para entender los aspectos ms difciles del cdigo. 5. Si es necesario, desempaqueta el especimen. 6. Repite los pasos 2, 3, y 4 (el orden puede variar) hasta que cumplas con los objetivos del anlisis. 7. Documenta lo que has encontrado y limpia el laboratorio para futuros anlisis.
Anlisis del comportamiento

Estate listo para volver a un estado correcto mediante dd, VMware snapshots, CoreRestore, Ghost, SteadyState, etc. Monitorizacin de interacciones locales (Process Monitor, Process Explorer) y de la red (Wireshark, tcpdump). Detecta los principales cambios locales (RegShot, Autoruns).

Saltar sobre la F8 instruccin (Step Over) Ejecutar hasta el F9 siguiente breakpoint Ejecutar hasta el Ctrl+F9 siguiente return de funcin Mostrar anterior/siguiente -/+ instruccin ejecutada Volver a la vista * anterior Mostrar mapa de Alt+M memoria Seguir expresiones en Ctrl+G vista ; Insertar comentario Seguir salto o llamada Enter en vista Mostrar listado de Ctrl+N nombres Nueva bsqueda Ctrl+G binaria Siguiente resultado de Ctrl+L bsqueda binaria Alt+B Mostrar listado de breakpoints Aadir instruccin Seleccionar instruccin en lugar de la Espacio seleccionada Editar datos en Seleccionar datos o memoria u opcode instruccin Ctrl+E de instrucciones Mostrar cadena SEH View SEH chain Mostrar parches
Ctrl+P

Saltar dentro de instruccin (Step Into)

F7

Evadiendo defensas de Malware

Para intentar desempaquetar rapidamente, infecta el sistema y vuelca la memoria con LordPE o OllyDump. Para un desempaquetamiento ms quirrjico, localiza el Entry Point original (OEP) despus de que se ejecute el desempaquetador. Si no se puede desempaquetar limpiamente, examina el especimen empaquetado mediante anlisis dinmico mientras est en ejecucin. Cuando desempaquetas en OllyDbg, intenta usar SFX (bytewise) y la opcin Find OEP by Section Hop de OllyDump. Oculta a OllyDbg mediante HideOD y OllyAdvanced. Un JMP o CALL a EAX puede mostrarnos el OEP, posiblemente precedido de POPA o POPAD. Busca saltos rebuscados mediante SEH, RET, CALL, etc. Si el empaquetador usa SEH, anticipate al OEP siguiendo las reas de la pila usadas para almacenar los manejadores del empaquetador. Decodifica los datos protegidos examinando los resultados de decodificar una funcin mediante anlisis dinmico de cdigo. Corrige los problemas con la cabecera PE con XPELister, LordPE, ImpREC, PEiD, etc. Para acercarte al OEP, intenta con un breakpoint en las llamadas del desempaquetador a LoadLibraryA o GetProcAddress.
Registros x86 y usos comunes EAX ECX

EBP

ESP

EIP EFLAGS

Base para referenciar a los argumentos de la funcin (EBP+value) y a las variables locales (EBP-value) Apunta a la cima de la pila; cambia mediante PUSH, POP, y otros Apunta a la siguiente instruccin Contiene flags que almacenan resultados de computacin (por ejemplo, Zero flag y Carry flag)

Los conceptos de anlisis de Malware tras este resumen son cubiertos en el curso SEC610: Reverse-Engineering Malware del SANS Institute, impartido por Lenny Zeltser.

Sumas, multiplicaciones, resultado de las funciones Contador

You might also like