GJDuck / e9patch

A powerful static binary rewriting tool
GNU General Public License v3.0
979 stars 65 forks source link

e9plugin: sendReserveMessage failed for PE #48

Closed AiDaiP closed 2 years ago

AiDaiP commented 2 years ago

I run sendReserveMessage with same args for ELF and PE, but it failed for PE.

GJDuck commented 2 years ago

What were the args?

AiDaiP commented 2 years ago

sendReserveMessage(cxt->out, 0x47f00000, 0x10000, true); error: failed to reserve address space at address [absolute] 0x47f00000

GJDuck commented 2 years ago

Currently, E9Patch will reserve all addresses up to 0x80000000 for PE files. This address range tends to be "polluted" with various cruft at runtime, and should not be used by E9Patch for trampolines. You could try editing e9pe.cpp/parsePE() to remove or refine this limitation.

AiDaiP commented 2 years ago

OK, Thanks.