gpt4 book ai didi

c++ - 如何对调试器隐藏变量/函数名称?

转载 作者:行者123 更新时间:2023-11-30 05:46:35 24 4
gpt4 key购买 nike

我用 C++ 创建了一个 .DLL。 .DLL 处理我程序的许多核心功能,需要尽可能安全和难以理解。我已经用打包机打包好了。

但是,我注意到当我在 OllyDBG 中打开 .DLL 时,所有变量名和函数名仍然可见...

例如我可以看到这个

MOV [VariableName], EAX

我想这样做 [VariableName] 不会以如此明显的方式显示......也许更像是......

MOV DWORD PTR DS:[ESI], EAX

我知道一定有办法做到这一点,因为我没有看到任何软件都可以显示变量名和函数名...

有没有人有任何建议,我已经尝试删除在构建 .DLL 时创建的 PDB...没有任何改变。

最佳答案

如果您使用 VC++ 构建,变量和函数名称存储在 .pdb 文件中 --- pdb 代表“程序数据库”。正如 Steve Hansen 所说,这在发布版本中默认是禁用的;然而,它是一个 good practice启用它。只需删除 .pdb 文件,OllyDBG 将不再显示变量和函数名称。

但是,从 DLL 导出的函数名称仍然可见,例如dumpbin/exports mydll.dll 除非你exported the functions by ordinal, in the .def file .

关于c++ - 如何对调试器隐藏变量/函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com