文章总结: 本文记录了某App加密请求包的逆向分析与Hook实战。作者通过Jadx反编译定位关键类,利用Hook技术拦截getParams及HttpParams.put方法,成功解密并修改请求参数,最终锁定关键参数positionCode。内容涵盖了从抓包定位、堆栈追踪到脚本编写的完整流程,为移动安全测试提供了绕过加密的有效思路。
综合评分: 78
文章分类: 逆向分析,移动安全,实战经验
逆向实战|某App加密请求包抓包与Hook技巧解析
原创
EnhancerSec
EnhancerSec
2025年12月25日 10:00
福建
在移动应用安全测试与逆向分析过程中,我们常常会遇到请求数据被加密的情况。今天,我们就以某App为例,一步步拆解其加密请求的处理方式,并分享如何通过Hook技术拦截并修改请求参数。
一、初见端倪:加密的请求包
与一些防抓包措施严格的App不同,某App并没有阻止BurpSuite等代理工具抓取流量,而是直接对请求包内容进行了加密。这意味着我们虽然能抓到包,但看到的是一串密文,无法直接阅读或修改。
二、反编译与初步分析
首先,我们使用 Jadx-gui 对App进行反编译。这一步通常用于检查App是否进行了加固或代码混淆,首先,我们使用 Jadx-gui 对App进行反编译。这一步通常用于检查App是否进行了加固或代码混淆。
三、定位关键接口
通过全局搜索关键词(如接口路径),我们找到了疑似处理网络请求的类。这里出现了两个可能的目标,我们选择其中一个进行Hook尝试。
四、Hook响应与请求
我们首先尝试Hook响应处理类,但发现并没有触发。于是转向另一个可能处理请求加密的类。
果然,在这里我们找到了处理请求参数的方法。通过打印调用堆栈,我们逐步追溯到了关键方法:getParams。
五、深入参数构造过程
在getParams方法中,我们发现参数是通过HttpParams的put方法逐个添加的。于是我们决定Hook put方法,实时查看参数名与参数值。
由于put方法有重载,我们使用overload指定具体方法进行Hook。
Hook出来,a就是参数,b就是参数值,因为我们找的是服务员,换一个,我们找另一个工种。
六、定位发送请求的位置
接下来,我们需要找到最终发送请求的地方。通过代码分析,发现该类同时支持GET和POST请求。
我们的目标是在请求发出之前,拦截并修改参数。流程大致如下:
客户端 → BurpSuite(代理) → 服务端
七、编写Hook脚本
最终,我们编写了 Hook脚本,在请求发出前拦截put方法,实时查看并修改参数。通过测试发现,决定请求结果的关键参数是 positionCode。
Hook脚本核心代码如下(示意):
加入我们了解更多
团队招生通道持续开启,加入我们,可学习漏洞挖掘、爬虫等实用技术,获取实战指导,助力你像往期学员一样,在技术创收中实现突破,收获属于自己的赏金成果。
更多详情请见往期内容:
【服务升级】EnhancerSec第五期漏洞挖掘培训招生啦!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:EnhancerSec EnhancerSec《逆向实战|某App加密请求包抓包与Hook技巧解析》