简书App不错,但是广告太烦人,动手把广告屏蔽掉
分析 简书 6.2.0
由于广告是开屏弹出的,所以大致猜测在 application:didFinishLaunchingWithOptions: 中加载,找到代理类 HGAppDelegate ,发现其重写了 [HGAppDelegate load],
替换了两个oc方法,所以需要分析 swizzled_application:didFinishLaunchingWithOptions: 中执行过程。
1
2objc_msgSend(HGAppDelegate,"exchangeSelector:withSwizzledSelector:","application:didFinishLaunchingWithOptions:","swizzled_application:didFinishLaunchingWithOptions:");
objc_msgSend(HGAppDelegate,"exchangeSelector:withSwizzledSelector:","applicationWillResignActive:","swizzled_applicationWillResignActive:");
发现执行了 [HGAppConfiguration setupPreloadItems] 方法 ,在内部看到 [Hugo.ThirdPartyADManager fetchFlowAD] 方法 ,通过搜索 fetchFlowAD 发现多个 ADProvider。通过frida 查看调用的API,hook 掉即可。。。。
1 |
|
其中 有意思的是 “Hugo.MifuADProvider” 这类类名 可以通过 “_TtC4Hugo19ThirdPartyADManager” hook,并且在越狱设备上直接动态注入插件不起作用,但是通过注入后重签名,安装在未越狱设备上时是有效的。