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;
但悲劇的是每個函數符號后面一張輔助符號表都沒有,所以這種方法流產了
我到現在也找不到好方法,望有牛人提點!