吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 41129|回复: 95
收起左侧

[iOS 原创] 网易云音乐, QQ音乐, 酷狗音乐 App去反调试

[复制链接]
xifgg 发表于 2019-9-4 12:36
总结:
1)还原包名
2)搜索jail,hook越狱相关检测。
3)搜索debuger之类,看看有没有调试器检测,hook。
4)边Hook,边重新运行看效果。

第一步:砸壳
砸壳(我用的是frIDA,非常好用),然后新建MonkeyDev工程。

第二步:获取包名(ps + cycript命令), 这里就不详细说了。

第三步:
解压砸壳后的ipa文件,得到macho文件。然后拖入hopper。
首先还原包名,为什么要还原包名呢,主要有两方面:
1.还是因为得益于MonkeyDev这一神器,在xcode里面调试起来简直是方便太多,最主要的还是长期正向开发用惯了XCode调试吧。但是MonkeyDev工程必须得有个bundleId, 但是又不能和原bundleId一致,因此有些App就在包名上做反调试。这是之前分析boss直聘的时候经验。
2.另外也许业务接口也会上传App包名。
所以我们先还原包名吧,这个时候我们得先把之前appstore上下载的包删掉,不然真机调试的时候手机上就有两个相同包名的App,会影响调试的。
%hook NSBundle
- (NSString *)bundleIdentifier
{
    return @"com.netease.cloudmusic”;  //包名
}

//注意,hook下面这个方法有可能会影响UI效果.比如网易云音乐hook下面方法就会导致很多App图标加载不了。不hook又无法正常使用,具体原因懒得去分析了,hook上能正常使用就行。
- (NSDictionary *)infoDictionary
{
NSDictionary *dic = %orig;
NSMutableDictionary *resultDic = [dic mutableCopy];
[resultDic setValue"com.netease.cloudmusic" forKey"CFBundleIdentifier”]; //包名
return [resultDic copy];
}
%end



1)酷狗音乐:

搜索jail,得到如下:
1.png

然后对这些方法hook,直接返回NO即可。
运行起来看看效果,能正常使用。基本就过了。

2)QQ音乐:
同样,先搜索jail:
2.png

然后对这些方法进行hook, 直接返回NO.
运行起来看看效果,感觉还是不行,有日志提示被xcode调试。然后搜搜debug看看:
3.png

发现搜出来的debug很多,跟调试器相关的估计也就圈起来的这个,那我们再搜搜debugger试试看:
4.png

我们先对这三个方法hook,直接返回NO。
另外在搜索KSPerformanceMonitor的时候发现有这么个方法:+ (BOOL)isTheAppStoreEnvironment,我们也hook一下它,直接返回YES。
然后运行起来看看效果。

这里需要说一下:
当时日志提示正在被xcode调试,我走了不少弯路,先是根据日志内容在Hopper中搜索相关字符串,结果什么也没搜到。然后只好对NSLog下符号断点。并记住 正在被xcode调试的上一条日志内容,当xcode输出这条日志时候,继续运行,应用下一次断下来就是 提示被xcode调试的日志的地址,然后我们bt一下调用栈,结果都去掉符号了。那只有根据当前地址 - base地址 = 偏移地址,然后在hopper中搜索偏移地址,并进行分析咯。

然后搜索包名相关的方法,对返回包名的相关方法进行hook, 恢复App包名。
5.png

我们可以看看这些类,有第三方SDK设置包名,也有VC,这些我们都不管。 我们只看圈起来的这些类,看看这些类的其他方法,大致看看是干嘛的。然后根据猜测有选择性的对相关类的包名方法进行hook。我这里主要做了如下hook:
%hook RqdBundleUtil
- (NSString *)getBundleId
{
return @"com.tencent.QQMusic";
}
%end

%hook RqdModelBase
- (NSString *)bundleId
{
return @"com.tencent.QQMusic";
}
%end


再跑起来看看,运行正常。那反调试基本就过了。

