angr,符号执行时,提示错误,如何处理
大家好,我在解CTF题目时候,想通过 angr的符号执行找到答案。我的angr脚本如下 :
import angr
import claripy
import logging
proj = angr.Project("E:\\CrackMe03.exe",
auto_load_libs=False)
# @proj.hook(0x7ffefead)
# def print_flag(state):
# print("hook")
init_state = proj.factory.full_init_state(add_options=angr.options.unicorn)
simgr = proj.factory.simulation_manager(init_state)
simgr.run(until=lambda sm_: len(sm_.active) > 1)
#因为没有else分支,所以没有void参数
simgr.explore(find=0x004013B9)
print(simgr.errored)
if len(simgr.found) == 0 :
print("no is found")
else :
flag = simgr.found[0].posix.dumps(0).strip(b'\n')
执行结果是:
[<State errored with "IR decoding error at 0x7ffefead. You can hook this instruction with a python replacement using project.hook(0x7ffefead, your_function, length=length_of_instruction).">]
no is found
意思是有问题,于是我加了一个hook,就是图中注释的部分,只打印一行字符。再次执行,结果变为:
hook
[<State errored with "Empty IRSB passed to HeavyVEXMixin.">]
no is found
请问,我该如何才能修复上面的错误提示呢?
如果我修改auto_load_libs=True,那么结果为:
WARNING | 2021-04-04 11:52:07,161 | angr.procedures.win32.dynamic_loading | GetProcAddress: forwarding failed for SetDefaultDllDirectories from kernel32.dll
[<State errored with "Can't handle callback function in FlsAlloc">]
no is found
请问这个又应该如何处理啊?
符号执行,有什么好的书籍可以推荐啊?
谢谢各位大侠。
0x7ffefead 是系统函数,绕过这个函数或者hook后仿制一个类似功能的函数。 whyida 发表于 2021-4-8 13:14
0x7ffefead 是系统函数,绕过这个函数或者hook后仿制一个类似功能的函数。
嗯嗯
我加了hook后,还是走不通啊。
我是在windows平台上面跑的
页:
[1]