首页
论坛
专栏
课程

[原创]最新QQ APK逆向重打包成功!

2015-12-26 23:36 35169

[原创]最新QQ APK逆向重打包成功!

2015-12-26 23:36
35169
首先声明,本文章纯粹是出于个人逆向爱好学习,请勿用于其它目的!!!

    不得不说QQ的签名验证机制做的比微信好,以至于让我这菜鸟话费了大量的时间在定位分析上了(过程的心酸就不在这诉说了啊,你懂的。。。)。

    好了,废话不多说,大致说下QQ的签名验证实现思路,成功重打包过QQ的亲们,我相信你们遇到过这样的情况,APK是重打包成功了,但是APK不能用了,登录不了,而且老是提示Appid is invalid!.

   没错,这个由于QQ做了签名验证(而且还不是一般的JAVA层代码验证,可恶的腾讯竟然把签名验证放到了so包里面,更加可恶的是这个so包竟然不是放在常规的libs目录下),在经过了N般波折后,终于还是找到了这个签名验证so包所在\assets\lib\armeabi下的libcodecwrapperV2.so。
   
     接下来就是使用IDA挂起这个so,搜索到里面的onReceData函数,进入到里面的ParseRecvData,最终可以在里面看到真正的签名验证“元凶”了——:ParsePhSigCheck,请注意.text:0001B43A                 BEQ     loc_1B480,意思是如果条件符合就会跳转到loc_1B480,否则就往下执行到ParsePhSigCheck检验签名,所以破解的思路就来了,绕过签名验证不就可以了吗,没错,就是这个简单粗暴。把BEQ 指令修改成BNE就OK了(至于如何修改so包,请百度参考关于鬼哥的修改so包教程!)

