Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Ingeniería Inversa, Malware, Cracking y otras yerbas

Charla dada en las 7ma Jornadas de Software Libre en la UNNOBA
by

Germán Osella Massa

on 1 October 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Ingeniería Inversa, Malware, Cracking y otras yerbas

BITS Ingeniería inversa, malware, cracking
y otras yerbas german.osella@nexo.unnoba.edu.ar Germán L. Osella Massa El objetivo de la ingeniería inversa es obtener información o un diseño a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Ingeniería inversa Malware Cracking No nos vamos a enfocar en el hardware... Solamente en el software ¿De qué está hecho el software? 01110011 01101111 01100110 01110100
01110111 01100001 01110010 01100101 No todos los bits son iguales Arquitecturas Sistemas operativos "software" Nadie programa escribiendo los bits que ve el procesador ABSTRACCIONES ¡Y cada vez usamos más de estas! ¿Y esto como impacta en la ingeniería inversa? assembly lenguajes de bajo nivel lenguajes de alto nivel bibliotecas APIs sistemas operativos bases de datos estructuras de datos frameworks internet máquinas virtuales Windows (32 bits) Formato de ejecutable portable (PE) Compiladores * http://xkcd.com/378/ Interfaz de usuario de Windows Manejo de energía Monitorización del desempeño Manejo de la memoria Almacenamiento Comunicación entre procesos Procesos e hilos E/S de dispositivos Depuración y manejo de errores API de Windows: Assembly del x86 Bases de datos Sistemas de archivos Frameworks (MFC) Bibliotecas (MS runtime) Aunque esto es tentador... ... No se necesita realmente saber todo eso para ser productivo. Relax Existen herramientas que ayudan bastante. En Internet hay de todo (sabiendo donde buscar). Nuestro objetivo es darle significado a esos bits Malware (del inglés malicious software) es un tipo de software que tiene como objetivo infiltrarse o dañar una computadora o sistema de información sin el consentimiento de su propietario.

El término malware es muy utilizado por profesionales de la informática para referirse a una variedad de software hostil, intrusivo o molesto. Yoloin V. Enté El malware, como todo programa, se rige por reglas definidas por su creador, las cuales se encuentran enterradas dentro del código ejecutable. La ingeniería inversa es una herramienta fundamental en la batalla contra esta amenaza creciente. ¿Cómo entender que hace un programa? Estudiar las instrucciones del programa Ejecutar el programa y ver que hace ANÁLISIS ESTÁTICO ANÁLISIS DINÁMICO Desensambladores IDA PRO http://www.hex-rays.com/products/ida/index.shtml OllyDbg http://www.ollydbg.de/ Immunity Debugger http://debugger.immunityinc.com/ Virtualización Monitoreo VirtualBox https://www.virtualbox.org/ VMWare http://www.vmware.com Sysinternals http://www.sysinternals.com FakeNet http://practicalmalwareanalysis.com/fakenet/ Wireshark http://www.wireshark.org/ CaptureBat http://www.honeynet.org/node/315 ¡DEMO! "Cracking" es la modificación del software con la intención de eliminar los métodos de protección de los cuales este disponga: protección de copias, versiones de prueba, números de serie, claves de hardware, verificación de fechas, verificación de CD o publicidad y adware. "Con un gran poder viene
una gran responsabilidad" Yoloin V. Enté Todo programa se rige por reglas definidas por su creador, las cuales se encuentran enterradas dentro del código ejecutable. Si encuentro donde está ese bendito "IF", me voy a ahorrar un fangote de guita truchando este programa. Cracker anónimo if ( clave_valida() ) {
// Usuario bueno
activar_programa_completo();
} else {
// Usuario malo
poniendo_estaba_la_ganza();
} Si dentro de un programa existe este patrón: not ¡Las herramientas son las mismas! Desensambladores Debuggers Herramientas de monitoreo Etcétera Los mismos conocimientos requeridos Aunque no siempre es sencillo encontrar ese 'IF' Gracias ¿DEMO? ¿Preguntas? por la atención Regshot http://sf.net/projects/regshot/
Full transcript