美文网首页
android逆向过so库签名校验

android逆向过so库签名校验

作者: nilzz | 来源:发表于2020-01-03 06:10 被阅读0次
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,签名打包完成!

相关文章

网友评论

      本文标题:android逆向过so库签名校验

      本文链接:https://www.haomeiwen.com/subject/aiiaoctx.html