吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11885|回复: 27
收起左侧

[Android 原创] 搜狐视频 破解签名校验简单分析

[复制链接]
cz5420 发表于 2015-8-14 20:21
本帖最后由 cz5420 于 2015-8-14 20:33 编辑
搜狐视频apk直接重新签名再安装会闪退,这种情况多为签名校验,破解校验现在多数需要修改so文件。

首先反编译apk,然后在反编译目录下全局搜索signature
1.png

搜索结果如下:
2.png

容易看出是在libsecurities.so中校验的,smali中都是些无关紧要的东西
3.png

将libsecurities.so拖进IDA中分析
4.png

然后“视图”——“打开子视图”——“字符串”
5.png

搜索signature
此处常用的关键词有sign,signature,checkSign,signCheck,getPackageManager,getPackageInfo,verify,same等

6.png
第一处搜索结果:
7.png

点开
8.png

继续
9.png

按空格键切换视图
a.png

这个好像只是获取KeyStore,找的地方不对。退回去看一下
b.png

same,don't same,看来这儿才是关键,接着来到流程图
c.png

下图箭头所指便是要修改的地方
d.png
将MD5_KEY_ptr向上数0x1EFE处的数据放入R3中,寻址什么的,加加减减的我也不懂。。。但最后一步跳转还是要知道的
CMP     R0, #0
BNE     loc_1F2A
意思是将R0和0比较,如果不相等就跳到loc_1F2A,即图中绿色箭头指向的地方,真跳到这儿就挂了,因为重新打包apk后R0是不等于0的,所以只需将BNE改为BEQ即可,不等则跳改为等于则跳

点一下要修改的地方,然后切换到Hex(十六进制)窗口
e.png

ARM指令跟机器码之间的恩怨纠葛反正我是不懂,来看看@淡然出尘 大牛是怎么说的
首先可以肯定所有的机器码都是二进制,只是为了好看和压缩体积,以16进制的ASCII码显示。
arm汇编语言的添加码:
0000   EQ              相等
0010   CS/HS           进位/无符号数大于等于
0100   MI              减/负数
0110   VS              溢出
1000   HI              无符号数大于
1010   GE              有符号大于等于
1100   GT              有符号大于
1110   AL              任何条件
0001   NE              不等
0011   CC/LO           混进位/无符号数小于
0101   PL              加/正数或0
0111   VC              没溢出
1001   LS              无符号数小于等于
1011   LT              有符号数小于
1101   LE              有符号数小于等于
1111   -
以上的条件码对应的机器码都是二进制形式表现的。但是so文件则是以十六进制展现的,所以需要将二进制转换为十六进制才行。以EQ为例,二进制码为0000,转成16进制为0,BEQ的跳转语句即为0A.
同理,BNE对象的十六进制字节码为1A,BLE对应的为DA,BGE对应的是AA,BAL,也就是无条件跳转B对应的是EA

如此我们便知道将D1改为D0即可
复制上图红框框中的偏移地址,然后用C32ASM打开libsecurities.so为十六进制,“编辑”——“跳到”,粘贴偏移地址,定位
f.png
g.png
将D1改为D0,保存,再重新打包apk就行了。

@世事繁华皆成空 大牛的方法跟这个不一样。
俺发帖之前发消息问过繁华哥哥,允不允许俺把他的方法也写进帖里,可是当俺鼓足勇气写下那些深藏心里的话然后点击“发送”时,“抱歉,该用户只接收好友发送的短消息”,俺的内心几乎是崩溃的。但最后俺还是毅然决然地写下了最后这部分!如果繁华哥哥怪我,那肯定是因为他长得没我帅~

繁华大牛的方法:
h.png
将CMP     R0, #0改为CMP     R0, R0,那就必然相等咯,对应的十六进制就是把00 28改80 42

免费评分

参与人数 9威望 +1 热心值 +9 收起 理由
听鬼哥说故事 + 1 热心回复!
yangbing965 + 1 谢谢@Thanks!
欧盆饭 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
淡然出尘 + 1 我很赞同!
Mouette + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Ajqn520c + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
angellball + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
James123 + 1 谢谢@Thanks!
qtfreet00 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

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

 楼主| cz5420 发表于 2015-8-14 22:02
世事繁华皆成空 发表于 2015-8-14 21:14
意思其实都是一样的,不过你这种找关键点的方式不好,开着ddms的话,key dont same是直接打印出来的,一下 ...

大牛语录,我的笔呢,我要记下来。
我是小白并不知道ddms是什么东西,这个也是瞎猫碰上死耗子
就快开学了,以后要忙别的了,不然毕业都没饭吃啊繁华哥哥不是刚工作不久吗感觉怎么样
laofan 发表于 2017-8-11 14:51
@@cz5420 大神,,BEQ的跳转语句即为0A.
同理,BNE对象的十六进制字节码为1A,BLE对应的为DA,BGE对应的是AA,BAL,也就是无条件跳转B对应的是EA

如此我们便知道将D1改为D0,这个不是0A么,为啥突然要修改D1呢不是很懂,求指导
88酷行天下 发表于 2015-8-14 20:30
88酷行天下 发表于 2015-8-14 20:31
来个成品。。。。。
qtfreet00 发表于 2015-8-14 20:38
膜拜大牛
Mouette 发表于 2015-8-14 20:48
看不懂,膜拜大牛
qtfreet00 发表于 2015-8-14 21:14
意思其实都是一样的,不过你这种找关键点的方式不好,开着ddms的话,key dont same是直接打印出来的,一下子就找到了,不一定每个签名验证都是signature,而且有很多
头像被屏蔽
lengyue52pojie 发表于 2015-8-14 21:32
提示: 作者被禁止或删除 内容自动屏蔽
tiandi19920127 发表于 2015-8-15 09:29
虽然我没看懂 但是感觉好牛B
qtfreet00 发表于 2015-8-15 10:19
cz5420 发表于 2015-8-14 22:02
大牛语录,我的笔呢,我要记下来。
我是小白并不知道ddms是什么东西,这个也是瞎猫碰上死耗子
...

天天打酱油
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 01:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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