app逆向实战:某新闻7.38.0版本加固脱壳和参数分析

news2024/9/21 18:38:47
本篇博客旨在记录学习过程,不可用于商用等其它途径

入口

这次研究的是头条数据接口,每次向下滑动即可刷新请求
在这里插入图片描述

抓包

根据抓包结果得知动态参数是stsn,大胆猜测sn的生成跟st有关,其它参数是固定的,后面看生成具体逻辑。
在这里插入图片描述

查壳

使用查壳工具发现app有腾讯加固,使用jadx反编译拿不到有用的代码文件
在这里插入图片描述
在这里插入图片描述

反射大师脱壳(只支持andriod 8以下)

apk下载:反射大师
下载好apk后通过adb install安装到andriod手机,注意事项:反射大师Xposed插件,需要提前安装好Xposed
在这里插入图片描述

安装好后,双击进去开启模块,同时选择要控制的app,接下来最好是断掉网络再脱壳
在这里插入图片描述

打开选中的app,进去首页就能看到六星图案,这就说明反射大师控制成功了

在这里插入图片描述

点击这个六星图案然后选择当前ACTIVITY
在这里插入图片描述

搜索关键词sn,然后点击写出DEX按钮
在这里插入图片描述
好尴尬,到这里才发现反射大师只支持andriod 8一下的版本,服了!!!

frida-dexdump脱壳

运行frida和运行要脱壳的app,然后执行frida-dexdump -FU,需要先安装好frida-dexdump
在这里插入图片描述
现在需要合并脱壳到的dex文件

  1. 将apk文件改名为rar文件
  2. 将脱壳得到的所有dex文件全部放进rar文件中,最好保留rar文件中原有的dex文件
  3. 重新将rar文件改名为apk文件

参数源码定位

使用jadx打开处理后的apk,现在已经能看到非常多的 class 文件了, 证明已经完成脱壳

先搜索"sn",搜出来的结果虽然不多,但是全看了一遍都没有符合期望的
在这里插入图片描述

搜索sn=,观察搜索结果,根据引用代码大概确定红框是具体位置所在
在这里插入图片描述

参数生成分析

这个位置包含了全部请求参数,我们主要看stsn
st的值是通过String.valueOf(valueOf) + ((int) ((Math.random() * 8999.0d) + 1000.0d));得到,这个其实就是对时间戳和随机值的处理
在这里插入图片描述

接下来跟踪sn,双击a(str, z),进入下面的代码,可以看到str2是对多个值进行拼接
在这里插入图片描述

然后进入ces.b(str2),可以到使用的是原生的md5
在这里插入图片描述

以上是关键参数的生成逻辑,通过跟踪代码,我们确定除了NativeSecureparam.readMD5Key&st=&sn=的值不确定外,其它参数都是固定值并可以通过frida hook提取,而&st=很明显是时间戳,&sn=需要依赖&st=NativeSecureparam.readMD5Key经过md5生成,所以接下来我们要确定NativeSecureparam.readMD5Key的生成逻辑。

一般来说,我们大可以直接frida hook打印NativeSecureparam.readMD5Key的值,因为理论上它会是固定值,不过这里我们还是使用IDA打开ifeng_secure.so文件看一下代码吧。
在这里插入图片描述
注意:如果IDA打开so文件报Oops! internal error 40343 occured. ,是因为你的安装路径或者文件路径有中文,改成英文就可以了

so 文件分析

这是打开后的界面
在这里插入图片描述

选择search Text模式及,输入readMD5Key搜索
在这里插入图片描述

命中后会把代码高亮,双击进去
在这里插入图片描述

按下快捷键F5查看 C 语言伪代码
在这里插入图片描述

再次通过鼠标右键, 单击Hide casts, 把代码转成方便阅读的格式,这段代码大体只是把一些参数和字符串拼到了一起, 返回一个新的字符串,由于涉及到系统寄存器和特定内存地址,没法直接得出结果,需要进一步动态调试才行。
在这里插入图片描述

