| 167 |
|
|
| 168 |
|
DDrPatch_MakeJump(&trampoline[pos], (void*)disasm.EIP); |
| 169 |
|
DDrPatch_NOOP(from, (void*)disasm.EIP - from); |
| 170 |
+ |
|
| 171 |
+ |
DWORD oldp; |
| 172 |
+ |
if (!VirtualProtect(trampoline, 40, PAGE_EXECUTE_READWRITE, &oldp)) { |
| 173 |
+ |
DDrStartupMessage("Daodan: Detour: Could not mark page for trampoline as executable: from address 0x%08x", from); |
| 174 |
+ |
return (void*)-1; |
| 175 |
+ |
} |
| 176 |
|
DDrPatch_MakeJump(from, to); |
| 177 |
|
/* |
| 178 |
|
memset (&MyDisasm, 0, sizeof(DISASM)); |
| 218 |
|
DDrStartupMessage(""); |
| 219 |
|
DDrStartupMessage(""); |
| 220 |
|
DDrStartupMessage(""); |
| 221 |
< |
*/ |
| 221 |
> |
*/ |
| 222 |
> |
|
| 223 |
|
return trampoline; |
| 224 |
|
} |
| 225 |
|
|