iczelia
kernel module and userspace loader for a flat (all rwx, 64-bit linux) binary format
| 2026-08-12 23:08 | style, cc0 -> 0bsd, drop old linux support | Kamila Szewczyk |
| 2025-10-22 09:26 | Add files via upload | Kamila Szewczyk |
| 2025-10-22 09:26 | Initial commit | Kamila Szewczyk |
| main (2026-08-12 23:08) |
no tags.
64-bit flat binary binfmt for linux.
primarily intended as a toy for code-golf so that i can conveniently test shellcode.
deatils:
- executable stack and all pages mapped as rwx
- no aslr, no dynamic linking obviously
- passes argc/argv/envp in registers (not the stack) - di, si, dx respectively. all other registers zeroed.
- stack is set up and aligned to 16 bytes.
- images are always loaded at 0x0000000000040000
- magic bytes at start of file: "LC64". next two bytes are the amount of extra pages to commit, while the entry point starts at the 6th byte (i.e. immediately after the header).
- configs for the kernel module: debugging, inserting 0xCC at the entry point for easy breakpointing.
- kernel (binfmt, see kmod/) and userspace loaders.