Instructions
You need Unicorn installed, including the Python bindings (cd bindings/python; make install
)
pip install -r requirements.txt
python run.py bins/x86_64.linux.elf
# (note: MachO loading is implemented but the binary crashes at some point in my tests)
python run.py bins/x86_64.osxtest.macho
- User-space system emulator.
- Backed by Unicorn.
- Similar to qemu-user.
- Unlike qemu-user, does not require the same OS for which the binary was built.
- Wait, what? What does that mean?
- Syscalls are coerced into the Python API using persuasive fit techniques. Syscalls s/should/might/ work almost anywhere Python does.
- Hence, Usercorn should work anywhere Unicorn and Python do.
- Your userspace might be incredibly confusing to the target binary.
- No API for memory mapped files yet.