一、安裝
python2 或 python3:
pip install angr
目前官方不再維護python2版本,所以python2裝的版本偏低,且很可能沒有后續更新。
如果你選擇python2版本,還需要把capstone升級一下,不然無法分析mips程序,還會報錯:
Your version of capstone does not support MIPS instruction groups
所以必須升級到V4以上版本:
pip install -U capstone
二.使用
目前我只會一種通用的方法,就是指定目標和錯誤終點來暴力遍歷路徑。應該還有許多更高級的約束方法,等以后學了再更新。
import angr p= angr.Project('./filename',auto_load_libs=False) state=p.factory.entry_state() simgr=p.factory.simgr(state) simgr.explore(find=0x40202c,avoid=0x402048) print(simgr.found[0].posix.dumps(0))
其中find=填需要達到的目標地址,avoid填錯誤的地點,如果有多個錯誤地址的話可以用list填寫多個。