【JS 逆向百例】浏览器插件 Hook 实战,亚航加密参数分析

【JS 逆向百例】浏览器插件 Hook 实战,亚航加密参数分析
最新回答
其实我过得并不好

2024-02-23 20:04:36

在微信公众号 K哥爬虫(关注获取更多技术干货)和QQ交流群808574309中,我们探讨了如何通过浏览器插件技术实现JS逆向中的Hook实战,以分析亚航加密参数为例。目标是解析航班查询时的参数,尽管该参数在清除cookie或更换浏览器时保持不变,我们通过编写插件来追踪其生成过程。

首先,了解了逆向目标和抓包分析过程,我们发现查询接口的URL结构为xxx/MFM/KUL/28/0...,其中authorization参数不易改变。文章之前的文章《JS 逆向之Hook》提供了更多关于Hook的基础知识。为了 Hook 这个参数,我们选择了使用浏览器插件,尤其是Chrome的扩展,因为其跨浏览器兼容性较好。

浏览器插件,即扩展,可增强浏览器功能,如广告拦截和代理管理。要编写插件,需遵循Chrome扩展规范,通常包括manifest.json和JavaScript脚本。manifest.json配置了插件的基本信息,而Hook代码则在javascript_hook.js中实现,通过重写XMLHttpRequest.setRequestHeader方法来拦截并观察Authorization参数。

在Chrome中,通过开发者模式加载插件,而在Firefox中,需要将插件压缩成.xpi格式并调试安装。完成插件后,我们能在航班查询页面看到Hook成功工作,接下来是逆向分析加密过程,通过Call Stack定位参数生成位置,如在t.getData函数中找到"Bearer " + r.accessToken。

这个案例展示了Hook技术在复杂情况下的应用,尤其是在参数难以直接搜索或定位时,浏览器插件提供了有力的工具。如果你对完整代码感兴趣,可以参考K哥的GitHub代码库。