You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| PE (UPX) | A new `RT_RCDATA` resource is added to `.rsrc`; UPX preserves the resource directory, so `find_section` continues to work. |
145
+
| ELF (UPX) | A new `.note.sui` is placed in a fresh `PT_LOAD` past the packed payload, with a matching `PT_NOTE` program header. `dl_iterate_phdr` enumerates the program headers after the unpacker hands control back, so the note remains visible. |
146
+
| Mach-O arm64 | A new `__SUI` segment is appended after `__LINKEDIT`; `getsectdata` reads it directly from the mapped image. (Most packers on Apple Silicon are blocked by code signing anyway.) |
147
+
| Mach-O x86_64 | Data is appended past the end of the file with a sentinel marker; this survives any packer that does not truncate or rewrite the file tail. |
148
+
149
+
Injecting *before* packing is not supported: the packer is free to
150
+
discard or relocate the embedded data, and on ELF/Mach-O the runtime
151
+
lookup will not find it. If you must pack a binary that already contains
152
+
libsui data, treat it as a build step ordering issue and move the
153
+
injection to after the pack step.
154
+
121
155
## Testing
122
156
123
157
This crate is fuzzed with LLVM's libFuzzer. See [fuzz/](fuzz/).
0 commit comments