引言
JavaScript 是一种宽泛应用的编程语言,用于前端和后端开发。然而,它也容易受到通过反向工程提取敏感信息的攻打。为了避免此类攻打,开发人员通常应用混同技术,使代码难以了解或解密。本文探讨了 JavaScript 混同技术以及如何应用各种工具和办法进行解密。
JS 混同技术
有几种技术用于混同 JavaScript 代码,包含函数重命名,变量替换,字符串加密和代码宰割。函数重命名波及重命名函数名称和参数,使攻击者难以了解每个函数的目标。变量替换将变量名称替换为较短的、无意义的名称,使代码更难浏览。字符串加密将敏感字符串编码,以防止在代码中公开它们。代码宰割将代码分成多个较小的文件,使代码更难了解其逻辑。
示例代码
思考以下 JavaScript 代码,该代码应用了各种混同技术:
var _0xa1a7=["\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x72\x65\x61\x64\x44\x61\x74\x61","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x63\x6F\x6E\x74\x65\x6E\x74","\x2E","\x68\x74\x6D\x6C","\x3C\x64\x69\x76\x3E","\x3C\x2F\x64\x69\x76\x3E","\x62\x6F\x64\x79"];var h=document[_0xa1a7[2]](_0xa1a7[1]),i=document[_0xa1a7[2]](_0xa1a7[3]);i[_0xa1a7[0]]=function(){h[_0xa1a7[0]]=_0xa1a7[4]+h[_0xa1a7[0]]+_0xa1a7[4]};document[_0xa1a7[6]][_0xa1a7[5]](h),document[_0xa1a7[6]][_0xa1a7[5]](i),document[_0xa1a7[9]][_0xa1a7[8]][_0xa1a7[7]]=_0xa1a7[4]+_0xa1a7[4]+_0xa1a7[4]+_0xa1a7[4]+_0xa1a7[4]+_0xa1a7[4];
在第一眼看上去,这个代码看起来毫无意义,不可能了解它的目标。然而,应用一些技巧和工具,咱们能够解密并理解它的目标。
解密步骤
1. 解密混同名称:
var createElement = "createElement",
readData = "readData",
getElementById = "getElementById",
appendChild = "appendChild",
content = "content",
dot = ".",
html = "html",
div = "<div>",
endDiv = "</div>",
body = "body";
var h = document[getElementById](readData),
i = document[getElementById](content);
i[createElement] = function () {h[createElement] = dot + h[createElement] + dot;
};
document[dot](h), document[dot](i), document[body][content] = dot + dot + dot + dot + dot + dot;
2. 解析代码以了解其目标: 该代码从 HTML 元素中读取数据,将一个点附加到其内容之前和之后,而后将批改后的内容插入 HTML 文档的 body 中。这段代码的目标是混同和暗藏网站的理论内容,以防止不平安的问题。
论断
JavaScript 混同是一种常见的实际,用于爱护代码免受反向工程迫害。然而,应用正确的工具和技术,能够解密和了解代码的性能。在混同代码时,记住均衡平安和可读性的重要性。
jsjiami.com
如果您对文章内容有不同认识, 或者疑难,欢送到评论区留言,或者私信我都能够。
也能够到上方网站,底部有我联系方式详谈。