ing inverso
Post on 09-Jul-2015
81 Views
Preview:
TRANSCRIPT
Mam: De grande quiero ser Ingeniero ReversoPosibilidades de una nueva profesin en PerMiguel Febres / Q-Protex
Quien soy?Un psiclogo y msico frustado Analista Programador: Java, Pascal, C#, PHP, Python, ASM Docente de Java en Cibertec IT Security Consultant en Q-Protex
Quien soy?Nicks anteriores: AnonimoSer DiHACKblo BeeMoul Nick actual: emadicius
Autor del MSLRH: Protector de ejecutables
Antes de empezarA estirarnos un poco!
Objetivos de la Presentacin
1
Comentar experiencia personal
2 3
Despertar tu inters!
Posibilidades de estudio y laborales
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
Que es Ingeniera Inversa?Definicin de Wikipedia: El objetivo de la ingeniera inversa es obtener informacin a partir de un producto accesible al pblico, con el fin de determinar de qu est hecho, qu lo hace funcionar y cmo fue fabricado.
Que es Ingeniera Inversa?Definicin de Wikipedia: Hoy en da (principios del siglo XXI), los productos ms comnmente sometidos a ingeniera inversa son los programas de computadoras y los componentes electrnicos, pero, en realidad, cualquier producto o bien puede ser objeto de un anlisis de Ingeniera Inversa.
Que es Ingeniera Inversa?Usos en la medicina
Las vacunas se hacen luego de hacer una ingeniera inversa a las bacterias o virus.
Que es Ingeniera Inversa?Usos en la psicologaLos fundadores de la PNL sacaron sus plantillas del pensamiento humano haciendo ingeniera inversa a las mentes de personas con xito: las estudiaron y desensamblaron sus programas, hasta obtener el cdigo, que aplicaron a otras personas.
Que es Ingeniera Inversa?Los militares lo usan para copiar tecnologas de pases rivales!
Que es Ingeniera Inversa?Resolver casos misteriosos?
Que es Ingeniera Inversa?Cazar mitos!
No video
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
Ingeniera Inversa de SoftwareDefinicin de Wikipedia: En el caso concreto del software, se conoce por ingeniera inversa a la actividad que se ocupa de descubrir cmo funciona un programa, funcin o caracterstica de cuyo cdigo fuente no se dispone, hasta el punto de poder modificar ese cdigo o generar cdigo propio que cumpla las mismas funciones.
Ingeniera Inversa de SoftwareConocida con otros nombres: Reversing: Reverse Engineering RCE: Reverse Code Engineering SRE: Software Reverse Engineering Cracking es solo una posibilidad de la Ingeniera Inversa.
Motivos para aprenderlo? Diversin: Es un hobby fabuloso! Curiosidad: Mi caso! Aprendizaje: Te hace conocer mejor el funcionamiento interno de las cosas Seguridad: Anlisis de malware, Desarrollo de exploits, Ethical hacking, Test de penetracin Desarrollo/anlisis/ruptura de sistemas de proteccin de software: Protectores, packers, loaders, cracking Duplicacin/Recuperacin: Al no disponer de la documentacion o el cdigo fuente.
Casos de xitoDesarrollo de aplicaciones
Samba
Wine
Open Office
Permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows
Implementacin de la API de Windows
Para obtener los formatos propietarios de Microsoft Office
RequerimientosIngeniera Inversa
Conocimiento Se necesita conocer algunos conceptos informticos como los siguientes: Arquitectura de PCs Sistemas operativos Formatos de archivos binarios Programacin
Herramientas Se necesita aprender el manejo de un gran nmero de herramientas que trabajan en conjunto para lograr el objetivo comun.
HerramientasAnalizadores de Archivos Detectores de Packers, Unpackers
Open Source / Free / Paid
Decompiladores Desensambladores Programming Languages e IDES
Editores de recursos Utilidadades varias
Hex Editors PE Tools
Herramientas - FrameworksREMnux: A Linux Distribution for Reverse-Engineering Malware REMnux is a lightweight Linux distribution for assisting malware analysts in reverse-engineering malicious software. The distribution is based on Ubuntu and is maintained by Lenny Zeltser
Opensource tools to disasm, debug, analyze and manipulate binary files. Highly scriptable Multi-architecture multi-platform Hexadecimal editor IO is wrapped Debugger support Diffing between two functions or binaries Code analysis at opcode, basicblock, function levels
Metodologa
No hay metodologa. Solo usa el Zen-Cracking!!
Metodologa1. Especificar la razn del anlisis: Estudio, Modificar o Agregar funcionalidad, Entender cierta parte del cdigo, Anlisis de Malware, etc. Anlisis de comportamiento 1. Ejecutar el binario en un ambiente de pruebas (VM) 2. Monitorear como interacta con los archivos, registro, red 3. Interactuar con el binario directamente en caso tenga GUI Usar un analizar de binario para detectar posible compilador y/o compresor/protector. En caso exista un compresor/protector, evaluar la necesidad de quitarlo: 1. Depurar hasta el OEP 2. Dumpear 3. Arreglar IAT De acuerdo con el tipo de binario detectado en el punto 3, reunir las herramientas enfocadas a este tipo. Anlisis de cdigo: 1. Refuerza lo encontrado en el anlisis de comportamiento 2. Uso de decompiladores, debuggers y otros 3. Examinar el cdigo y buscar las partes mas importantes Enfocarse en lo establecido en el punto 1
2.
3. 4.
5.6.
7.
MetodologaAnlisis de cdigo es la parte mas divertida / difcil:Tcnicas Anti-debugging y anti-tracing
Deteccin de Breakpoints Anti Virtual Machines y emuladores
Anti dump Timers
Discrepancias de valores en memoria Discrepancia de resultados de funciones API
Self-Debugging Cdigo automodificable
Uso de algoritmos de encriptacin y de hash (CRC) Uso de interrupciones Deteccin especfica de debuggers usando enumeracin de ventanas / procesos o revisando el registro
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
Casos de Uso1Soporte Informtico
2Desarrollo de Sistemas
Caso Anti-Porn
Caso IpView
Casos de Uso - AntiPornUsuario con problemas!
1Soporte Informtico
Caso Anti-Porn
Al, soporte? Por favor ayuda!!! Instal un programa que filtra el internet y no lo he podido configurar correctamente!!!! Ahora no puedo entrar a ninguna pgina pues me pide un password para configurarlo o desinstalarlo!!!
Casos de Uso - AntiPornTcnico en Computadoras
1Soporte Informtico
Caso Anti-Porn
No hay otra solucin mas que formatear el disco e instalar de nuevo el sistema operativo. Esto va a tomar un par de das pues debo recoger la PC y traerla a mi laboratorio. Esto le va a costar!
Casos de Uso - AntiPorn1Soporte Informtico
Tcnico en Computadoras con conocimiento en Ingeniera Inversa
Caso Anti-Porn
Ok, no problem. Con mi debugger puedo modificar el programa en memoria para poder desinstalarlo. Esto va a tomar unos minutos Esto le va a costar! (Posiblemente ms)
Casos de Uso - IpViewEjecutivo
2Desarrollo de Sistemas
Caso IpView
El software que nos vino con el dispositivo no se ve correctamente en los monitores LCD del rea de distribucin! Por favor necesito una solucin ASAP!
Casos de Uso - IpViewDesarrollador Area de Sistemas
2Desarrollo de Sistemas
Caso IpView
Vamos a programar las reuniones para levantar los requerimientos y desarrollar el software a medida pues no tenemos el cdigo fuente de dicha aplicacin. Esto va a tomar algunas semanas!
Casos de Uso - IpView2Desarrollo de Sistemas
Desarrollador Area de Sistemas con conocimiento en Ingeniera Inversa
Caso IpView
Vamos a modificar el programa para que pueda verse en los monitores Esto tomar un par de horas.
Casos de Uso - IpView
436X472
Ventana en tamao real. Ntese el tamao de las letras y la ausencia del botn de maximizar.
Casos de Uso - IpView
Creacin de un Loader en delphi con el componente TDbgCLS que modifica el tamao de la letra, el ancho y el alto de la ventana.
Casos de Uso - IpView
1024x750
Duracin: 2 ~ 3 horas
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
CertificacionesCertified Reverse Code Engineering Professional (Windows) Certified Reverse Code Engineering Expert (Windows)
Certified Reverse Engineering Analyst (CREA)
GIAC Reverse Engineering Malware (GREM)
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
Como y donde aprender?Reverse Code Engineering Training
Reverse Engineering: Malware, Binary Analysis and Software Vulnerabilities Advanced Reverse Engineering Malware
Reverse-Engineering Malware: Malware Analysis Tools and Techniques
Capacitacin en Ingeniera Inversa. Curso en desarrollo planeado para el 2011
Como y donde aprender?RECon: Reverse Engineering Conference http://recon.cx/2010/
Tecnologas de programacin y la estructura interna de los programas(Ingenieria Inversa) http://groups.google.com/group/crackslati nos Infinidad de webs y recursos de donde aprender
Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales
Oportunidades Laborales Analista de Malware. Laboratorio de Anlisis de Malware prximo a abrirse en Argentina
Desarrollador C/Reverse Engineering Desarrollador (Seguridad Informtica) SSR o SR Muchos de los miembros de CracksLatinos trabajan aqu. (Argentina)
Laboratorio de desarrollo de exploits en Argentina
Senior Reverse Engineer and Vulnerability Researcher (Dinamarca)
ConclusionesQue quieres ser de grande hijo?
Quiero ser... Ingeniero Reverso!
m.febres@q-protex.com http://www.q-protex.com
top related