Skip to content

Latest commit

 

History

History
53 lines (33 loc) · 1.44 KB

README.md

File metadata and controls

53 lines (33 loc) · 1.44 KB

AntiFishhook

AntiFishhook is an AntiHook library for fishhook at runtime (make fishhook doesn't work) .
include fishhook and anti-fishhook

How it's work

Note

Run or test in your phone(arm64) instend of simulator
Swift Function name mangling

Usage

antiFishhook

import antiFishhook

FishHookChecker.denyFishHook("$s10Foundation5NSLogyySS_s7CVarArg_pdtF")  // Swift's Foudation.NSLog  
NSLog("Hello AntiFishHook")

FishHookChecker.denyFishHook("printf")                                  // printf
printf("Hello AntiFishHook")

fishhook

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?

FishHook.replaceSymbol("$s10Foundation5NSLogyySS_s7CVarArg_pdtF", newMethod: selfNSLogPointer, oldMethod: &origNSLogPointer)

NSLog("Hello World")
// will print Hello fishHook

Suggestion

Use by adding source file to your project instend of pod