Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 19 additions & 3 deletions Sources/SwiftHook/SwiftHook+function.swift
Original file line number Diff line number Diff line change
Expand Up @@ -102,18 +102,34 @@ extension SwiftHook {
print(firstSymbol, secondSymbol)
#endif

var replaced1 = UnsafeMutableRawPointer(bitPattern: -1)
var replaced2 = UnsafeMutableRawPointer(bitPattern: -1)

let f2s: Bool = rebindSymbol(
name: first,
replacement: secondSymbol,
replaced: nil
replaced: &replaced1
)
let s2f: Bool = rebindSymbol(
name: second,
replacement: firstSymbol,
replaced: nil
replaced: &replaced2
)

return f2s && s2f
guard f2s && s2f else {
return false
}

guard let replaced1, let replaced2,
Int(bitPattern: replaced1) != -1,
Int(bitPattern: replaced2) != -1 else {
#if DEBUG
print("target function is not used.")
#endif
return true
}

return true
}
return false
}
Expand Down