Giter VIP home page Giter VIP logo

execute-machine-code-from-memory's Introduction

Execute machine code from memory

Proof of concept example: executing machine code from different memory areas: stack, heap, shared memory

Requires

  • execstack - utility to mark stack as executable (prelink.rpm)

How to use

$ make
$ ./run_test.sh

Description

types of memory

  • stack
  • heap (malloc)
  • file/heap (mmap)
  • shared memory (shmget)

permissions on memory

  • rw - allocate memory with read/write permissions
  • rwx - allocate memory with read/write/execute permissions
  • rw-x - allocate memory with read/write permissions and then manually change permissions to rwx with mprotect syscall

Conceptual question

В разрезе "Обратной связи", интересует вопрос: Насколько опасно и к чему может привести исполняемый код со стэка/кучи/разделяемой памяти?

Стоит учесть, что по умолчанию, у всех приложений стэк / куча / shm - не исполняемые. И если есть, например, косяк в проверке аргументов, и, как следствие, возможность переполнения буфера, ещё не факт что удастся выполнить какой-либо свой код, так как память не исполняемая.

Приложение, может самостоятельно (создать | изменить атрибуты уже существующей) исполняемый участок памяти. Но стэк, по нормальному, никто исполняемым делать не будет, а кучу или shm "переполнять" вроде и некуда, если можно.

execute-machine-code-from-memory's People

Contributors

frodox avatar

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.