先 BurpSuite 拦截响应, 在 chunk-vendors-xxx.js 里面找到 ondevtoolopen 对应的函数, 通常就在这个对象前面一点, 函数体有 setTimeout 和 timeOutUrl 这两个关键字, 修改此函数为空函数(没仔细看具体内容, 大概是反调试相关的)后放行响应, 干掉反调试, 后面可以比较愉快地调试了
反调试用的是
https://github.com/theajack/disable-devtool 这个库
在 page-index-xxxx.js 下的 onLoad 周期下调用了 this.$u.request 发起请求, 里面调用了另一个模块的 getParams({}) 来构造请求参数, 可以直接在这里给对象加入 text:'v2ex', 也可以在 getParams 里面断点, 在 aesEncrypt 加密之前修改对象, 参数 param 由 aesEncrypt 函数加密一个类似 {"h5Version":1,"public":1692855534,"private":"05b035bf90fee199b4114b97ee277571", "text": "v2ex"} 的 JSON 得到
混淆是在每个文件开头或结尾有两个函数, 一个构造各种变量名和属性名的词典, 一个从词典中取值, 对于感兴趣的关键字直接到这两个函数里面找, 然后条件断点即可, 有些关键词不在词典中而是直接作为字符串没有混淆