我正在处理 angr-doc 挑战之一(https://github.com/angr/angr-doc/blob/2d45c9e6d9f91e83988719aa19940aec2cfd8747/examples/ekopartyctf2015_rev100/solve.py)但在我的方法中我遇到了这种情况:
mov rdx, [rbp+var_150];
mov rdx, [rdx];
mov rdx, [rdx+8];
movsx esi, byte ptr [rdx]
我需要将 esi 设置为符号(esi 将包含该值)。
我试过这样的事情:
#mov rdx, [rbp+var_150]
p1 = init_state.memory.load(init_state.regs.rbp-0x150, 8, endness=p.arch.memory_endness)
#mov rdx, [rdx]
p2 = init_state.memory.load(p1, 8, endness=p.arch.memory_endness)
#mov rdx, [rdx+8]
p3 = init_state.memory.load(p2+8, 8, endness=p.arch.memory_endness)
#movsx esi, byte ptr [rdx]
r1 = init_state.memory.load(p3, 8, endness=p.arch.memory_endness)
但它不起作用此外,我尝试为每个指针设置一个 BitVector 值(BVV),但它也不起作用。
我究竟做错了什么?