我需要从经典的win32 exe / dll文件中提取代码(但不是数据!)。很明显,我不能只通过提取代码段内容来做到这一点(因为代码段也包含数据 - 例如跳转表),而且我需要编译器的一些帮助。
*。映射文件很好但它们只包含函数的地址,即我能做的最安全的事情是从该地址开始并处理直到第一个返回/跳转指令(因为部分函数可以提到数据) )
* .pdb文件比较好,但我不确定用什么工具来提取这样的信息 - 我看了一下DbgHelp和DIA SDK,后者似乎是正确的工具,但它没有看起来很简单。所以我的问题:
当然,我首先关注的是Visual Studio,C / C ++源代码编译。
感谢任何提示。
答案 0 :(得分:1)
此处的页面有PDB extractor可供下载:http://undocumented.rawol.com。使用/ type选项时,它可以提取所有信息。此处还有一篇关于PDB查看器的文章:http://www.codeproject.com/KB/bugs/PdbParser.aspx但它提取的信息较少。
两个实用程序都带有源代码。
答案 1 :(得分:0)
好吧,前几天我刚刚读了DIA is a lot easier to use from C#(链接到一个简单程序的源代码);另一个不断出现在谷歌搜索中的程序是PDB Cracker,它也有源代码,可能与您的预期应用程序更相关。