Closed astewart-bah closed 9 months ago
[ins] In [28]: chain.print_payload_code()
code_base = 0x0
chain = b""
chain += p32(code_base + 0x15219f) # mov eax, edx; pop ebx; pop edi; ret
chain += p32(code_base + 0x22a000)
chain += p32(0xdeadbeec)
chain += p32(code_base + 0x183d4f) # pop es; add dword ptr [edi + 3], ebx; sbb al, 0x8b; notrack jmp ebx
The issue is caused by ebx
. Basically, the <next pc>
value is constrained in this case, which is not great. I'll see what I can do to mitigate this.
And this is probably common in other chains as well.
I don't have a perfect solution right now. The monkey patch is to add a retry-loop to add_to_mem: https://github.com/angr/angrop/pull/78/commits/c42ed67d655441427c8a180c41b64ac313240ee7 (just like what we do in other builders)
Should be fixed by https://github.com/angr/angrop/pull/78 And the test case is integrated into CI.
Description
When testing ubuntu i386 libc for add_to_mem, I get the following error:
Steps to reproduce the bug
Attached is zip file. Unzip and run start_test.sh. issue_76.zip
Environment
No response
Additional context
No response