Comments (3)
I also came across this issue today. In Swarm64 (https://swarm64.com/) we are using the subhook library, and got seg fault because of a page boundary issue. Applying the fix that @cube0x8 (big acknowledgements btw) proposed solved the problem.
from subhook.
I'm pretty sure this is an issue with mprotect
Using the code you posted still shows the permissions shared over 0x1000 bytes
from subhook.
Sorry, but I don't get your point. Which code are you talking about?
I guess I was not clear enough in my first comment, so let me try to explain it better:
As you said, the permissions are shared over 0x1000 bytes which is right, but the problem arises when a function is located at page boundary.
Let's take your screenshot as example:
e.g. we have a function which is located at 0x7faff2692fef
. mprotect
(which takes a page aligned address as argument, otherwise it fails) will change permission as RWX from 0x7faff2692000
to 0x7faff2693000
(as showed in the picture). But later on, subhook will try to patch the first 0x14 bytes of the function, which are located in memory from 0x7faff2692fef
to 0x7faff2693003
. Conclusion: we have exactly 0x3 bytes which are not subjected to the mprotect
changes, which eventually will lead to a SIGSEGV.
from subhook.
Related Issues (20)
- Hook install segfault
- Subhook crashes on dylib, hooking a function (Catalina, Big Sur) HOT 1
- x64 trampolines rarely working HOT 1
- There maybe some bugs in rex prefix judge of 64-bits HOT 4
- Linker errors HOT 2
- Is a special flag needed for __stdcall? HOT 1
- Is there any plan to continue supporting macos?
- trampoline fails on X86_64 due to "endbr64" instruction not handled? HOT 2
- 8 bit relative jump tripping up my use case (instruction 0x79 0x07)
- Compile error HOT 1
- Linker compilation errors HOT 2
- delete HOT 4
- Hook pramm *const this HOT 2
- Undefined symbols for architecture x86_64:
- Run Subhook within Ruby application
- Undefined symbols
- [Question] Retrieving trampoline once? (Yes, Fixed)
- [Question] Replace Class Function?
- [Question] Support for Mid-Function Hooking?
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 subhook.