数据采集与xcxCode
解密分析
一、声明
本文旨在提供学术交流,不应用于其他任何场合。文章中不包含完整代码,所有涉及的数据包内容、敏感网址和数据接口均已进行脱敏处理,严禁用于商业或非法活动,由此引起的后果与作者无关。未经授权,禁止转载或修改后传播本文,作者不承担因使用本文技术导致的任何后果。本文为原创,作者署名为小白,敬请尊重。
二、工具介绍
-
mitmproxy:
此工具在数据采集与分析中扮演着核心角色,它能够拦截和查看网络请求及响应信息,特别适用于小程序的数据包捕获。 -
WeChatOpenDevTools-python:
(逆向分析工具)
该工具在分析过程中同样不可或缺,它帮助我们调试和分析微信小程序,包括查看小程序的页面结构、代码逻辑和交互行为等,为深入了解小程序中xcxCode
等关键元素的生成和运行机制提供了便利的开发调试环境。
三、xcxCode
的基本特性
在数据采集过程中,我们注意到请求头中的xcxCode
具有动态变化的特点。如果xcxCode
未能及时更新,将无法获取数据。其加密方式为:将自定义字符串与时间戳结合,然后通过AES
加密生成xcxCode
。
四、逆向分析目标
本次逆向分析的核心目标是揭示xcxCode
的生成逻辑和加密流程,以便在合法合规的学术研究范围内实现数据的正确采集与处理。
五、寻找过程
(一)定位请求发送点(xcxCode
未生成)
我们通常使用xhr
断点或栈跟踪来定位目标链接。在较为简单的场景中,xcxCode
的操作通常在请求创建时出现,需要特别关注“request
”等关键字。如果难以直接定位,可以逐步排查可能的位置并设置断点,观察xcxCode
是否存在。例如,在一次分析中,我们通过相关操作找到了请求发送的位置,此时xcxCode
尚未生成,如下图所示:
(二)深入函数内部寻找xcxCode
确定请求发送位置后,我们进一步深入函数内部寻找xcxCode
的踪迹。通过深入分析和调试函数内部的代码逻辑,我们最终定位到了xcxCode
的生成点,如下图所示:
(三)深入xcxCode
函数内部分析加密代码
继续深入xcxCode
函数内部,我们可以观察到其加密代码的具体实现。我们明确发现,xcxCode
是通过将一个字符串与时间戳进行AES
加密得到的,如下图所示:
(四)确定xcxCode
的AES加密参数
六、结果运行测试
我们将相同的数据在在线AES
测试平台进行测试,如果得到的结果与实际采集过程中的xcxCode
一致,那么恭喜,此次逆向分析成功。这一步骤是对之前逆向分析结果的验证,确保我们所揭示的xcxCode
生成逻辑与加密流程的准确性,以便在后续合法的数据采集与处理工作中能够正确应用。
文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4398.html