JS内存爆破问题
原理
检测到调试,格式化等,疯狂的在js
文件,或者html
中进行读写,cookie重写追加,字节追加,导致内存不足够,卡死
内存爆破,指js
通过死循环/频繁操作数据库(包括cookie)/频繁调取history等方式,使浏览器崩溃的一种反调试手段。
还有一种特性情况:js
文件很大,电脑内存不足(这种情况在调试层面几乎无解)
特点分析
-
正常运行时,一切正常
-
调试时利用时间差,将控制流推入循环
-
利用正则
toString()
判断代码是否进行格式化 -
利用浏览器指纹判断是否为浏览器环境
解决
正则判断代码是否进行了格式化,这一操作常常出现在ob混淆中
将浏览器的代码扣到了本地,一格式化,运行就可能出现js
内存爆破的问题
可以在浏览器看源码时利用RegExp
关键字进行搜索,定位到检测格式化那个正则那,将你扣下来的本地代码检测格式化那一块还原成浏览器看到的就行了(一般是怼到一行上去,return _xxx['test'](_xxx['removeCookie']['toString']());
)
针对内存爆破没有通解,需要具体情况具体分析