android逆向过so库签名校验

00- APK已经被混淆,并且有签名校验,

目的是过签名校验,混淆且不用管,直接搜索 使用到的so库名,

 

apk逆向分析.png

 

开始IDA加载so库静态分析。。。。

 

ida.png


直接查看 Exports 导出函数窗口 ,查看到 check_signature 函数

check_signature.png

 

双点check_signature 跳到 IDA View-A 窗口,可以看到有调用获取包名签名的代码,

 

静态分析.png


打开【View -> open subviews -> Strings】显示字符串窗口
可使用【Ctrl + F】 进行关键字搜索。

Strings window窗口.png


找到类名路径,传对象Object 返回 整数型int ,估计是返回签名值,那么动态库里存有hashCode签名值 ,

逆向分析.png


回看IDA View-A 窗口 ,走到函数结束位置,分析返回值,点击补码,
【0xE616FBFD ->[补码]-> -0x19E90403 ->[转十进制] -> -434701315】这个【-434701315】就是此APK安装包的签名值,反码后的十进制为【434701314】,

继续分析.png

 

分析.png

 

点击Xrefs graph to.png

 

点击右鼠标,Xrefs graph to 可生成视图观看

 

视图分析.png


【二进制原码】0000 0000 0000 0000 0000 0000 0000 0011 ,
【反码】取反操作:0 变为1 1变为0; 取反后的结果即为反码
1111 1111 1111 1111 1111 1111 1111 1100 ,
【补码】将反码 +1 得到补码
1111 1111 1111 1111 1111 1111 1111 1101 ,

01- 修改SO签名值

首先先获取自己的使用的签名证书的签名值,这里我新创建一个.keystore签名证书文件,获取的签名值为【-1476456078】,
使用计算器计算,得到结果是【-1476456078 = A7FF1172】,
或者使用【1476456077[反码 十进制转十六进制] -> 5800EE8E[反转换8DEE0058 反码后转十六进制] -> 7211FFA7 [反转就是A7FF1172]】,

 

计算器.png

 

修改目标的地址.png

 

打开【View -> open subviews -> Hex dump 进入 Hex View窗口】
可以按【G】键 地址跳转,【0000132C】修改目标的地址

 

地址跳转.png

将光标放到目标数据,鼠标右键 选择Edit进行数据修改,
修改好后 鼠标右键 选择 应用修改 Apply changes ,
把【FDFB16E6 修改为 7211FFA7】,

 

十六进制修改.png

 

修改完成.png

 

修改后保存,把apk后缀名修改为zip,替换libJNIXiaozhu.so,签名打包完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值