在 Ollydbg 中,如何在不重新创建整个目录结构的情况下更改源代码文件的路径?

逆向工程 ollydbg C 数据库
2021-06-25 00:08:00

我将一个 .EXE、一个 .PDB 和一个源代码 .C 文件带入我的计算机,并试图在 Ollydbg 中查看我的程序。

我正在一台机器上编译 C 程序(实际上是 XP Vm)并在另一台机器上的 Windows 7 中的 Ollydbg 2.01 中运行它们。我想看看在发布代码,所以我设置为中描述的编译和链接选项链接所以我在 Win7 中有一个“prog.exe”和“prog.pdb”,Ollydbg 所在的位置。我可以在 Ollydbg 中启动 prog.exe 并且我看到 main() 和我的其他函数的标签,并且可以使用CTRL+ G“Enter Expression to Follow”对话框转到它们

但是我也喜欢看到相关的源代码行,能够在CPU窗口的代码下方看到,并且能够双击打开源代码.C文件。

但是除非我在我的 Win7 (Olly) 计算机中重新创建整个相同的目录路径,否则 Olly 无法获得此源代码(即使它看到代码块的标签名称)。我花了一些时间查看 Visual Studio(对我来说是 6 个)中的设置以尝试不使用绝对路径,并在 Olly 中更改它的外观。有任何想法吗?

1个回答

pdb 是自包含的,因此您可以拖放它,调试器可以使用它,
但 src 文件只是
相对路径或绝对路径的路径引用
因此您必须将它们复制到本地目录
(考虑项目的可行性)有数以千计的 src 文件)或
设置目录结构(如果你没有在 c:\ 中编译会更容易一点:))
diskmgmt.msc 不会让你更改系统启动分区的驱动器号)

如果您在系统启动分区以外的分区上,
只需将目录从基础转储到可移动驱动器并更改驱动器号

或者学习一些windbg的环境变量_NT_SOURCE_PATH、_NT_SYMBOL_PATH,让ollydbg使用windbg目录下的symsrv.dll

查看选项 -> 调试数据 -> 选项卡