Proview (a.k.a PVDasm) Disassembler, 唯冠 (又名 PVDasm) 反汇编器,PVDasm 是自由、 互动、 适用于多种 CPU (英特尔 80 x 86 / Chip8),包括许多功能,允许用户在目标映像文件上执行分析。PVDasm 目前支持的映像文件有可执行文件 (.exe)和动态可执行映像文件(.dll) Game-Boy映像文件(.gb/.gbc)。唯冠反汇编器从编制到现在已超过 6 年,从未停止升级工作 (可能会延迟)。PVDasm 总是追求不图任何回报成为免费的反汇编器,这使得反汇编爱好者多出一个自由选择...
Pvdasm是一款轻量级开源的反汇编引擎,下载开源代码可以直接使用自己开发反汇编工具,反汇编效果很好!
实例:
要想测试flb文件,你还得拿到函数数据,我使用的是PVDasm,下面说一下我的方法:
1. 解析PE文件,获得代码段
2. 使用反汇编引擎,PVDasm,监控Call指令(只做0xe8),获得函数数据
3. 加载相应的flb文件,检测每个获得函数数据,是否属于此flb文件中的函数
我已经把各个版本的C语言静态库都搞成相应的flb文件了,我写了几个test,(附件里都有)并和ida做过比较,占时还没发现问题,但那个函数数据size的问题,就像锅里的一坨S,请大家帮帮忙!
最后再提一下我的问题,希望有前辈指点一下!
函数数据的size确定问题,我现在的方法是:直接断定一个节中只有一个函数数据!
《PE COFF文件规范》里提到一种:
“5.5.1 辅助符号表记录格式之一:函数定义”;里面可以拿到size;
但悲剧的是每个函数符号后面一张辅助符号表都没有,所以这种方法流产了
我到现在也找不到好方法,望有牛人提点!