JSREI / ast-hook-for-js-RE

浏览器内存漫游解决方案(探索中...)
Other
1.5k stars 393 forks source link

关于有些网站加载不出来 #6

Open CC11001100 opened 3 years ago

CC11001100 commented 3 years ago

接收到用户的反馈,有些网站加载不出来,表现为加载时卡住,同时CPU利用率升高,风扇开始转。

经过排查定位发现是因为正则回溯地狱,ob、sojson之类的有个利用正则回溯地狱防止格式化的功能,ast注入Hook的时候把代码格式化了,于是就中招进入正则回溯地狱,这是一个已知的问题,会在后期版本修复掉。

genufish commented 3 years ago

正则还好,基本把Function.prototype.toString重写下,把换行和连续空格去掉就ok。实在不行把未格式化的函数用/.../注释的形式存在函数内,toString正则提取返回。

CC11001100 commented 3 years ago

正则还好,基本把Function.prototype.toString重写下,把换行和连续空格去掉就ok。实在不行把未格式化的函数用/.../注释的形式存在函数内,toString正则提取返回。

是的,后面版本会通过增加一个新的组件的形式解决此问题,解决方式类似于这种。

但是仍然会有类似的问题,似乎现在对代码特征的检测越来越常见了,当判断到代码被修改了之后只是悄悄的使坏,这种目前还没想到好的解决方案。

UrbanMDR commented 3 years ago

正则还好,基本把Function.prototype.toString重写下,把换行和连续空格去掉就ok。实在不行把未格式化的函数用/.../注释的形式存在函数内,toString正则提取返回。

是的,后面版本会通过增加一个新的组件的形式解决此问题,解决方式类似于这种。

但是仍然会有类似的问题,似乎现在对代码特征的检测越来越常见了,当判断到代码被修改了之后只是悄悄的使坏,这种目前还没想到好的解决方案。

能不能细说怎么解决正则回朔啊。一挂hook进网站就开始无限回朔。CPU内存占用拉满

UrbanMDR commented 3 years ago

是不是只要在anyproxy 里面把去掉正则检查代码的本地js文件映射上去就可以了。

wlccgp3 commented 1 year ago

我改成这样网站就没崩 return generator.default(ast, {compact: true}).code;

LumingMelody commented 1 day ago

我改成这样网站就没崩 return generator.default(ast, {compact: true}).code;

大佬 在哪里改啊