简单的活着

angr.solver

Posted on By Mista Cai

#angr.solver

由于最新angr删除了很多之前的方法(属性),所以参考前人的代码出了问题。

本来下面两个方法都可以求出路径条件,但是resultfiles方法以及被移除了。

>>> 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又称为栈指针。