3)网易云音乐
同样,先是搜索jail, 看看搜索结果:
6.png

好家伙,还挺多的, 从搜索截图来看,其中NTESBugrptJailbreakCheck这个类的方法还挺多的,那我们对其他类的jail相关方法先hook,然后再来分析这个类。然后有针对性的Hook NTESBugrptJailbreakCheck类的某些方法。
然后跑起来看看,还是有些问题。
我们再来看看有没有跟调试器相关的方法,主要搜索下面这些字符串:
debugattached, debugger,  
7.png

然后搜索包名相关的方法,对返回包名的相关方法进行hook,恢复App包名。

免费评分

参与人数 28威望 +1 吾爱币 +37 热心值 +22 收起 理由
ydydq + 1 + 1 我很赞同!
沃硕德 + 1 + 1 谢谢@Thanks!
Mgyj + 1 谢谢@Thanks!
HT14123 + 1 学习了
阡木 + 1 我很赞同!
小远来 + 1 谢谢@Thanks!
wecheir + 1 + 1 谢谢@Thanks!
全场最佳赵山河 + 1 谢谢@Thanks!
daniel7785 + 1 用心讨论,共获提升!
17687010385 + 1 + 1 我很赞同!
悍匪戾 + 1 + 1 热心回复!
hzhaolu01 + 1 谢谢楼主
taiha + 1 热心回复!
阿巍哦 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
LOLQAQ + 1 + 1 我很赞同!
liyonghaod + 1 + 1 谢谢@Thanks!
内瑟斯 + 1 + 1 我很赞同!
gaga520451 + 1 高手 能不能分享一些破解版的
bigbearcat + 1 + 1 我很赞同!
我家蠢猫 + 1 + 1 我很赞同!
yeminqiang + 1 + 1 谢谢@Thanks!
crystall + 1 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
北巷悠 + 1 + 1 我很赞同!优秀
smile5 + 1 + 1 谢谢@Thanks!
hiodis + 1 + 1 谢谢@Thanks!
涛之雨 + 3 + 1 虽然暂时用不到,但是iOS的教程很少哦
qtfreet00 + 1 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wstclzy2010 发表于 2019-9-13 10:28
QQ20190913-102731.png 在build setting里面有个default bundleID,改成yes就会自动以原bundleID打包

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
LQMIKU + 1 + 1 我很赞同!

查看全部评分

 楼主| xifgg 发表于 2019-9-4 17:44
qtfreet00 发表于 2019-9-4 17:19
如果符号被混淆呢  或者是c层实现的

先是上面的常规处理; 如果符号被混淆,或者无符号,如果现象是直接崩溃的话,那就对exit, abort下断,看栈信息,去分析调用栈上下文。如果不崩溃,跳到其他页面,那就针对出现的症状再针对性的分析,比如什么情况会跳转到这种页面而不是正常页面。  只要能够正常运行了,不影响后续的功能分析就好。
 楼主| xifgg 发表于 2019-9-4 12:39
Hmily 发表于 2019-9-4 16:25
图片不能直接粘贴,需要先上传再贴到正文,给你编辑了一下,下次记得这么操作哦。
PInstinct 发表于 2019-9-4 16:55
感谢楼主,看到了耳目一新的干货
 楼主| xifgg 发表于 2019-9-4 17:09
Hmily 发表于 2019-9-4 16:25
图片不能直接粘贴,需要先上传再贴到正文,给你编辑了一下,下次记得这么操作哦。

哇,谢谢大佬。第一次发帖,不懂这些,以后注意。
qtfreet00 发表于 2019-9-4 17:19
如果符号被混淆呢  或者是c层实现的  
minipink 发表于 2019-9-4 17:21
看不懂 这是干嘛用的?
Bds1r 发表于 2019-9-4 17:39
希望多指导IOS逆向 感谢
麦辣鸡腿堡 发表于 2019-9-4 18:24
   感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 18:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表