GithubHelp home page GithubHelp logo

tannerjin / anti-fishhook Goto Github PK

View Code? Open in Web Editor NEW
152.0 7.0 23.0 2.05 MB

Anti-Fishhook (make fishhook doesn't work)

License: MIT License

Swift 98.21% Ruby 1.79%
fishhook swift safety ios anti-fishhook

anti-fishhook's Introduction

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

anti-fishhook's People

Contributors

tannerjin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

anti-fishhook's Issues

能否为某个Swift函数提供anti-fishhook功能?

请问是否有办法为swift代码中的某个函数提供anti-fishhook功能?

例如 HookMe 类中有静态方法和非静态方法:

class HookMe {
  public func log(_ msg: String) {
    print("HookMe log: " + msg)
  }
  
  public static func staticMethod() {
    print("Static method OK.")
  }
}

是否有有办法为这两个函数提供resetSymbol 功能?类似于:

resetSymbol(HookMe.log)
resetSymbol(HookMe.staticMethod)

按照现有的代码,好像是需要知道Swift命名重整(name mangling)后的函数名。但是在代码里无法提前知道命名重整后的函数名。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.