xiakj
(well)
1
废话不多说
直接上代码
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 个赞
xiakj
(well)
11
先在越狱机上面用cycript -p live4iphone
用UIApp.keyWindow.recursiveDescription().toString()
找到广告对应的View
然后找到对应的Controller 调用
choose(KKAdsViewController) 找到内存地址 0x14023e400
然后去KKAdsViewController头文件里面的方法,一个个试过去,发现这个方法能跳过去
[#0x14023e400 skipAdPlay]
然后就可以hook这个方法了
yate1996
(yate1996)
16
奇怪,我注入重签名之后,校验是通过的,machoview也是可以看到链接了的,但是安装后应用闪退,报错是image not found:
yate1996
(yate1996)
18
改正了依然闪退
这是我注入的代码:
然后使用appsigner进行的应用签名。
签名检测:
![](https://cdn.iosre.com/uploads/default/original/2X/8/81c7ff8ce8a3ef3c7febb444e5f69c74f3001a0b.png)
这个是闪退的log信息:
![](https://cdn.iosre.com/uploads/default/original/2X/b/bd114b383183e1c52ec0bb885f66948c6895a8c1.png)
这是tweak代码:
![](https://cdn.iosre.com/uploads/default/original/2X/b/b485604974ee2591d60707926245c4e255a3770a.png)
yate1996
(yate1996)
20
我用的就是这个进行重签名的,我把应用下载下来直接重签名是可以打开的,但是注入之后重签名就闪退了
xiakj
(well)
21
代码有问题
用这个试试
CHOptimizedMethod(1, self, void, KKAdsViewController, viewWillAppear, BOOL, value1)
{
if ([self respondsToSelector:@selector(skipAdPlay)]) {
objc_msgSend(self,@selector(skipAdPlay));
}
CHSuper(1, KKAdsViewController, viewWillAppear, value1);
}