JavaScript 混淆字符串检测方法解析
1. JavaScript 混淆字符串的提取
在进行混淆字符串检测之前,需要先提取与 JavaScript 危险函数相关的所有字符串。首先,将 JavaScript 代码中的所有字符串分为三种情况,然后基于这三种情况,使用静态数据流分析来提取与危险函数参数相关的所有字符串。
1.1 JavaScript 字符串分类
为了提取与危险函数参数相关的所有字符串,将 JavaScript 代码中的所有字符串分为以下三种情况:
- CASE1: NoChange :函数 f 为常量且只有一个变量, Y 等于 x1 。例如:
var x1 = "3+4";
eval(x1);
在这个例子中, eval 函数使用 x1 中分配的字符串,不修改其值。但像 eval("\144\157\143\165\155\145\156\164") 这样的情况,字符串需要先解码再执行。在静态数据流分析中,这种情况会直接提取和分析。
- CASE2: Concatenation :函数 f 为常量,但 Y 是多个字符串(如 x1, x2, x3, ..., xn )的拼接。例如:
超级会员免费看
订阅专栏 解锁全文
1180

被折叠的 条评论
为什么被折叠?



