GithubHelp home page GithubHelp logo

Comments (3)

aquynh avatar aquynh commented on May 14, 2024

yes lets temporarily use UC_HOOK_MEM_INVALID & UC_MEM_NX for now. will be be able to comment further when your code is out. thanks.

from unicorn.

radare avatar radare commented on May 14, 2024

NX is usually a global setting that is applied to the whole virtual machine. imho, as long as we are using uc_mem_* apis to allocate memory and use it, and the only way to allow code running in unicorn to allocate more memory is via syscalls (which needs to be emulated by the host code) i dont see much reason into marking the mem pages with this permission.

So, if we use normal RWX permission logic we can handle mprotect syscalls and restrict whatever W^X, NX or any other custom thing we want to handle. Also, malware and other magic software overlaps two memory maps on the same address, or concatenating them in order to have two maps at different virtual address with different permissions, but same physical address, and therefor bypassing those kernel page protection restrictions. Is this possible with the current uc_mem api?

Btw, qemu also supports configuring the MMU in assembly, how's that handled by unicorn?

from unicorn.

aquynh avatar aquynh commented on May 14, 2024

PR merged, thanks.

from unicorn.

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.