去掉腾讯视频啰嗦广告

废话不多说
直接上代码

CHOptimizedMethod(0, self, KKAdsViewController*, KKAdsViewController, init)
{
KKAdsViewController *adsVC = CHSuper(0, KKAdsViewController, init);
objc_msgSend(adsVC,@selector(skipAdPlay));
return adsVC;
}
hook KKAdsViewController的init方法,直接调用skipAdPlay

还是得感谢https://github.com/codesourse/iInjection 的作者
让注入重签名变得如此简单

2 个赞

注入重签名本来就不难

主要是太麻烦

有没有更好的方法分享一下

我不做啊。注入重签名是给low逼玩的: )

求大神指路

我为论坛的新人感谢你

讲讲分析过程啊

1 个赞

这方法写得太明显

you are so diao

先在越狱机上面用cycript -p live4iphone
用UIApp.keyWindow.recursiveDescription().toString()
找到广告对应的View
然后找到对应的Controller 调用
choose(KKAdsViewController) 找到内存地址 0x14023e400
然后去KKAdsViewController头文件里面的方法,一个个试过去,发现这个方法能跳过去
[#0x14023e400 skipAdPlay]
然后就可以hook这个方法了

worked! thks

重新签名后是不是也只能安装到越狱机上?

重签名一下,就不用在越狱机子上了

奇怪,我注入重签名之后,校验是通过的,machoview也是可以看到链接了的,但是安装后应用闪退,报错是image not found:

executabale

改正了依然闪退

这是我注入的代码:

然后使用appsigner进行的应用签名。
签名检测:

这个是闪退的log信息:

这是tweak代码:

你用这个工具试试

:laughing:我用的就是这个进行重签名的,我把应用下载下来直接重签名是可以打开的,但是注入之后重签名就闪退了

代码有问题
用这个试试

CHOptimizedMethod(1, self, void, KKAdsViewController, viewWillAppear, BOOL, value1)
{
if ([self respondsToSelector:@selector(skipAdPlay)]) {
objc_msgSend(self,@selector(skipAdPlay));
}
CHSuper(1, KKAdsViewController, viewWillAppear, value1);
}