我在C ++中创建了一个.DLL。 .DLL处理我的许多程序核心功能,并且需要尽可能安全和难以理解。我已经用包装工打包了。
但是,我注意到当我在OllyDBG中打开.DLL时,所有变量名和函数名仍然可见......
例如,我可以看到这个
MOV [VariableName], EAX
我想这样做[VariableName]不会以如此明显的方式显示..也许更像是......
MOV DWORD PTR DS:[ESI], EAX
我知道必须有一种方法可以做到这一点,因为我没有看到那些显示变量名和功能名的软件供所有人查看...
有没有人有任何建议,我已经尝试删除在构建.DLL时创建的PDB ...什么都没改。
答案 0 :(得分:1)
如果使用VC ++构建,变量和函数名称存储在.pdb文件中--- pdb代表"程序数据库"。正如Steve Hansen所说,在发布版本中默认禁用此功能;但是,启用它是good practice。只需删除.pdb文件,OllyDBG就不应再显示变量和函数名称。
但是,从DLL导出的函数的名称仍然可见,例如dumpbin /exports mydll.dll
,除非您exported the functions by ordinal, in the .def file。