Skip to content

Commit

Permalink
Create README.md
Browse files Browse the repository at this point in the history
Rough README
  • Loading branch information
bediger4000 committed May 4, 2016
1 parent a59a316 commit 0d059db
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# userlandexec
## userland exec for Linux x86_64

This code emulates an `exec()` system call. That is, it reads and ELF format file,
and loads it into memory at the right place, and then starts the newly-loaded
executable to running.

All this is usually done by the Linux kernel, so some bizarre things go on.
For starters, the userland exec unmaps the currently-executing ELF file,
so as to be able to put the new ELF file's contents in the right place
in memory.

### Building

Run `make` - that should compile `example` and `ulexec.so`. Once you've
done that, you can try it out:

`./example ./ulexec.so /usr/bin/cat /proc/self/maps`

### Fun

`./example ./ulexec.so `./example ./ulexec.so `./example ./ulexec.so /usr/bin/cat /proc/self/maps`

Yes! You can have it overlay itself with another copy of itself.

0 comments on commit 0d059db

Please sign in to comment.