当前位置: 首页 > news >正文

28.安卓逆向2-frida hook技术-逆向os文件(一)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

工具下载:

链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89

提取码:zy89

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:27.安卓逆向2-frida hook技术-frida-dump(使用firda脚本下载dex文件)

上一个内容写了使用frida脚本下载app源码,也就是砸壳操作,本次开始查找它的加密参数,也就是下图红框的sign参数

image-20250712131906271

然后打开jadx,在app源码中搜索sign"(为什么加"因为sign是一个字符串,在java语言中规定字符串要写在两个"之间),如下图会搜出来很多,点哪一个?

通过观察名字,下图红框里的比较符合,KEY_SIGN,key在这种场景中表示钥匙的意思,然后没有sign参数还访问不通接口,所以它比较符合,所以先从它开始看

然后双击上图红框位置进入之后,再按CTRL+F搜索,KEY_SIGN在哪进行了使用

然后很遗憾搜不到KEY_SIGN使用位置

然后继续观察发现,它还有一个sign

如下图红框这个sign是有使用的,它在构造方法中进行了赋值,然后在getMapParams中获取了值

然后特征就来了,如下图在getMapParams方法中,给Map添加的key和在请求中的key一样

然后开始使用frida调试,在下图红框位置鼠标右击选择复制为frida片段

然后使用下方重启的方式进行frida注入,非重启的方式会被app检测

frida -Uf  com.xxxx.news -l ./sign.js

注入之后刷一下app,让它发送网络数据包,然后如下图红框就可以找到了

如下图

然后getSign方法的入参,根据三个字符串,生成一个字符串

然后继续观察代码,如下图红框,getSign调用了a.b方法也是传入了三个参数

然后在进入a.b方法,如下图红框它调用了a.a方法

这个a是下图红框位置声明的,是SignManager类型

然后进入SignManager类型中,它最终调用了native类型的getSign方法(native是java中的jni,jni让java支持java调用c/c++语言写的代码),这是一个so文件中的方法

如下图它加载了一个叫wtf的库(so)文件,这说明so文件是wtf.so,到这就是java层的最底层,没办法再底层了

so文件去哪找?首先apk文件就是一个zip类型的压缩包,然后找到app的apk文件把它进行解压,解压完进入lib目录里,如下图红框选择arm64-v8a(这是系统架构),一般现代的安卓手机都是它,这个app的so文件在模拟器中就无法使用,模拟器是x86架构,这里没有x86

如下图红框就找到了wtf,so文件会以lib开头,当前这个app就是用这个so文件进行的加密,然后上方可以看到java层传递给了它三个参数,然后返回了一个加密参数,所以接下来就要去分析它这个so是怎样加密的

so文件需要使用ida工具分析,在这继续写会很乱,所以下一章再开始so文件逆向


img

http://www.dtcms.com/a/277597.html

相关文章:

  • 零基础完全理解视觉语言模型(VLM):从理论到代码实践
  • TASK2 夏令营:用AI做带货视频评论分析
  • 【算法】递归、搜索与回溯
  • docker运行redis指定配置+jdk17安装在centos7
  • sklearn study notes[1]
  • uView UI 组件大全
  • spring-ai-alibaba 1.0.0.2 学习(十六)——多模态
  • Python 的 MRO
  • JDBC相关知识点
  • 查看ubuntu磁盘占用方法
  • Prometheus Operator:Kubernetes 监控自动化实践
  • 对测试左移的一些总结和思考
  • Python 数据挖掘实战概述
  • python代码块的表示方法
  • 【惟一最接近10位小数的分数】2022-8-15
  • 06.计算两个日期之间的差值
  • 数学与应用数学核心课程有哪些?全文解析!
  • 【Linux庖丁解牛】— 信号量ipc管理!
  • AI(学习笔记第五课) 使用langchain进行AI开发 load documents(web)
  • 【算法】贪心算法:柠檬水找零C++
  • 基础数论学习笔记
  • 西门子博图PID入门组态编程及调试
  • 代码随想录算法训练营第三十三天|62.不同路径 63. 不同路径 II 343. 整数拆分 96.不同的二叉搜索树
  • Docker(02) Docker-Compose、Dockerfile镜像构建、Portainer
  • SLAM中的非线性优化-2D图优化之激光SLAM cartographer前端匹配(十七)
  • 出现SSL连接错误的原因和解决方案
  • git实际工作流程
  • sql:sql在office中的应用有哪些?
  • 【版本控制】Perforce Helix Core (P4V) 完全入门指南(含虚幻引擎实战)
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要快速生成与检索优化(345)