搜狐视频 破解签名校验简单分析
本帖最后由 cz5420 于 2015-8-14 20:33 编辑搜狐视频apk直接重新签名再安装会闪退,这种情况多为签名校验,破解校验现在多数需要修改so文件。
首先反编译apk,然后在反编译目录下全局搜索signature
搜索结果如下:
容易看出是在libsecurities.so中校验的,smali中都是些无关紧要的东西
将libsecurities.so拖进IDA中分析
然后“视图”——“打开子视图”——“字符串”
搜索signature
此处常用的关键词有sign,signature,checkSign,signCheck,getPackageManager,getPackageInfo,verify,same等
第一处搜索结果:
点开
继续
按空格键切换视图
这个好像只是获取KeyStore,找的地方不对。退回去看一下
same,don't same,看来这儿才是关键,接着来到流程图
下图箭头所指便是要修改的地方
将MD5_KEY_ptr向上数0x1EFE处的数据放入R3中,寻址什么的,加加减减的我也不懂。。。但最后一步跳转还是要知道的
CMP R0, #0
BNE loc_1F2A
意思是将R0和0比较,如果不相等就跳到loc_1F2A,即图中绿色箭头指向的地方,真跳到这儿就挂了,因为重新打包apk后R0是不等于0的,所以只需将BNE改为BEQ即可,不等则跳改为等于则跳
点一下要修改的地方,然后切换到Hex(十六进制)窗口
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为十六进制,“编辑”——“跳到”,粘贴偏移地址,定位
将D1改为D0,保存,再重新打包apk就行了。
@世事繁华皆成空 大牛的方法跟这个不一样。
俺发帖之前发消息问过繁华哥哥,允不允许俺把他的方法也写进帖里,可是当俺鼓足勇气写下那些深藏心里的话然后点击“发送”时,“抱歉,该用户只接收好友发送的短消息”,俺的内心几乎是崩溃的。但最后俺还是毅然决然地写下了最后这部分!如果繁华哥哥怪我,那肯定是因为他长得没我帅~{:1_924:}
繁华大牛的方法:
将CMP R0, #0改为CMP R0, R0,那就必然相等咯,对应的十六进制就是把00 28改80 42
世事繁华皆成空 发表于 2015-8-14 21:14
意思其实都是一样的,不过你这种找关键点的方式不好,开着ddms的话,key dont same是直接打印出来的,一下 ...
大牛语录,我的笔呢,我要记下来。
我是小白{:1_907:}并不知道ddms是什么东西,这个也是瞎猫碰上死耗子
就快开学了,以后要忙别的了,不然毕业都没饭吃啊{:1_923:}繁华哥哥不是刚工作不久吗{:1_918:}感觉怎么样
@@cz5420 大神,,BEQ的跳转语句即为0A.
同理,BNE对象的十六进制字节码为1A,BLE对应的为DA,BGE对应的是AA,BAL,也就是无条件跳转B对应的是EA
如此我们便知道将D1改为D0,这个不是0A么,为啥突然要修改D1呢不是很懂,求指导 谢谢分享。。。。。。。。。。。。。 来个成品:loveliness:。。。。。 {:301_976:}膜拜大牛 看不懂,膜拜大牛{:301_1003:} 意思其实都是一样的,不过你这种找关键点的方式不好,开着ddms的话,key dont same是直接打印出来的,一下子就找到了,不一定每个签名验证都是signature,而且有很多
虽然我没看懂 但是感觉好牛B cz5420 发表于 2015-8-14 22:02
大牛语录,我的笔呢,我要记下来。
我是小白并不知道ddms是什么东西,这个也是瞎猫碰上死耗子
...
天天打酱油