MOV     R3, SP
.text:0001B434                 ADDS    R3, #0x57
.text:0001B436                 LDRB    R3, [R3]
.text:0001B438                 CMP     R3, #0
.text:0001B43A                 BEQ     loc_1B480
.text:0001B43C                 LDR     R1, [SP,#0x68+var_5C]
.text:0001B43E                 LDR     R2, [SP,#0x68+var_60]
.text:0001B440                 LDR     R3, [SP,#0x68+var_40]
.text:0001B442                 MOVS    R0, R1          ; this
.text:0001B444                 MOVS    R1, R2          ; _JNIEnv *
.text:0001B446                 MOVS    R2, R3          ; CSSOData *
.text:0001B448                 BL      _ZN13CCodecWarpper15ParsePhSigCheckEP7_JNIEnvRK8CSSOData ; CCodecWarpper::ParsePhSigCheck(_JNIEnv *,CSSOData const&)
.text:0001B44C                 LDR     R3, [SP,#0x68+var_40]
.text:0001B44E                 CMP     R3, #0
.text:0001B450                 BEQ     loc_1B46A
.text:0001B452                 LDR     R3, [SP,#0x68+var_40]
.text:0001B454                 CMP     R3, #0
.text:0001B456                 BEQ     loc_1B466
.text:0001B458                 LDR     R3, [SP,#0x68+var_40]
.text:0001B45A                 LDR     R3, [R3]
.text:0001B45C                 ADDS    R3, #4
.text:0001B45E                 LDR     R3, [R3]
.text:0001B460                 LDR     R2, [SP,#0x68+var_40]
.text:0001B462                 MOVS    R0, R2
.text:0001B464                 BLX     R3

    修改so包后,重新打包,运行,登录,恭喜你,可恶的Appis is invallid不见了,APK也可以正常登录使用了。一下是修改后的APK,别客气,拿去用(仅供逆向学习参考)。

QQ破解版:http://pan.baidu.com/s/1hrj9Sri
(注:不支持在模拟器上运行,至于原因,有待研究)

[公告]安全测试和项目外包请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (38)
Zkeleven 2015-12-26 23:55
2
0
为楼主的分享精神点个赞!
Netfairy 11 2015-12-27 00:14
3
0
感谢楼主分享
lionnnn 2015-12-27 00:41
4
0
厉害! 请教用的什么工具反编译的apk?
地狱怪客 2 2015-12-27 01:13
5
0
备份一下内容,坐等消失。
YLSHELLO 2015-12-27 09:22
6
0
apktool+Eclipse+IDA PRO+DDMS+010 Editor+jeb
wongnet 2015-12-27 10:36
7
0
thanks,get.
rongkao 2015-12-27 10:38
8
0
坐等被发传票
靴子 2015-12-27 11:13
9
0
和原版有什么改动?
Dstlemoner 2015-12-27 11:24
10
0
腾讯律师函。。。。话说改包。。没啥改的吧。。广告又不影响。。
川美 2015-12-27 14:01
11
0
貌似很不容易,你就折腾出来了,牛
silence刘 2015-12-27 14:16
12
0
mark
dwlsxj 2015-12-27 15:10
13
0
mark
Zkeleven 2015-12-27 15:56
14
0
可以插入恶意代码啊,比如在登录界面偷取用户名和密码。
Dstlemoner 2015-12-27 17:22
15
0
安卓手机都有杀毒软件,md5 和 sha1都不对。。。
vVv一 2015-12-27 22:28
16
0
请教一下如何定位到so的?
无泪城 2015-12-28 08:56
17
0
安卓手机的杀毒软件基本上没用!!!!!
tiany 2015-12-28 09:16
18
0
每发布一个版本,他们是把MD5提交给杀毒的,这些杀毒就靠这MD5值杀,虽然楼主很牛逼改成功了,但是这杀毒如果盯上,是真就没办法了。
vVv一 2015-12-28 10:09
19
0
测试不行 啊,安装你的破解版还是会有appid is invalid!提示~
YLSHELLO 2015-12-28 10:54
20
0
只支持在真机上运行
Sollage 2015-12-28 14:40
21
0
感谢楼主分享
jieniruyan 2015-12-28 16:21
22
0
同求,如何定位到so里校验代码部分的。
szxwlp 2015-12-28 23:27
23
0
于是QQ又更新了!
coody 2016-3-16 09:45
24
0
留个脚印
burybug 2016-7-22 11:50
25
0
你好,尝试过程中,有2个问题请教下。
1.楼主你是怎么反编译QQ6.1.0的,它资源文件被混淆了,apktool最新版2.1.1编译出错,
Exception in thread "main" brut.androlib.AndrolibException: Multiple res specs: attr/name


2.下载网盘你破解后的apk,反编译后,发现res下所有的layout.xml不见了,只有value资源,这是啥原因?
KiOsp 2016-7-22 12:00
26
0
学习了!
哥也会丨掉毛 2016-8-18 18:15
27
0
用ide 动态调试
哥也会丨掉毛 2016-8-18 18:16
28
0
他没有编译资源文件直接用的-O
helinze 2016-8-19 12:49
29
0
mark一下,此事非常好
burybug 2016-8-19 14:37
30
0
感谢!
试了最新版本6.5.0,找到这个关键点,修改之后重打包,还是提示Appid is invallid!
可能是加了其他判断,楼主要是能贴出分析思路,怎么找到关键点就好了
markypq 2016-8-19 15:33
31
0
替换掉so文件怎么重新打包啊, 我这提示签名错误无法安装
androidssd 2016-8-24 10:13
32
0
感谢楼主分享啊
又见飞刀z 2016-8-25 21:48
33
0
@楼主,我这也有个软件的签名验证,可把我愁死了,死活都找不到验证代码在哪,你要是有时间的话能帮我看看吗?
地址附上:http://pan.baidu.com/s/1geQv1zP
周週 2017-1-9 18:36
34
0
66666666
zhengsidie 2017-1-16 16:40
35
0
问下楼主,你是怎么定位到这个so文件的。。。。
zhengsidie 2017-1-17 11:04
36
0
请问楼主是如何定位签名代码所在位置的。。。在java层搜signature会出来一堆。。。作者有什么好的方法定位吗?需要用到什么特殊的方法吗?
colinjian 2017-1-19 12:25
37
0
高手啊。。。。
无语网上 2018-3-3 15:29
38
0
厉害了。。。。
魔尊伏仙 2018-3-5 07:53
39
0
唯有热情的回复,才有优质的分享!
游客
登录 | 注册 方可回帖
返回