-------------------------------------------------------------------------------------------------------------------------------------------------------
“Free software” is a matter of liberty, not price.
-------------------------------------------------------------------------------------------------------------------------------------------------------

Por qué «software libre» es mejor que «código abierto» cdlibre.org ---Software de código abierto de forma gratuita ---

Traductor

- Reverse engineering -

Uno de los tópicos más interesantes a los que podría afrontarse un profesional de la tecnología es la ingeniería inversa. 

La ingeniería inversa es una metodología para analizar el diseño de un dispositivo o sistema y que aplicada a la ingeniería computacional se utiliza para descubrir cómo funciona un programa de cuyo código fuente no se dispone.

En ingeniería inversa el término cracking se utiliza  cuando se burla al sistema de protección de algún software en específico para obtener una copia funcional de un software supuestamente protegido.  Hay que tener en cuenta que la gran mayoría del software de pago incluye en su licencia una prohibición expresa de aplicar ingeniería inversa a su código, con el intento de evitar que se pueda modificar su código. 

En ingeniería inversa  se trabaja con lenguaje ensamblador. Si por ejemplo, abres cualquier ejecutable con un desensamblador podrás ver el código del mismo, esto se suele denominar "código muerto". Sin embargo, y es donde aumenta considerablemente la importancia de la ingeniería inversa, es en poder depurar ese código, esto es, poder ejecutar cada instrucción e ir observando los resultados, esto se consigue con los programas denominados depuradores (debuggers). Estos programas permiten "debuggear" un determinado código, pararlo donde uno quiera, modificar parámetros, examinar y modificar la memoria y un largo etc... En Windows, el debugger que posiblemente más gente utiliza actualmente es OllyDBG junto con IDA. Hace unos años era utilizado uno llamado Softice.


Para poder realizar un análisis de ingeniería inversa es necesario contar con las herramientas adecuadas. Entre las herramientas más comunes podemos mencionar:

  • Los editores hexadecimales.
  • Los des-ensambladores.
  • Los descompresores.
  • Los depuradores.
  • Los analizadores de archivos.
  • Los dumpeadores de memoria.
  • Los monitores de registro.
Un depurador es un programa usado para probar y eliminar los errores de otros programas. La misma funcionalidad que hace a un depurador útil para eliminar errores permite ser usado como herramienta de craqueo de software para evadir la protección anticopia, la gestión digital de derechos, y otras características de protección de software.

Un desensamblador es un programa de computadora que traduce el lenguaje de máquina a lenguaje ensamblador. Los desensambladores son ampliamente utilizados para crackear programas y para realizar ingeniería inversa. También son utilizados por desarrolladores de software, investigadores o estudiantes.


Con Ingeniería Inversa y suficientes conocimientos se puede modificar un programa totalmente. Aunque no es necesario saber programar, pero sí muy útil, es muy importante conocer el lenguaje ensamblador(asm), en inglés assembly. 

Via:
  • http://www.karmany.net/ingenieria-inversa/
  • http://interconectado.org/index.php?topic=1794.msg4760#msg4760
  • http://www.xombra.com/index.php?do=articulos&nota=134&t=#.U9USPplPd0s
  • http://ried.cl/ingenieria-inversa-y-los-numeros-magicos/
  • https://es.wikipedia.org/wiki/Desensamblador
  • https://es.wikipedia.org/wiki/Depurador
  • http://es.wikipedia.org/wiki/Ingeniería_inversa

TUTORIAL DESENSAMBLADOR, DEPURADOR, CRACKING: INTRODUCCIÓN AL CRACKING CON OLLYDBG DESDE CERO

Aquí están los enlaces para descargar los archivos de la INTRODUCCIÓN AL CRACKING CON OLLYDBG DESDE CERO (Por si hay gente que no quiere trabajar hay una carpeta llamada SIN PASSWORD que contiene los tutes sin el password correspondiente, vagos y fiacas bajarlos de ahí jeje.)