Ich arbeite an einer der AnGR-doc Herausforderungen (https://github.com/angr/angr-doc/blob/2d45c9e6d9f91e83988719aa19940aec2cfd8747/examples/ekopartyctf2015_rev100/solve.py), aber in meinem Ansatz habe ich diese Situation:Verständnis der AnGR Speicherkarte
mov rdx, [rbp+var_150];
mov rdx, [rdx];
mov rdx, [rdx+8];
movsx esi, byte ptr [rdx]
wo ich brauche zu setzen esi als symbolische (esi wird be enthält den Wert).
Ich habe so etwas wie dies versucht:
#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)
aber nicht auch funktioniert, ich habe jeden Zeiger mit einem Bitvektor Wert (BVV) zu setzen versucht, aber es hat nicht funktioniert entweder.
was mache ich falsch?
den gesamten Speicher zu setzen Was genau meinen Sie mit „funktioniert nicht“? – Robert