SkillAgentSearch skills...

BigBang

No description available

Install / Use

/learn @codesourse/BigBang
About this skill

Quality Score

0/100

Supported Platforms

Universal

Tags

README

BigBang

性能损耗

| 状态        | 平均耗时       | 次数 | | ------------- |:-------------:| -----:| | 不加之前 | 0.000213s | 20000次 | | 函数副本方法     | 0.000579s     | 20000次 | | 存IMP指针方法    | 0.000587s     | 20000次 |

不同设备之间会存在差异

函数副本方法:

所有方法都加上 BigBang_前缀 副本方法IMP指针使用原方法的

存IMP指针方法

将IMP指针转成long 存入字典中

        //缓存
        _IMP imp = method_getImplementation(method);
        
        NSNumber *pNumber = [NSNumber numberWithLong:(long)imp];
        
        [impDict setObject:pNumber forKey:NSStringFromSelector(methodSel)];
        
        //使用
        NSNumber *pNumber = [impDict objectForKey:NSStringFromSelector(invocation.selector)];
        
        long *p = (long *)[pNumber longValue];
        
        _IMP imp = (_IMP)p;
        
        [invocation invokeUsingIMP:imp];

勾某个类的所有方法的,查看所有方法的执行顺序

使用方法

[BigBang hookClass:@"A_ManageViewController"];

常规使用:

放在只执行一次的函数里,防止多次勾一个函数 如

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

hook:

attribute((constructor)) static void entry()

放这里面

打日志的printf 改成 nslog

在终端那个应用里面就能看到日志

avatar  

微信

[BigBang hookClass:@"WCPayLogicMgr"];

[BigBang hookClass:@"WCRedEnvelopesLogicMgr"];

[BigBang hookClass:@"ContactUpdateHelper"];

[BigBang hookClass:@"WCRedEnvelopesNetworkHelper"];

[BigBang hookClass:@"WCRedEnvelopesReceiveHomeView"]

avatar

Related Skills

View on GitHub
GitHub Stars204
CategoryDevelopment
Updated5mo ago
Forks48

Languages

Objective-C

Security Score

72/100

Audited on Nov 4, 2025

No findings