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

简介: 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 调用一下就可以爽爽的采集相关的文章了

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

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

收到请回复~

我们下次再见。

相关文章
|
4月前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
4月前
|
缓存 监控 Android开发
京东 item_get_app 接口深度分析及 Python 实现
京东item_get_app接口可获取商品原始详情数据,包含更丰富的字段和细节,适用于电商分析、价格追踪等场景。需通过认证获取权限,支持字段筛选和区域化数据查询。
|
5月前
|
缓存 数据挖掘 API
淘宝 item_get_app 接口深度分析及 Python 实现
淘宝item_get_app接口是淘宝开放平台提供的移动端商品详情数据获取接口,相较PC端更贴近APP展示效果,支持获取APP专属价格、促销活动及详情页结构,适用于电商导购、比价工具、数据分析等场景。接口采用appkey+appsecret+session认证机制,需申请相应权限。本文提供Python调用示例及使用注意事项,帮助开发者高效对接移动端商品数据。
|
4月前
|
缓存 供应链 开发者
1688 item_get_app 接口深度分析及 Python 实现
1688平台item_get_app接口专为移动端设计,提供商品原始详情数据,包含批发价格、起订量、供应商信息等B2B特有字段,适用于采购决策、供应链分析等场景。接口需通过appkey+access_token认证,并支持字段筛选,返回结构化数据,助力企业实现智能采购与供应商评估。
|
3月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
719 139
|
3月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
392 137
|
3月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
252 154
|
4月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
182 0
|
3月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
363 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章