tutorial snowman rays online disassembler boomerang c++ winapi dll reverse-engineering

snowman - Ingeniería inversa C++ DLL



snowman decompiler tutorial (8)

No puedes devolver la carne a un animal e incluso si pudieras tener un animal muerto: P

Tengo una pequeña utilidad que fue escrita originalmente en VS2005.

Necesito hacer un pequeño cambio, pero el código fuente de uno de los dlls se ha perdido en alguna parte.

¿Hay alguna herramienta gratuita o de precio razonable para realizar una ingeniería inversa de la DLL de nuevo al código C ++?


No sé la situación exacta que tiene, y la funcionalidad que implementa el DLL para su aplicación. Pero yo diría que en la mayoría de los casos sería mejor reescribir el archivo DLL que falta basado en la funcionalidad conocida.

Esto es especialmente cierto si tiene alguna documentación para ello.

Intentar realizar una ingeniería inversa del código binario al ensamblador, luego a C ++ y luego intentar modificarlo para proporcionar la funcionalidad existente, en la mayoría de los casos requerirá mucho tiempo, y tal vez incluso sea imposible.


Si su pequeño cambio es editar algo de texto o saltear algunas rutinas, puede usar un editor hexadecimal o un desensamblador, pero no podrá ver el código C ++ original, e incluso si encuentra una herramienta que convierta el archivo DLL de vuelta al código, todos los nombres de las variables se habrían ido y sería un gran desastre.


Tienes que hacerlo como lo hacen los juegos y las galletas de aplicación: utiliza un desensamblador y piratea el código de Ensamblador.


Un poco, dependiendo de su situación, mantendría el DLL heredado / binario tal como está y escribiría un archivo contenedor que cambiará y / o agregará cualquier comportamiento adicional.

La idea es agregar la funcionalidad anterior en una nueva DLL que importe la antigua.


El descompilador de Hex-Rays es una gran herramienta, pero el código será bastante difícil de leer y tendrá que invertir mucho tiempo para realizar una ingeniería inversa de todo el archivo DLL.


SI se hizo en .NET, ¿por qué no utilizar el reflector dotNet?


También es posible que desee echar un vistazo a OllyDbg, que es un depurador de análisis de nivel de ensamblador de 32 bits. Se usa para analizar código binario en escenarios donde no tiene un código fuente. Es depurador ligero. OllyDbg es un shareware para que puedas descargarlo y usarlo gratis ... !!

Visite OllyDbg es la página de inicio aquí

PD: Antes, los crackers usaban SoftICE de NuMega para depurar en un ejecutable y tomar una instantánea de los valores de los registros. SoftICE era un depurador avanzado. Definitivamente fue la herramienta favorita para las galletas. No sé sobre el estado actual del producto. El sitio de NuMega no tenía información al respecto. Puede que lo haya pasado por alto, pero no pude encontrarlo. Recomiendo que tenga en sus manos una versión heredada (4.0x) de SoftICE y aplique el parche de WindowsXP para SoftICE. Trabajar con SoftICE es una especie de "experiencia".

Leer más: Inversión: secretos de la ingeniería inversa por Eldad Eilam