Hola gente, estoy terminando un debugger que se encuentra en la etapa alfa, todavía falta un largo camino para competir con IDA Pro u OllyDbg, aunque tengo algunas características que ellos no tienen como debuggear multiples procesos y debuggear procesos child. Aunque posiblemente lo más entretenido es la utilidad “detour”. La desventaja en la actualidad es que solamente es y sera un debugger para software de 64 bits, pero como es un proyecto a largo plazo seguramente cuando este terminado 100% como me guste, hablar de 64 bits será algo habitual.
Bueno siendo breve la finalidad de este post, es encontrar gente que quieran testear esta versión del debugger ya que es y será una versión freeware y la ayuda de ustedes sería de gran valor.
Link: www.duxcore.com
Que y Como testear? :
-Setear un software breakpoint en cualquier función que sepan que va breakear, en ShowWindow, WriteFile, ReadFile, o cualquier funcion que se les ocurra.
(si tienen paciencia pueden comparar el resultado desensamblado con WinDbg seteando un breakpoint, con el comando “bp kernel32!readfile”)
-Setear un Detour, primero seleccionando en Target Function a la API que desean sobrecargar y luego seleccionan Detour Function a la función de la dll propia.
Para facilitar el testeo se incluye la dll compilada (DuxDbgClient.dll) (aunque obviamente se incluye el código de la dll para que puedan crear las de ustedes y hagan detour de cualquier función que se les ocurra)
Introduccion Detour (que es y para que sirve)
Un “detour” justamente es un desvio con el que podemos seleccionar una función (target) de cualquier dll, propia del sistema operativo o del software, e indicarle al debugger que cada vez que el software llame a esa función se redirija a otra función (detour) que nosotros hayamos seleccionado. Previamente vamos a tener que inyectar codigo, cargando modulos (dlls o exes) propios.
Son 3 las dlls que vamos a tener que cargar (inyectar)
DuxDbgControl.dll / DuxDbgUtilities.dll
DuxDbgClient.dll (depende de las otras 2 dlls y debemos respetar el orden en que se carga)
DuxDbgClient.dll implementa una función Duxrand que nunca genera un numero aleatorio, por lo tanto si debuggeamos el buscaminas (Minesweeper) y seteamos en Target Function a la función “rand” del modulo “msvcrt.dll” y luego en Detour Function a la función “Duxrand” del modulo “DuxDbgClient.dll” deberíamos comprobar que cuando juguemos el orden de las minas no sea aleatorio.
Otro ejemplo es la función DuxWriteFile que esta implementada para que haga una copia en un archivo “D:\DuxBackUp.txt” de todo lo que el programa escriba en el disco.
Deben setear :
Target Function -> Kernel32.dll ->WriteFile
Detour Function-> DuxDbgClient.dll->DuxWriteFile.
Donde estan las dlls??
C:\Program Files\DuxCore\Visual DuxDebugger\SDK\redist
Bueno agradecería, que me informen por mail: info@duxcore.com si tuvieron problemas con la instalación, si arranca con algún problema, etc, como es una versión alfa obviamente hay cosas que no están implementandas, si no tuvieron ningún problema por favor también háganmelo saber.
Si sale todo bien para noviembre saldrá la versión 1.0.
Saludos y si lo testean gracias por el tiempo!