|
|
|
|
|
by invalid_name
3507 days ago
|
|
Mind asking a few things? What's the purpose of this line void *call_addr = (void *)CHECKSUM_CALL_ADDR;
to then casting the rvalue to a double void pointer here: void **target = (void **)CHECKSUM_CALL_ADDR;
(why not just void*) ? Also, even though mprotect() succeeds, I got a segfault. |
|
sure! nothing and nothing ;-) they were just leads I was trying. `target` was for:
I've updated the gist.> Also, even though mprotect() succeeds, I got a segfault.
try in GDB something like:
and in both disassemblies, look around 0x4005e0 (<main+67>) to see how instructions have been overwritten. In the second disassembly, if you see strange-looking instructions (eg clc), there was a problem with the copy / the instruction copied. Let me know !