如何使用winedbg逐步调试dos可执行文件?

时间:2019-07-18 16:55:40

标签: gdb reverse-engineering

我有一个dos可执行文件,我需要了解。所以我想调试它以理解算法并以另一种语言重现它。我的操作系统是Linux。

我首先尝试winedbg dosProgram.exe:它启动了程序(出现了一个新的终端窗口),该程序保持空白,直到我在winedbg提示符下键入nextcont或{{ 1}} ...然后按预期的方式运行了dos程序,但是winedbg窗口什么也没有显示,直到我按Ctrl-c导致出现step。所以没有什么有趣的事情。

当程序在winedbg中运行时,我还尝试发出stopping debuggee来获取正在运行的dos程序的pid,然后尝试了info proc,但是我得到了“ ltrace:不允许操作”(我读有关如何解决这一问题的一些帖子)。我没有进一步研究,因为我不确定该方法(winedbg中报告的pid代表的进程与gdb看到的进程相同)。

我终于尝试了gdb -P thePidInfoProcGaveMe,但似乎什么也没有发生,没有窗口出现,只显示了以下文本:

winedbg --gdb dosProgram.exe

根据我对winedbg手册的了解,0027:0028: create process 'Z:\home\helloworld\dosProgram.exe'/0x1108a0 @0x401870 (0<0>) 0027:0028: create thread I @0x401870 应该会自动打开gdb。

所以我的问题是:

  1. 是否甚至可以使用winedbg逐步调试一个dos程序(我的目标是了解该程序使用的算法)?
  2. 如果是的话,单靠winedbg就能实现,在那种情况下,命令应该是什么?
  3. 将gdb链接到winedbg的步骤是什么(走这条路)?

感谢任何帮助和建议!

0 个答案:

没有答案