Giter Club home page Giter Club logo

Comments (3)

Spiros-N-Agathos avatar Spiros-N-Agathos commented on August 21, 2024 2

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.

FilipeSilvens avatar FilipeSilvens commented on August 21, 2024

I'm pretty sure this is an issue with mprotect
Using the code you posted still shows the permissions shared over 0x1000 bytes
image

from subhook.

cube0x8 avatar cube0x8 commented on August 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.