Frida Hook

前面我们已经知道sn的只是在ces.b(str2)生成的,这里就hook看看啥情况。不过这里看代码我们只知道代码所在类是ces,但是包名不明确,这里需要遍历app所有调用类来确定固定的包名
在这里插入图片描述

过了一遍,这里就确定完整的类是ces了,搞它!
在这里插入图片描述

hook代码
在这里插入图片描述

运行结果
在这里插入图片描述

这里直接sn encrypt arg跟请求参数对比,就能确定它的值怎么来的了
直接说结论:其实变化的就st的值,其它在同一台手机是一致的
加密文本:

  • 7.38.0:gv
  • ifengnews:proid
  • 2899:publishid
  • v001lN2NzEWMiFjNilDNhhjZ40gNgfr3r340gf:deviceid
  • 1722448681:st
  • 2546:四位随机值,
  • acF%#*{_b1mQt@…ifvy:NativeSecureparam.readMD5Key

加密结果: 原生md5加密结果

算法生成

在这里插入图片描述

补充

对于ltoken的值,下面是它的大致流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后续代码看不懂就直接hook看具体值~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1965751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows如何让右键点击时不折叠选项(展开显示更多选项)?

升级windows后,发现右键菜单自动折叠了,用起来很不方便,有没有办法,让右键菜单自动展开那 ? 期望的效果是这样的: 具体操作请参考我这篇公众号文章。 windows如何让右键点击时不折叠选项(展开…

细说MCU构建两路包含ADC和DAC的测量系统的方法

目录 一、参考工程 二 、硬件配置 1.配置GPIO 2.配置ADC1和ADC2 3.配置DAC1和DAC2 4.配置定时器 5.配置串口 6.选择时钟源和Debug 7.配置系统时钟和ADC时钟 三、代码修改 1.定义DAC波形数据 2.重定义外部中断回调函数 3.重定义ADC回调函数 4.初始化 5.变…

校园气膜体育馆:快速搭建高端多功能运动场—轻空间

在现代校园建设中,体育设施的完善至关重要。气膜体育馆作为一种创新的解决方案,因其快速搭建、高端品质和多功能使用而受到广泛关注。它能够满足包括篮球和羽毛球在内的多种体育项目需求,为校园提供了一个理想的运动场地。 迅速搭建&#xff…

网工内推 | 上市公司网工,14薪,IP/软考认证优先,带薪年假

01 威派格 🔷招聘岗位:网络工程师 🔷岗位职责: 1.负责项目的网络规划、设计、实施;网络基础架构的持续优化。 2.负责网络设备和网络环境的日常维护,排错,分析故障原因,提供维护方…

【调试笔记-20240731-Linux-Wordpress 添加 wp-weixin 插件支持微信用户扫码注册登录】

调试笔记-系列文章目录 调试笔记-20240731-Linux-Wordpress 添加 wp-weixin 插件支持微信用户扫码注册登录 文章目录 调试笔记-系列文章目录调试笔记-20240731-Linux-Wordpress 添加 wp-weixin 插件支持微信用户扫码注册登录 前言一、调试环境操作系统:Windows 10 …

网页出现 404 这些代表什么你知道吗?带你了解网络请求状态码

每个状态码都代表不同的含义,下面我们就一起来看一看这些状态码都代表什么意思。 网络请求状态码 网络请求状态码是服务器在响应客户端请求时返回的三位数字代码。这些代码用于指示请求的结果,包括成功、重定向、客户端错误和服务器错误。那网络状态码…

Langchain入门教程

1、框架介绍 LangChain 是一个用于构建大语言模型应用的开源框架,2022年10月作为开源项目推出,目前已经在开发社区颇具名气,构建起了自己的一片开发生态。 LangChain 在 2023 年 3 月获得了 Benchmark Capital 的 1000 万美元种子轮融资&am…

用于实现无线数据传输和通信连接的2.4GHz无线芯片-RF298

2.4GHz无线射频收发芯片是一种常见的无线通信模块,它工作在2.4GHz频段,用于实现无线数据传输和通信连接;通常用于各种无线通信设备,如手机、Wi-Fi路由器、蓝牙设备、无线鼠标键盘、电视和机顶盒遥控器、智能家居及物联网系统、遥控…

数据结构_study(五)

树 n(n>0)个结点的有限集 空树:n0 在非空树中: 有且仅有一个特定的根root结点; n>1时,其余结点可以分为m个互不相交的有限集,其中每个集合也是一棵树,根的子树 一对多 结点的度:结点拥…

SpringBoot整合Flink CDC实时同步postgresql变更数据,基于WAL日志

SpringBoot整合Flink CDC实时同步postgresql变更数据,基于WAL日志 一、前言二、技术介绍(Flink CDC)1、Flink CDC2、Postgres CDC 三、准备工作四、代码示例五、总结 一、前言 在工作中经常会遇到要实时获取数据库(postgresql、m…

“等保测评下的数据加密与隐私保护“

在当今数字化时代,数据已成为企业最宝贵的资产之一。然而,数据泄露、隐私侵犯等事件频发,不仅给企业带来经济损失,更严重损害了公众信任。等保测评,作为国家信息安全等级保护制度的重要组成部分,对数据加密…

微信小程序开发:宿主环境—组件

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Python安装与环境配置,2024最新,超详细保姆级教程!

安装Python 来到Python官网:https://www.python.org/ Downloads>Windows: 选择想要的版本后点击进去: 下载后点击安装: 在本地电脑输入命令提示符:winR 环境变量配置 若执行命令提示符,输入Python后&…

Centos7.9开机自启更新系统时间

在CentOS 7.9中设置自动同步系统时间,主要依赖于NTP(Network Time Protocol)服务。以下是详细的步骤: 1、安装NTP服务 首先,你需要确保NTP服务已经安装在系统上。如果尚未安装,可以通过以下命令进行安装&…

电脑怎么更新系统

电脑系统的更新不仅可以带来新的功能和改进,还能提升系统的安全性和稳定性。许多用户对于如何更新系统可能不太了解,本文将详细介绍电脑系统更新的方法和步骤,帮助大家轻松完成系统更新。 为什么要更新系统?在了解如何更新系统之…

532nm绿光激光模组技术原理及特征

在现代科技飞速发展的今天,绿光激光模组作为一种高精度、高效率的光学器件,在工业加工、指示测量、演示展示等领域展现出了其独特的优势。其中,532nm绿光激光模组以其稳定的光束质量和广泛的应用范围,成为了市场上的热门产品。接下…

如何将幻灯片中的图片背景设置为透明

在制作幻灯片时,我们经常需要插入图片来丰富内容,提升视觉效果。但有时,图片的背景可能会干扰幻灯片的整体设计,这时将图片背景设置为透明就显得尤为重要。本文将详细介绍如何在常用的幻灯片制作软件中实现这一效果,帮…

【Golang 面试 - 进阶题】每日 3 题(十)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

精选3款国内wordpress 主题,建站首选

WordPress作为一款功能强大且易于使用的建站平台,已经成为了许多企业和个人搭建网站的首选。为了帮助大家更好地选择适合自己的WordPress主题,小编将为大家推荐三款国内优秀的WordPress主题:子比主题、OneNav主题和RiTheme主题。 1.子比主题…

施耐德电气荣获HMS工业网络颁发的第1000万个Anybus模块奖

全球可持续能源解决方案领导者施耐德电气,荣获 HMS 工业网络颁发的第 1000 万个 Anybus 模块奖。通过将 Anybus 网络连接接口集成到其变频器系列中,施耐德电气为客户提供了多种可根据性能和能效进行微调的变频器。这一双重优势不仅提升了客户的运营效率&…