63 Commits

Author SHA1 Message Date
d25cf59380 fix SIGBUS due to mapping being larger than file 2025-12-17 16:15:41 +01:00
d52cf8aaaf mmap and mprotect interception 2025-12-17 11:43:47 +01:00
eea0e6204d remove unnecessary ud2 instructions 2025-12-17 11:15:51 +01:00
403fd6031b patchRegion remove mmap to R|X, caller is responsible now 2025-12-17 11:12:44 +01:00
de10ce58e2 fix flaky tests 2025-12-17 10:14:05 +01:00
3d7532c906 checked auxv for what to handle 2025-12-16 23:26:30 +01:00
5d146140b9 limit warning logs in disassembler 2025-12-16 23:01:52 +01:00
7161b6d1a2 vdso support 2025-12-16 22:46:58 +01:00
7eb5601eb6 factor out patching an elf from loading it to prepare vdso 2025-12-16 22:40:45 +01:00
1557b82c1d documentation 2025-12-16 11:29:00 +01:00
3633346d53 support rt_sigreturn 2025-12-16 11:18:36 +01:00
08f21c06fb add todo list 2025-12-16 11:06:38 +01:00
7186905ad2 update readme 2025-12-16 10:42:27 +01:00
8322ddba3b refactoring 2025-12-15 16:19:43 +01:00
85a07116af fork test 2025-12-15 15:59:34 +01:00
0a282259e3 fork-like clone test 2025-12-15 15:52:10 +01:00
33ce01d56d first working real clone call 2025-12-15 15:51:50 +01:00
403301a06e clone with fork-like behaviour 2025-12-15 15:10:42 +01:00
1b109ab5aa save return address to patch 2025-12-15 11:32:28 +01:00
d0c227faa8 minor refactoring 2025-12-15 11:31:12 +01:00
f4064aff89 clone tests to help debugging 2025-12-12 14:07:00 +01:00
d3271963a8 some tests 2025-12-12 14:06:14 +01:00
b73ac766bf need to compile with llvm because self-hosted doesn't work with asm 2025-12-12 09:21:09 +01:00
3211a7705b revert Range compare 2025-12-11 12:33:56 +01:00
da69c60ffd /proc/self/exe support 2025-12-11 12:25:52 +01:00
9ac107b398 respect /proc/sys/vm/mmap_min_addr 2025-12-11 11:56:01 +01:00
ef6cd851f7 remove unnecessary labels 2025-12-10 11:42:41 +01:00
557c98917c support lto 2025-12-10 11:40:24 +01:00
c32cd74628 syscall tracing skeleton 2025-12-10 10:51:52 +01:00
a8f55f6d63 replace greedy strategy with a configurable count strategy 2025-12-09 07:51:16 +01:00
8d907f071c convert Patcher to a global singleton
Migrates Patcher state to global variables and uses std.once for initialization.
This is preparing for future syscall tracing, which requires static access to
the patching context across the runtime to be accessed by flicken.
2025-12-09 07:07:22 +01:00
9d4f325a2c enable lto for release builds 2025-12-08 15:07:57 +01:00
0788dd30f2 allow greedy allocation for faster patching 2025-12-08 15:03:44 +01:00
49ae70ec2c try other allocation for relocation overflow 2025-12-08 09:56:00 +01:00
1922669c53 exlusive upper bound 2025-12-08 09:54:29 +01:00
434681eeb8 minor 2025-12-04 12:09:17 +01:00
9f42d161e9 neighbor eviction 2025-12-03 16:44:29 +01:00
6be43e1ff5 binary search in findAllocation 2025-12-03 15:51:15 +01:00
114157ccb7 respect mmap_min_addr 2025-12-03 13:14:48 +01:00
673ad2a33b don't provide negative addresses 2025-12-03 13:11:56 +01:00
96b192f4af allow negative jumps 2025-12-03 10:33:42 +01:00
b46bfc8dd7 stats 2025-12-03 10:33:01 +01:00
3ee245ba5f successor trampoline shouldn't touch target one 2025-12-02 17:46:28 +01:00
d3788d132d save instruction starts 2025-12-02 17:45:39 +01:00
2d19460095 fix relocation failures for smaller instructions 2025-12-02 17:45:20 +01:00
4bb03e8312 gitignore 2025-12-02 15:27:31 +01:00
5199678d2d factor out patch tactics 2025-12-02 15:27:00 +01:00
0b330bedd2 speedup loading 2025-12-02 14:21:40 +01:00
c134c3b7cc successor eviction 2025-12-02 14:21:21 +01:00
7c1e195402 split finding allocation range from actually allocating 2025-11-28 15:37:41 +01:00