![Page 1: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/1.jpg)
Ingeniería Inversa (II)
Rubén Molina
![Page 2: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/2.jpg)
![Page 3: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/3.jpg)
![Page 4: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/4.jpg)
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)
![Page 5: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/5.jpg)
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
![Page 6: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/6.jpg)
Herramientas para el análisis estático
Reflectores, Descompiladores, Desensambladores y Vodka
![Page 7: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/7.jpg)
RDG Simple Crackme .NET
http://crackmes.de/users/rdgmax/rdg_simple_crackme_.net/
![Page 8: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/8.jpg)
ILSpy 2.3.0.1827
![Page 9: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/9.jpg)
![Page 10: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/10.jpg)
RDG Simple Crackme .NET v5
http://crackmes.de/users/rdgmax/crackme_rdg_simple_crackme_.net_v5_2015/
![Page 11: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/11.jpg)
No tan simple ;)
![Page 12: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/12.jpg)
No tan simple ;)
![Page 13: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/13.jpg)
O si?
![Page 14: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/14.jpg)
BONUS: Así se veía antes :D
![Page 15: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/15.jpg)
Para tener en cuenta
• http://de4dot.com/
• http://www.red-gate.com/products/dotnet-development/reflector/
– Recompilar? Cambiar de lenguaje? Modificar directamente el binario?
![Page 16: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/16.jpg)
rantasipi's Little Headache
http://crackmes.de/users/rantasipi/little_headache/
![Page 17: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/17.jpg)
vb Decompiler Pro 9.8
![Page 18: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/18.jpg)
![Page 19: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/19.jpg)
vb Decompiler Pro 9.8
![Page 20: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/20.jpg)
![Page 21: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/21.jpg)
BONUS: Removiendo la ofuscación ;)
https://repl.it/languages/Python3
![Page 22: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/22.jpg)
vb Decompiler Lite 10.0
![Page 23: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/23.jpg)
![Page 24: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/24.jpg)
Crack Auth
http://crackmes.de/users/volty/voltys_delphi_crackme_1/
![Page 25: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/25.jpg)
IDR: Interactive Delphi Reconstructor
![Page 26: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/26.jpg)
![Page 27: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/27.jpg)
“@UStrEqual”… Muy fácil?
![Page 28: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/28.jpg)
![Page 29: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/29.jpg)
![Page 30: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/30.jpg)
https://forum.tuts4you.com/topic/32862-crackme-rdg-simple-crackme-delphi/
Uno más?
![Page 31: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/31.jpg)
Y en IDA?
Esto era un @UStrCat
![Page 32: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/32.jpg)
![Page 33: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/33.jpg)
![Page 34: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/34.jpg)
Esto era un @UStrEqual
![Page 35: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/35.jpg)
Herramientas para el análisis dinámico
Depuradores y café
![Page 36: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/36.jpg)
![Page 37: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/37.jpg)
![Page 38: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/38.jpg)
![Page 39: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/39.jpg)
![Page 40: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/40.jpg)
![Page 41: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/41.jpg)
![Page 42: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/42.jpg)
Donde puedo encontrar más?
• http://tuts4you.com/
• http://crackmes.de/
http://ricardonarvaja.info/WEB/
![Page 43: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/43.jpg)
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!
![Page 44: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/44.jpg)
Donde puedo aprender más?
![Page 45: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/45.jpg)
Donde puedo aprender más?
![Page 46: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/46.jpg)
Donde puedo aprender más?
![Page 47: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/47.jpg)
Donde puedo aprender más?
![Page 48: Ingeniería Inversa (II)files.meetup.com/18428959/reversing-reloaded.pdf · Ingeniería Inversa (II) Rubén Molina . Estrategias •Análisis estático –Permite analizar binarios](https://reader036.vdocuments.net/reader036/viewer/2022063012/5fca98ef27e20c6e743ac2af/html5/thumbnails/48.jpg)
Taller
• Retos libres
– Crackmes.de → Advanced Search → Difficulty >= 2
• Reto especial:
– “secret” → :)
– Como se genera?