Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa...
Transcript of Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa...
Ingeniería Inversa (II)
Rubén Molina
Estrategias
• Análisis estático – Permite analizar binarios
de plataformas y arquitecturas que no poseo
– (Casi) no hay que preocuparse por código malicioso
– No hay que preocuparse por métodos anti-debugging (pero si por packers/crypters)
• Análisis dinámico – Requiere ejecución! (o
una muy ingeniosa emulación)
– Acceso directo a parámetros y retornos de funciones (oh si!)
– Infinidad de estrategias anti-debugging (oh no!)
– Generalmente no es sensible a packers (pero si a crypters)
Estrategias
• Análisis estático
– Tiene fama de ser mas difícil pero es sólo fama
– El método favorito para “análistas”: malware, firmware…
• Análisis dinámico
– El método favorito para crackers y exploiters?
– Muchas más cosas para aprender
Típicamente se usan las dos cosas
Herramientas para el análisis estático
Reflectores, Descompiladores, Desensambladores y Vodka
RDG Simple Crackme .NET
http://crackmes.de/users/rdgmax/rdg_simple_crackme_.net/
ILSpy 2.3.0.1827
RDG Simple Crackme .NET v5
http://crackmes.de/users/rdgmax/crackme_rdg_simple_crackme_.net_v5_2015/
No tan simple ;)
No tan simple ;)
O si?
BONUS: Así se veía antes :D
Para tener en cuenta
• http://de4dot.com/
• http://www.red-gate.com/products/dotnet-development/reflector/
– Recompilar? Cambiar de lenguaje? Modificar directamente el binario?
rantasipi's Little Headache
http://crackmes.de/users/rantasipi/little_headache/
vb Decompiler Pro 9.8
vb Decompiler Pro 9.8
BONUS: Removiendo la ofuscación ;)
https://repl.it/languages/Python3
vb Decompiler Lite 10.0
Crack Auth
http://crackmes.de/users/volty/voltys_delphi_crackme_1/
IDR: Interactive Delphi Reconstructor
“@UStrEqual”… Muy fácil?
https://forum.tuts4you.com/topic/32862-crackme-rdg-simple-crackme-delphi/
Uno más?
Y en IDA?
Esto era un @UStrCat
Esto era un @UStrEqual
Herramientas para el análisis dinámico
Depuradores y café
Donde puedo encontrar más?
• http://tuts4you.com/
• http://crackmes.de/
http://ricardonarvaja.info/WEB/
Estrategia general
• Identificar el binario: Plataforma? Arquitectura? Compilador? Símbolos?
• Probar múltiples herramientas de análisis: Algunas pueden tener mejores firmas, otras mejores estrategias de visualización, otras mejor identificación de tipado.
• Automatizar! Siempre!
• Reversar el mínimo de código: Descompiladores totales o parciales, Visualización, Instinto, etc!
Donde puedo aprender más?
Donde puedo aprender más?
Donde puedo aprender más?
Donde puedo aprender más?
Taller
• Retos libres
– Crackmes.de → Advanced Search → Difficulty >= 2
• Reto especial:
– “secret” → :)
– Como se genera?