我有一个 exe 文件,我想在其中编辑功能。
我知道函数名称是什么,但是如何通过它的名称找到地址?
OllyDbg 按名称查找函数
逆向工程
视窗
ollydbg
2021-06-12 19:48:50
2个回答
如果 Olly 知道函数名称,您可以按Ctrl+G并开始输入函数名称,它应该会在那里列出。选择您的功能,然后单击Follow expression,它应该会带您到那里。

如果文件有调试符号(即您有相应的 .pdb 文件),只需将文件加载到您最喜欢的调试器(Windbg、Olly、Ida Pro)中即可完成,因为调试器将匹配来自符号表。
如果您没有调试符号(并且您的函数不是特殊情况,例如 DLL 中的导出函数),那么知道函数名称通常对您没有任何帮助,因为此信息在可执行文件中丢失了。
但是,如果您对该函数有更多的了解,这些知识可能会对您有所帮助。例如,如果您有一个实现TEA 算法的函数,则扫描反汇编文件9e3779b9可能会对您有所帮助。(有一个名为 signrch 的工具可以为许多著名的加密和校验和变体执行此操作)。或者,如果您知道该函数使用某个字符串,请搜索该字符串,然后检查它的交叉引用位置。
您甚至可能很幸运,程序员使用了assert(或类似的)宏。根据编译器的不同,这通常会转换为一个printf包含__FUNC__,而该包含又会被函数名称替换,因此断言宏很可能会将函数名称作为字符串以及函数的交叉引用放入二进制文件中。
一旦你知道一个字符串属于你的函数,CTRL-R就可以使用它来查找代码中引用它的位置(关于 stackoverflow 的详细解释)。
其它你可能感兴趣的问题