All Projects → bediger4000 → Userlandexec

bediger4000 / Userlandexec

Licence: bsd-3-clause
userland exec for Linux x86_64

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Userlandexec

Mandibule
linux elf injector for x86 x86_64 arm arm64
Stars: ✭ 171 (+643.48%)
Mutual labels:  x86-64, elf
Rop Tool
A tool to help you write binary exploits
Stars: ✭ 590 (+2465.22%)
Mutual labels:  x86-64, elf
Fcd
An optimizing decompiler
Stars: ✭ 622 (+2604.35%)
Mutual labels:  x86-64, elf
Pivirus
sample linux x86_64 ELF virus
Stars: ✭ 45 (+95.65%)
Mutual labels:  x86-64, elf
Holodec
Decompiler for x86 and x86-64 ELF binaries
Stars: ✭ 195 (+747.83%)
Mutual labels:  x86-64, elf
The holy book of x86
A simple guide to x86 architecture, assembly, memory management, paging, segmentation, SMM, BIOS....
Stars: ✭ 577 (+2408.7%)
Mutual labels:  x86-64
Cemu
Cheap EMUlator: lightweight multi-architecture assembly playground
Stars: ✭ 666 (+2795.65%)
Mutual labels:  x86-64
Dlinject
Inject a shared library (i.e. arbitrary code) into a live linux process, without ptrace
Stars: ✭ 521 (+2165.22%)
Mutual labels:  x86-64
Elf
灵活可扩展的 HTML5 构建工具
Stars: ✭ 479 (+1982.61%)
Mutual labels:  elf
Dithumb
Minimal ARM/Thumb linear sweep disassembler similar to objdump
Stars: ✭ 5 (-78.26%)
Mutual labels:  elf
X86 Assembly Cheat
MOVED TO: https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly SEE README. x86 IA-32 and x86-64 userland minimal examples tutorial. Hundreds of runnable asserts. Nice GDB setup. IO done with libc, so OS portable in theory. NASM and GAS covered. Tested in Ubuntu 18.04. Containers (ELF), linking, calling conventions. System land cheat at: https://github.com/cirosantilli/x86-bare-metal-examples, ARM cheat at: https://github.com/cirosantilli/arm-assembly-cheat
Stars: ✭ 773 (+3260.87%)
Mutual labels:  x86-64
Squalr
Squalr Memory Editor - Game Hacking Tool Written in C#
Stars: ✭ 645 (+2704.35%)
Mutual labels:  x86-64
Ksm
A fast, hackable and simple x64 VT-x hypervisor for Windows and Linux. Builtin userspace sandbox and introspection engine.
Stars: ✭ 673 (+2826.09%)
Mutual labels:  x86-64
Capstone
Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.
Stars: ✭ 5,374 (+23265.22%)
Mutual labels:  x86-64
Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+3456.52%)
Mutual labels:  x86-64
Managarm
Pragmatic microkernel-based OS with fully asynchronous I/O
Stars: ✭ 502 (+2082.61%)
Mutual labels:  x86-64
Remill
Library for lifting of x86, amd64, and aarch64 machine code to LLVM bitcode
Stars: ✭ 633 (+2652.17%)
Mutual labels:  x86-64
Arm now
arm_now is a qemu powered tool that allows instant setup of virtual machines on arm cpu, mips, powerpc, nios2, x86 and more, for reverse, exploit, fuzzing and programming purpose.
Stars: ✭ 719 (+3026.09%)
Mutual labels:  x86-64
Habomalhunter
HaboMalHunter is a sub-project of Habo Malware Analysis System (https://habo.qq.com), which can be used for automated malware analysis and security assessment on the Linux system.
Stars: ✭ 627 (+2626.09%)
Mutual labels:  elf
Die Engine
DIE engine
Stars: ✭ 648 (+2717.39%)
Mutual labels:  elf

userlandexec

userland exec for Linux x86_64

This code emulates an exec() system call. That is, it reads an ELF format file, and loads it into memory at the correct address. It 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.

This code works with 64-bit Linux ELF files, compiled with GCC and linked against glibc. Other C runtimes (Musl libc, for example) cause errors mysterious to me.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].