逆向效率翻倍!支持动态Hook+AST解析的浏览器神器

大家好,今天分享一个 web 逆向神器,它是一款包含众多工具的 JS逆向工具箱。

v_jstools

它是一个浏览器拓展,它并不是一款单一的工具,而是集 AST、hook、代码注入、请求修改等等功能于一体的工具箱。

安装

它的代码是开源的,地址在这里,因为它没有发布到 Chrome 应用商店上,所以在安装的时候,需要将它的代码 clone 到本地。

1
git clone https://github.com/cilame/v_jstools

image-20250318222445523

image-20250318222546571

然后打开 Chrome 的拓展程序页面,选择加载已解压的拓展程序。

image-20250318222621831

选择刚才的文件夹,确定后拓展就安装好了。

使用hook

image-20250318222831852

打开拓展程序,可以按需启用所需要的功能。一般我会使用 hook 功能,需要打开前两个开关:挂钩总开关和输出日志开关。打开后点击打开配置页面按钮

image-20250318223154123

最上面一排按钮为拓展支持的所有功能,现在选中的是 DOM 对象 hook 配置,可以支持 hook 常见的 Functionevaldebuggersettimeoutrandomtime 等等函数,同时也支持只对某个感兴趣的 JS 文件进行 hook,从而避免 hook 所有文件导致性能问题和数据干扰。

在最下面的红框里面也有 cookie 相关 hook 代码,还有 JSONdecodeURIbase64 等等函数的 hook,常用的函数很齐全了。

示例 hook

image-20250318223752671

这里我演示一下 hook JSON 相关函数的功能,打开这两个开关,使用之前的爬虫练习平台作演示。

image-20250318223904771

刷新页面,会发现已经成功的注入了 hook 代码,并且输出了 hook 结果,点击后面的 VM 开头的地址,会直接转到 hook 代码的位置。

image-20250318224013724

如果想要找到找到 JSON 函数的调用位置,可以在此处打断点,顺着调用栈即可找到加密位置。

使用 AST

image-20250318224251592

AST 混淆解密界面,已经内置了常见的混淆和解混淆方法,可以直接一键解除某些特定的混淆,并且还可以对代码进行压缩,并且支持在浏览器中直接写 AST 代码,无需本地 nodejs 环境,在某些特殊的环境下兼容性更好。

image-20250318224450172

image-20250318224628087

点击打开本地 AST 页面按钮,会打开一个 AST 页面,在这里可以直接使用 AST 代码对 JS 源码进行处理。页面一共分为四个部分,上半部分的左右两侧分别是原始的 JS 代码和 JS 代码对应的 AST 语法树。下半部分的左右两侧分别是 AST 代码和经过 AST 代码处理后得到结果 JS。图中使用 AST 的方式将所有的函数节点名字进行了反转。

代码模版(RPC)

image-20250318225224888

代码模版(RPC)功能可以生成 RPC server 端代码,通过 JSRPC 的方式直接调用对应的 JS 函数,而无需补环境或者扣代码,JS 直接运行在浏览器中,类似于之前的 so RPC 调用的方案,通过外部主动调用的方式获取加密结果或者解密结果。

修改返回值

image-20250318225346363

拓展还支持修改特定请求的返回值或者做本地文件映射,类似本地文件映射的功能其实 Chrome 也自带了,不过动态修改请求的功能一般只有抓包软件才有,拓展在这里也支持动态修改了。

注入代码

如果有其他想要注入的代码,可以在此注入。

image-20250318225611063

它有点类似于油猴脚本,可以在页面加载前先注入代码,然后再运行页面原有的 JS 脚本。可以在此进行 hook 操作或者注入 RPC 代码或者执行其他所需的操作。

自定义

v_jstools 提供的功能还有很多,当然可能有些功能并不能满足所有人的需求,没关系,它的代码是开源的,如果某些功能不满足需求,可以自行修改。

总结

v_jstools 的功能还有很多,无论 JS 逆向新手还是老手,这款拓展都可以大大提高 JS逆向的效率,感兴趣的那小伙伴可以尝试一下。

本文章首发于个人博客 LLLibra146’s blog

本文作者:LLLibra146

更多文章请关注公众号 (LLLibra146):LLLibra146

版权声明:本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!

本文链接
https://blog.d77.xyz/archives/8318dafe.html