antiFishhook 1.0.0

antiFishhook 1.0.0

Maintained by jintao.



  • By
  • jintao

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(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(just for 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

Suggestion

Use by adding source file to your project instend of pod