Crack App | 某搜索 App 中关于 x 信文章检索功能的加密参数分析(Frida Hook 篇)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Crack App | 某搜索 App 中关于 x 信文章检索功能的加密参数分析(Frida Hook 篇)

今日目标

今天的目标是很多读者朋友在采集微信文章时常用站的 app 版本

aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9zZWFyY2gvNjU1NTQ3NDYwMzMwMTAyMDk0MQ==

抓包分析

抓包使用的是 Charles + Postern 的组合

使用大黄鸟 app 抓包也是可以的,Charles 看着会更舒服一些

打开 app 搜索任意内容,切换到微信栏目就可以抓到以下的请求包了

点击这个请求可以看到请求参数还有请求的结果都是加密的

请求的参数是k、v、u、r、g、p的名字,所以通过参数名检索的方法很难定位到很准确的结果

静态分析定位逻辑

apk 包推荐使用 jadx 1.2 打开,用 1.3 搜索的时候老是崩溃

通过以请求链接的部分v2.get作为搜索关键词可以定位到下面的搜索结果

最后一个搜索的结果和我们的请求链接最匹配

点进去可以看到下面的内容

可以看到图中红框的部分应该是请求的部分,红框下面是返回的部分

分别经过了encryptdecrypt两个方法

先讲讲我是怎么确定是这两个方法的

红框部分中定义了一个hashMap,通其中put了一个Content-Length,这个搞过 js 逆向的都知道,这个是代表了请求提交内容的长度

这个长度是通过encrypt.length得到的,而encrypt是通过ScEncryptWall.encrypt(str, str2, str3);得到的

而返回部分的代码是在判断了f0.b得出的,在f0.b的判断中有一关于response success的输出,进一步确认了我们的判断

所以这里的encryptdecrypt两个方法是分析的重点

进一步追进去可以看到这两个方法都是native方法,定义在libSCoreTools.so里面

动态调试确认逻辑

既然是 native 方法,通过 IDA 分析这几个也是导出方法,这里 hook 的方法就很多了。

我们直接用frida hook看下出入参看看是不是符合我们在上一部分的猜想

先看encrypt

function hook_encrypt(){
    Java.perform(function () {
        var ScEncryptWall = Java.use('包名.类名');
        ScEncryptWall.encrypt.implementation = function (str1,str2,str3) {
            console.log('str1: ', str1);
            console.log('str2: ', str2);
            console.log('str3: ', str3);
            var res = this.encrypt(str1, str2, str3);
            console.log('res: ', res);
            return res;
        }
    })
}
setImmediate(hook_encrypt)

通过hook可以得到以下结果

str1 = 请求的 url
str2 = 请求提交的参数(明文)
str3 = 空

返回的结果就是加密好的参数了

同样的hook decrypt

function hook_decrypt(){
    Java.perform(function () {
        var ScEncryptWall = Java.use('包名.类名');
        ScEncryptWall.decrypt.implementation = function (data) {
            console.log('data: ', data);
            var res = this.decrypt(a);
            console.log('res: ', Java.use('java.lang.String').$new(res));
            return res;
        }
    })
}
setImmediate(hook_decrypt)

打印结果如下

参数是请求的返回值,解密的结果是列表页的内容

完事~,Python RPC 调用一下就可以爽爽的采集相关的文章了

好了,以上就是今天的全部内容了。

我是没有更新就在摸鱼的咸鱼

收到请回复~

我们下次再见。

相关文章
|
1月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
148 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
1月前
|
Web App开发 编解码 算法
布谷一对一直播源码开发:阿里云视频语音通话社交交友App的必备功能
在当今移动社交领域,一对一视频和语音通话功能已成为用户期待的基础配置。从熟人社交到陌生人交友,从专业咨询到情感陪伴,实时音视频互动能力直接决定了社交App的用户留存和市场竞争力。山东布谷科技将深入探讨一对一直播源码开发高质量一对一视频和语音通话功能的关键要素和技术实现方案。
布谷一对一直播源码开发:阿里云视频语音通话社交交友App的必备功能
|
13天前
|
数据采集 数据可视化 数据挖掘
基于Python的App流量大数据分析与可视化方案
基于Python的App流量大数据分析与可视化方案
|
15天前
|
移动开发 开发工具 数据库
App内“邀请好友“功能:如何准确追踪邀请关系并自动发放奖励
探讨如何准确追踪APP“邀请好友”功能中的邀请关系并自动发放奖励
47 2
|
1月前
|
搜索推荐 数据挖掘
直播App程序源码开发前期功能调研:运营角度思考如何有利于推广运营获利
在直播App程序源码开发的前期,功能调研至关重要。除了技术实现的可行性,更需要从运营角度出发,思考哪些功能能够助力推广运营,最终实现获利。山东布谷科技从运营角度,对直播App功能进行调研分析
|
2月前
|
开发框架 缓存 搜索推荐
PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
嗨,大家好,我是小华同学。PiliPala 是一个基于 Flutter 开发的 BiliBili 第三方客户端,提供流畅、个性化的使用体验。核心功能包括视频浏览与推荐、用户互动、丰富的播放设置、多维度搜索和个性化主题等。相比官方客户端,PiliPala 功能更丰富、性能更优、界面更美观。
166 14
|
2月前
|
Web App开发 前端开发 安全
语音交友app系统源码功能及技术研发流程剖析
语音交友App核心功能包括语音聊天(一对一、群聊、语音消息)、语音房间(直播、主题房、管理)、社交互动(好友、关注、打赏)、内容发现、音效美化、通知提醒及安全隐私等。开发流程涵盖需求分析、技术选型(前端、后端、数据库、实时通信)、UI/UX设计、前后端开发、实时通信集成、音效处理、测试优化、部署上线及运营维护,确保稳定高效运行并持续优化用户体验。
|
4月前
|
PHP
全新uniapp小说漫画APP小说源码/会员阅读/月票功能
价值980的uniapp小说漫画APP小说源码/会员阅读/月票功能
206 20
|
4月前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
245 4
|
6月前
|
UED

热门文章

最新文章

下一篇
oss创建bucket