Skip to content

Commit

Permalink
c'mon, Apple
Browse files Browse the repository at this point in the history
  • Loading branch information
DerekSelander authored Sep 30, 2024
1 parent 595a190 commit 9a2b626
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions symbol interposing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
> **NOTE:** At some point Apple being the party poopers that they are, slapped entitlement restrictions on the `thread_set_state(...)` API making it no longer usable in normal macOS machines (short of adding Apple entitlements and telling AMFI to get our of the way). This blocks my writeup's technique to create a breakpoint, but you can still get around this via the `[mach_]vm_protect()` APIs and making a breakpoint. This technique would require the process to be debugged, or not codesigned, or having something along the lines of `com.apple.security.cs.disable-executable-page-protection` (macOS) to create a breakpoint and modify executable code (like what lldb does). Maybe I'll update this one day...
# Chapter 16: Symbol Interposing & Hooking Shenanigans

Let's play a game: A series of code snippets and how they are compiled will be presented. In each code snippet, a challenge is given to execute a certain function that should be inaccessible unless you know the password. In order to execute this privileged function, you're not allowed to alter the source code nor how it's compiled in any way. Fortunately, you can assume that you have code execution in a dynamic library running in the same address space and loaded in via the `DYLD_INSERT_LIBRARIES` environment variable.
Expand Down

0 comments on commit 9a2b626

Please sign in to comment.