Presentación de PowerPoint
Transcripción
Presentación de PowerPoint
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 antidebugging (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/dotnetdevelopment/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? Uno más? https://forum.tuts4you.com/topic/32862-crackme-rdg-simple-crackme-delphi/ 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?