Comments (3)
The trampoline which is patched over the function is always JMP_REL
, so it looks correct.
from minhook.
That is not true.
When x64 the patch happens using JMP_ABS:
JMP_ABS jmp = { 0xFF, 0x25, 0x00000000, // FF25 00000000: JMP [RIP+6] 0x0000000000000000ULL // Absolute destination address };
#if defined(_M_X64) || defined(__x86_64__) jmp.address = pOldInst; #else
typedef struct _JMP_ABS { UINT8 opcode0; // FF25 00000000: JMP [+6] UINT8 opcode1; UINT32 dummy; UINT64 address; // Absolute destination address } JMP_ABS, *PJMP_ABS;
In x64 the patch size is actually 14. And JMP_REL will always have size of 5.
from minhook.
You mix up two jumps: the jump which is patched over the hooked function, and the jump which is followed after the first saved commands of the function (which is written in a separately allocated buffer).
from minhook.
Related Issues (20)
- Unable to hook undocumented function HOT 1
- Hooking function fails due to FindPrevFreeRegion and FindNextFreeRegion returning null HOT 3
- How use it by Qt? HOT 1
- make a release HOT 1
- how to hook File operations to return a new file size to user?
- Failed to hook D3D11CreateDeviceAndSwapChain HOT 1
- `__movsb` not defined when cross compiling with clang
- yo HOT 1
- Mid Function Hooking HOT 1
- error cmake vs
- Win9x (95/98/Me) Support? HOT 1
- CreateToolhelp32Snapshot call is very heavy HOT 2
- MinHook Library Inclusion Issue HOT 1
- Cant find Minhook.h HOT 2
- How can I use minhook in my project without vcpkg downloading (it's not working for me)? HOT 2
- Building a dll with the /GL optimization flag and the clang compiler HOT 1
- vcpkg 安装失败!!! HOT 1
- Mid hook issue
- Freeze Unfreeze inside of EnableHookLL/EnableAllHooksLL causes crash HOT 10
- how to use minhook without minhook's dll HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minhook.