Suponiendo que se está depurando un proceso no administrado ...
Cuando "Depuración/pausa del Juego", siga estos pasos:
Elija "Depuración/Windows/Módulos" para obtener una lista de todos cargados módulos. Debajo de la columna "Dirección" en la ventana de Módulos está el rango de memoria para ese módulo. En el cuadro "Dirección:" en la ventana de desmontaje, escriba la dirección de inicio del módulo (asegúrese de agregar 0x antes del número)
Ahora debe estar al principio del módulo con el que desea jugar . Si conoce la dirección de una función, puede saltar a esa dirección.
He aquí un ejemplo:
Run sol.exe asociar al proceso, y romper todo. Mira los módulos y encuentra "cards.dll", verás que se carga a 6fc10000 (en mi máquina, de todos modos).
Escriba esa dirección (0x6fc10000) en la ventana de desmontaje y lo llevará al inicio del módulo.
Ahora digo que realmente quiero saltar a una función. Abra la DLL en Dependency Walker (depends.exe) para obtener las compensaciones de las funciones. En mi ejemplo, quiero establecer un punto de interrupción en la función "cdInit". En Dependecny Walker, muestra que el desplazamiento a la función exportada cdInit es 0x000013e6. Para llegar a esa función, agregaría la dirección de inicio del módulo (0x6fc10000) al desplazamiento (0x000013e6) para obtener 0x6fc113e6.
Escribir esta dirección en el cuadro de desmontaje me lleva directamente al inicio de esa función.
ese trabajo con el DLL de código nativo? –
Desafortunadamente no, el reflector solo funciona con código administrado (.Net). Ya no es gratuito tampoco :) –