AntiFishhook
AntiFishhook 是一个为 fishhook
运行时提供的 AntiHook 库(使 fishhook 无法工作)。
包含 fishhook
和 anti-fishhook
注意
请运行或测试在手机(arm64)而非模拟器上
Swift 函数名混淆
使用方法
antiFishhook(Swift)
import antiFishhook
resetSymbol("$s10Foundation5NSLogyySS_s7CVarArg_pdtF") // Swift's Foudation.NSLog
NSLog("Hello AntiFishHook")
resetSymbol("printf") // printf
printf("Hello AntiFishHook")
antiFishhook(C/Objc)
#include "antiFishhook-Swift.h"
+ (void)antiFishhook {
resetSymbol(@"$s10Foundation5NSLogyySS_s7CVarArg_pdtF"); // Swift's Foudation.NSLog
resetSymbol(@"printf"); // printf
}
fishhook(仅适用于Swift)
typealias MyNSLog = @convention(thin) (_ format: String, _ args: CVarArg...) -> Void
func myNSLog(_ format: String, _ args: CVarArg...) {
print("Hello fishHook")
}
let selfNSLog: MyNSLog = myNSLog
let selfNSLogPointer = unsafeBitCast(selfNSLog, to: UnsafeMutableRawPointer.self)
var origNSLogPointer: UnsafeMutableRawPointer?
replaceSymbol("$s10Foundation5NSLogyySS_s7CVarArg_pdtF", newMethod: selfNSLogPointer, oldMethod: &origNSLogPointer)
NSLog("Hello World")
// will print Hello fishHook
建议
使用时,请在项目中添加源文件而不是使用pod