IDA无法反编译 and 提示错误
情況一:
有的時(shí)候IDA的函數(shù)點(diǎn)進(jìn)去 ,發(fā)現(xiàn)無法去反編譯,可能是代碼出問題了,考察我們對(duì)匯編的閱讀
能力例如下面:
aaa指令明顯錯(cuò)誤(注:CODE CREF代碼交叉引用)?我們把這里jbe和aaa nop掉,有時(shí)nop后會(huì)出現(xiàn)新的代碼,我們?cè)侔堰@些nop掉,直到之前有錯(cuò)誤的代碼部分部分全都nop掉。
然后再選中紅色部分,按p鍵定義為函數(shù),然后重新反編譯即可
情況二:
// positive sp value has been detected, the output may be wrong!
這種一般是堆棧不平衡導(dǎo)致的,選擇IDA的Options選項(xiàng),然后把點(diǎn)擊Generals,
?把Stack pointer點(diǎn)上,然后去看匯編代碼?
?
這種綠色數(shù)字就是堆棧信息,一般情況下,突然中間出現(xiàn)負(fù)數(shù),表示這里堆棧錯(cuò)誤,選中上面一行按快捷鍵alt+k進(jìn)行修改。
情況三:
?部分指令無法被反編譯
解決方案: 因?yàn)楹瘮?shù)中間有未設(shè)置成指令的數(shù)據(jù)字節(jié),按c設(shè)置為指令集科。?
或者把黃色段的數(shù)據(jù)按c鍵轉(zhuǎn)化為代碼,再定義為函數(shù),再反編譯
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的IDA无法反编译 and 提示错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大端序小端序存储
- 下一篇: BUUCTF crackMe