IDA反编译失败总结
文章目錄
- call analysis failed
- too big function
- positive sp value
- cannot convert to microcode
- local variable allocation failed
- stack frame is too big
call analysis failed
查看函數(shù)參數(shù)
壓入兩個參數(shù),但實際分析時它卻只有一個
對該函數(shù)按'y'鍵,將其參數(shù)修改為兩個,去掉三個即可
然后成功
too big function
too big function
修改配置文件IDA 7.0\cfg\hexrays.cfg
MAX_FUNCSIZE = 64 // Functions over 64K are not decompiled修改為:
MAX_FUNCSIZE = 1024 // Functions over 64K are not decompiled
positive sp value
(函數(shù)調(diào)用前后棧指針?biāo)肝恢貌蛔?
cannot convert to microcode
其次是x86中的rep前綴,比如rep jmp等可以將該指令的第一個字節(jié)
local variable allocation failed
分析函數(shù) 時,有部分變量對應(yīng)的區(qū)域發(fā)生重疊,多見于ARM平臺出現(xiàn)point rect等8字節(jié),16字節(jié),32字節(jié)結(jié)構(gòu)時尤其多見
解決方案:
1、修改對應(yīng)參數(shù)為多個int
2、修改ida安裝目錄下的hexrays .cfg的HO_
stack frame is too big
成因:分析棧幀時有異常出現(xiàn)
解決方案:找到明顯不合常理的stack 雙擊進(jìn)入棧幀界面,按U鍵盤刪除對應(yīng)的stack
有可能加殼
可能由花指令導(dǎo)致,手動或自動檢查并去掉花指令
總結(jié)
以上是生活随笔為你收集整理的IDA反编译失败总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年CISCN初赛re
- 下一篇: Windows环境下Pin(二进制动态插