此处的两个配置会影响后面的全部挂钩操作





















左侧两列为常用挂钩,建议常开





点击注入后,会自动打开调试模式,并且对每个页面的 “刷新过程” 注入执行的代码。(关闭调式模式自动取消注入)
注意!!!如果需要让修改后的代码生效需要关闭调试模式,然后重新点击 “调试注入” 。


这里的功能:在目标网页上右键菜单选择 “打开 v_jstools 动态调试” 即可开启,使用用插件的方式 hook 住目标页面的所有代码,像是在 node 里面一样使用 ast 将原始的代码修改成期望的样子
这里的 hook 功能在一定的扩展之后,能 hook 住 script 链接中的 js 代码,也能 hook 到 html 内的 js 代码。
*能直接用插件的方式实现 ast 修改代码,用处还是非常大的。不过目前感觉功能稍微有点干瘪,因为暂时还在想有什么 ast 修改模板代码会更好的捕捉代码信息,让代码更方便的调试。

请定义一个名字为 fetch_hook 函数,接受参数为 1.代码 2.url,return 修改后的代码
在代码里面你可以直接使用四个对象,你可以像是在 node 里面一样用这四个对象操作和修改 ast 的结构并重新生成新的代码。对象如下:
parser = require("@babel/parser");
traverse = require("@babel/traverse").default;
t = require("@babel/types");
generator = require("@babel/generator").default;

你可以实现挂钩修改所有的 script 代码,所有 script 代码都会被下面的函数挂钩,你可以使用 ast 清除掉里面所有的 debugger。
一个使用 ast 删除代码中的 debugger 的代码示例,代码如下:
function fetch_hook(code, url){
function removedebugger(path){
path.replaceWith(t.identifier("/*debugger*/"))
}
var ast = parser.parse(code);
traverse(ast, {DebuggerStatement: removedebugger});
var { code } = generator(ast, { jsescOption: { minimal: true, } });
return code
}

code:

RPC代码模板使用方式
(1)首先生成的server代码并执行(python和nodejs两种任选其一,建议选node,因为node版本代码已处理成免安装版,且只使用一个端口)
(2)然后用生成的hook代码自行对你需要挂钩的函数处理,在你想要挂钩的为止挂钩
(3)直接访问 http://127.0.0.1:5000/getinfo?value=test 测试代码





jsobfuscator混淆器