某汽车资讯App 返回数据解密

简介: 某汽车资讯App 返回数据解密

一、目标


为了防止数据被截获,有些App把返回数据做了加密,比如下面这个:

69.png

content 部分就是密文。我们今天就来搞搞它。


二、步骤

jadx搜索 content"


返回值是个json,那么它一定要把密文解析出来再解密,所以我们先搜索 content",看看有没有什么收获:

70.png

不开心,结果有点多,这个不好办……


hooker


今天介绍一个大佬的新玩具


github.com/CreditTone/…


hooker 是一个基于frida实现的逆向工具包。为逆向开发人员提供统一化的脚本包管理方式、通杀脚本、自动化生成hook脚本、内存漫游探测activity和service和其他任意对象。


听起来很拉风的样子。


按照说明配置好

git clone https://github.com/CreditTone/hooker.git
cd hooker
pip install -r requirements.txt   // 安装依赖


然后先把App启动起来,再运行 ./hooker


这时候会列出当前所有的进程名,如果没有列出来,那就可能是frida-server没有启动

输入 我们要分析的app包名 com.yxxxx.axxxxx,就会进入到交互式控制台,这里提供了几个有意思的功能,不过今天我们暂时用不到。


ex 退出交互式控制台。


hooker替我们生成了一些辅助脚本,我们进入 com.yxxxx.axxxxx 文件夹

fenfeiMac:com.yxxxx.axxxxx feifei$ ls
activity_events.js  log
android_ui.js   object_store.js
attach      objection
click.js    spawn
edit_text.js    spider.py
hook_RN.js    ssl_log.js
hooking     text_view.js
just_trust_me.js  url.js
keystore_dump.js  xinit
kill      xinitdeploy


这里我们用到的是 text_view.js 辅助命令。


为什么呢?


先看看作者的说明


跟踪TextView的setText和getText,获取TextView的真实Class。一般setText的堆栈信息会带出业务层的数据model处理逻辑,进而进一步分析到业务层数据bean封装类。


密文数据总归是要解密成明文显示出来的,我们在显示明文的时候打印出堆栈,不就可以分析它的解密过程了吗?72.png

召唤Jadx73.png

逮住了,顾名思义,应该就是这个 EncryptUtils.O000000o


自动生成hook代码


这时候可以用上 hooker 另一个比较拉风的功能了,自动生成Hook js代码


先回到之前的那个交互式控制台。(怎么回去?退出当前命令,到上级目录 重新输入 ./hooker 命令呗)

fenfeiMac:com.yxxx.axxx fenfei$ cd ..
feifenMac:hooker fenfei$ ./hooker
  PID  Name                                     Identifier                                      
-----  ---------------------------------------  ------------------------------------------------
 2505  ANT HAL Service                          com.dsi.ant.server                              
17295  Analytics                                com.miui.analytics                              
17166  Android Services Library                 android.ext.services   
......
Enter the need to attach package.
: com.yxxx.axxx           
It's com.yxxx.axxx that you have attached app.
--------------------------------------------------
Please enter e, s, j, c or ex command.
a: Discovering activities.
b: Discovering services.
c: Discovering object. eg:'c {objectId}'
d: Object2Explain. eg:'d {objectId}'
v: Discovering view. eg:'v {viewId}'
e: Determines whether a class exists. eg:'e android.app.Application'
s: Discovering classes by a class'regex. eg:'s com.tencent.mm.Message.*'
t: Discovering offspring classes by a class'name. eg:'t com.tencent.mm.BasicActivity'
j: Generating hooked js. eg:'j okhttp3.Request$Builder:build'
k: Generating hooked the string generation js with a keyword. eg:'k {YourKeyword}'
l: Generating hooked the param generation js with a param keyword. eg:'l {YourKeyword}'
m: Discovering so module.
: j com.bxxx.libcommon.tools.Encrypt -o com.bxxx.libcommon.tools.Encrypt.js
Hooking js code have generated. Path is com.yxxx.axxx/com.bxxx.libcommon.tools.Encrypt.js.


ok了,再进入 com.yxxxx.axxxxx 文件夹,跑一下这个js

fenfeiNewMac:hooker feifei$ cd com.yxxx.axxx
feifeiMac:com.yxxx.axxx fenifei$ ./hooking com.bxxx.libcommon.tools.Encrypt.js


结果出来了

74.png


三、总结


大佬们造了很多有意思的轮子,善于使用这些轮子,往往可以事半功倍。 hooker 还有很多有意思的功能等待挖掘。



75.png

好男儿当有一份拉几把倒的情怀,把人生当做一次旅行好了,很多事情其实都无所谓的,看淡些    ——from 鲁迅  [社会社会]


TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。


关注微信公众号: 奋飞安全,最新技术干货实时推送



相关文章
|
监控 安全 数据可视化
java基于微服务的智慧工地管理云平台SaaS源码 数据大屏端 APP移动端
围绕施工现场人、机、料、法、环、各个环节,“智慧工地”将传统建筑施工与大数据物联网无缝结合集成多个智慧应用子系统,施工数据云端整合分析,提供专业、先进、安全的智慧工地解决方案。
394 1
|
传感器 人工智能 监控
Uni-app智慧工地数据大屏可视化监管平台源码带APP
智慧工地的核心是数字化,它通过传感器、监控设备、智能终端等技术手段,实现对工地各个环节的实时数据采集和传输,如环境温度、湿度、噪音等数据信息,将数据汇集到云端进行处理和分析,生成各种报表、图表和预警信息,帮助管理人员了解工地的实时状况,及时做出决策和调整,
878 0
|
存储 JavaScript 小程序
jQuery、vue、小程序、uni-app中的本地存储数据和接受数据是什么?
jQuery、vue、小程序、uni-app中的本地存储数据和接受数据是什么?
203 0
|
9月前
《仿盒马》app开发技术分享-- 确认订单页(数据展示)(29)
上一节我们实现了地址的添加,那么有了地址之后我们接下来的重点就可以放到订单生成上了,我们在购物车页面,点击结算会跳转到一个 订单确认页面,在这个页面我们需要有地址选择、加购列表展示、价格计算、优惠计算、商品数量展示等信息。
243 3
|
存储 移动开发 JavaScript
uni-app页面数据传参方式
uni-app页面数据传参方式
1270 4
|
9月前
|
BI 开发工具 开发者
App全渠道统计方案:如何用一个工具整合所有获客渠道数据?
还在为地推、社群、广告等不同获客渠道的数据分散而烦恼吗?本文将教您如何用一个工具整合所有渠道数据,实现精准的渠道归因与效果分析。
314 0
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
836 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
小程序 前端开发
汽车报价资讯app小程序模板源码
汽车报价资讯app小程序模板源码
205 4
|
Windows
【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释
在Azure App Service中,CPU占比可在App Service Plan级别查看整个实例的资源使用情况。具体应用中仅能查看CPU时间,需通过公式【CPU Time / (CPU核数 * 60)】估算占比。CPU百分比适用于可横向扩展的计划(Basic、Standard、Premium),而CPU时间适用于Free或Shared计划。然而,CPU Percentage包含所有应用及系统占用的CPU,高CPU指标可能由系统而非应用请求引起。详细分析每个进程的CPU占用需抓取Windows Performance Trace数据。
288 40
|
JSON API 网络安全
App数据的爬取
App数据的爬取
1056 3