它似乎被 Dean Edwards 的 Packer 混淆,然后进一步转换为十六进制表示法。
只需复制从 var _0x5749 =
đến eval(function
之前的所有内容。打开 FireBug,将其粘贴到控制台,然后打印出变量。它是一个 JavaScript已被 Dean Edwards 的 Packer 混淆的程序。
Packer 编码的脚本有一个签名:eval(function(p,a,c,k,e,d){e=function(c){
在这种情况下被转换为 eval(function (_0x68cdx1, _0x68cdx2, _0x68cdx3, _0x68cdx4, _0x68cdx5, _0x68cdx6) { _0x68cdx5 = function (_0x68cdx3) {
。请注意,“e”被编码为 _0x68cdx5,并且“c"被编码为 _0x68cdx3。
有网络工具可以解码 Dean Edwards 的 Packer,但有一种非常简单的方法可以获取脚本文本:
- 将所有代码复制到(但不包括)
Ext.onReady(function() {
- 寻找
eval(function(...
- 将“eval”替换为“console.log”
- 在 node.js、JsShell、Rhino、FireBug、Chrome 或 Safari 的 Developer Console 中运行脚本
- 纯文本脚本打印在控制台
- 复制脚本并通过在线 JavaScript 美化器传递它
- 使用后我得到了 3,839 行:http://jsbeautifier.org/
我只称这种简单混淆是因为原始源代码可以通过解码过程获得。
我推荐的最好的混淆器是 ADVANCED 模式下的 Google Closure Compiler——这使得脚本几乎不可能进行逆向工程。
Tôi là một lập trình viên xuất sắc, rất giỏi!