Fix task_read in MTE processes #14

Merged
khanhduytran0 merged 1 commit from main into main 2026-09-19 03:08:03 -05:00
khanhduytran0 commented 2026-09-19 03:04:46 -05:00 (Migrated from github.com)

opainject fails on processes with MTE enabled, this fixes by stripping all addresses passed to task_read

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
       frame #0: 0x0000000102cd1578 opainject`task_read(task=7427, address=144115192381571168, outBuf=0x0000007ce2800000, size=50856) at task_utils.m:8:6
   7           kern_return_t kr = vm_read_overwrite(task, address, size, (vm_address_t)outBuf, &maxSize);
-> 8           if (kr == KERN_SUCCESS) {
Target 0: (opainject) stopped.
(lldb) p/x address
(vm_address_t) 0x0200000100a40060
(lldb) p kr
(kern_return_t) 1
opainject fails on processes with MTE enabled, this fixes by stripping all addresses passed to `task_read` ```c * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1 frame #0: 0x0000000102cd1578 opainject`task_read(task=7427, address=144115192381571168, outBuf=0x0000007ce2800000, size=50856) at task_utils.m:8:6 7 kern_return_t kr = vm_read_overwrite(task, address, size, (vm_address_t)outBuf, &maxSize); -> 8 if (kr == KERN_SUCCESS) { Target 0: (opainject) stopped. (lldb) p/x address (vm_address_t) 0x0200000100a40060 (lldb) p kr (kern_return_t) 1 ```
Sign in to join this conversation.
No description provided.