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

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

 

android逆向过so库签名校验

apk逆向分析.png

 

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

 

android逆向过so库签名校验

ida.png


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

android逆向过so库签名校验

check_signature.png

 

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

 

android逆向过so库签名校验

静态分析.png


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

android逆向过so库签名校验

Strings window窗口.png


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

android逆向过so库签名校验

逆向分析.png


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

android逆向过so库签名校验

继续分析.png

 

android逆向过so库签名校验

分析.png

 

android逆向过so库签名校验

点击Xrefs graph to.png

 

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

 

android逆向过so库签名校验

视图分析.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]】,

 

android逆向过so库签名校验

计算器.png

 

android逆向过so库签名校验

修改目标的地址.png

 

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

 

android逆向过so库签名校验

地址跳转.png

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

 

android逆向过so库签名校验

十六进制修改.png

 

android逆向过so库签名校验

修改完成.png

 

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

相关文章:

  • 2021-10-19
  • 2021-11-05
  • 2021-12-09
  • 2022-12-23
  • 2021-09-16
  • 2021-07-18
猜你喜欢
  • 2021-12-26
  • 2021-07-01
  • 2021-08-05
  • 2021-08-20
  • 2021-11-28
  • 2021-12-18
相关资源
相似解决方案