#angr.solver
由于最新angr删除了很多之前的方法(属性),所以参考前人的代码出了问题。
本来下面两个方法都可以求出路径条件,但是result
和files
方法以及被移除了。
>>> s.state.se._solver.result.model
或者
>>> inputdata = s.posix.files[0].all_bytes()
>>> s.solver.eval(inputdate)
最新angr->doc,使用的是posix.stdin.load
,但是
>>> input_data = s.posix.stdin.load(0, s.posix.stdin.size)
>>> s.solver.eval(input_data, cast_to=bytes)
test eax, eax
,判断eax是否为零,eax =0,则ZF = 0
Note:在堆栈中变量分布是从高地址到低地址分布,EBP是指向栈底的指针,在过程调用中不变,又称为帧指针。ESP指向栈顶,程序执行时移动,ESP减小分配空间,ESP增大释放空间,ESP又称为栈指针。