全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 535|回复: 8
打印 上一主题 下一主题

付费求会js解密的

[复制链接]
跳转到指定楼层
1#
发表于 2020-3-6 14:30:40 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sojson.v5的,有个解密脚本但用不来


(function (js_body) {    // 脱壳 && 解密    let js_arr = js_body.split("\n").pop().split(';'),        fun_name = /var\s+(_0x[a-z0-9]+)=/.exec(js_arr[6])[1],        reg_str = fun_name + ' \\(' + "'([^']+)',\s*'([^']+)'" + '\\)',        js_str = js_arr.slice(54, js_arr.length - 4).join(';'),        code_shell = js_arr.slice(0, 54).join(' ;'),        shell_obj = eval("(function(){" + code_shell + ";return " + fun_name + "})()");    js_str = js_str.replace(new RegExp(reg_str, 'i'), function (str, id, key) {        return '"' + shell_obj(id, key) + '"';    }).replace(/([a-z0-9\-_A-Z)\]]+)\s?\[["'](["']+)["']\]/g, '$1.$2').replace(/(?<!_)(0x[0-9a-f]+)/g, function (hex) {        return parseInt(hex).toString();    });    // 还原混淆    let obj = null, name = '';    js_str = js_str.replace(/{(va r\s+(_0x[0-9a-z]+)= (\{(.*)\}));/g, function (str, code_str, _name, obj_str) {        obj = eval("(function () {return " + obj_str + "})()");        name = _name;        return '{';    });    if (obj) {        let i = 5;        while (js_str.indexOf(name) && --i > 0) {            for (const key in obj) {                if (!obj.hasOwnProperty(key)) continue;                if (typeof obj[key] == 'function') {                    let fun_info = /function \s*_0x[0-9]+\(([^)]*)\){return\s*([^;]+);}/.exec(obj[key].toString());                    js_str = js_str.replace(new RegExp(name + '\\.' + key + '\\([^()]*)\\)', 'g'), function (string, args_str) {                        let args = args_str.split(','),                            fun_args = fun_info[1].split(','),                            fun_body = fun_info[2];                        fun_args.forEach(function (item, index) {                            fun_body = fun_body.replace(item, args[index]);                        });                        return fun_body;                    });                } else if (typeof obj[key] == 'string') {                    js_str = js_str.replace(name + '.' + key, '"' + obj[key] + '"');                } else {                    js_str = js_str.replace(name + '.' + key, obj[key].toString());                }            }        }    }    return js_str;})($('#resultSource').val() || $('#jsdata').val());

推荐
发表于 2020-3-6 15:15:03 | 只看该作者
sunxiao123 发表于 2020-3-6 15:09
怎么运行,求指教

把要解密的id="resultSource"的div里,然后chrome后台debug到return js_str的那一行就可以拿到了
推荐
发表于 2020-3-6 15:06:51 | 只看该作者
运行一下就能拿到解密后的代码了(但是还是混淆的)
3#
发表于 2020-3-6 14:31:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
5#
 楼主| 发表于 2020-3-6 15:09:12 | 只看该作者
miniliuke 发表于 2020-3-6 15:06
运行一下就能拿到解密后的代码了(但是还是混淆的)

怎么运行,求指教
7#
发表于 2020-3-6 16:28:13 | 只看该作者
本帖最后由 cgons 于 2020-3-6 16:33 编辑

电脑新建HTML文件吧代码复制进去 用浏览器打开


  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>1</title>
  6. </head>
  7. <body>

  8. <p id="demo"></p>
  9. <script>
  10. (function(js_body) {

  11.         let js_arr = js_body.split("\n").pop().split(';'),
  12.         fun_name = /var\s+(_0x[a-z0-9]+)=/.exec(js_arr[6])[1],
  13.         reg_str = fun_name + ' \\(' + "'([^']+)',\s*'([^']+)'" + '\\)',
  14.         js_str = js_arr.slice(54, js_arr.length - 4).join(';'),
  15.         code_shell = js_arr.slice(0, 54).join(' ;'),
  16.         shell_obj = eval("(function(){" + code_shell + ";return " + fun_name + "})()");
  17.         js_str = js_str.replace(new RegExp(reg_str, 'i'),
  18.         function(str, id, key) {
  19.                 return '"' + shell_obj(id, key) + '"';
  20.         }).replace(/([a-z0-9\-_A-Z)\]]+)\s?\[["'](["']+)["']\]/g, '$1.$2').replace(/(?<!_)(0x[0-9a-f]+)/g,
  21.         function(hex) {
  22.                 return parseInt(hex).toString();
  23.         });

  24.         let obj = null,
  25.         name = '';
  26.         js_str = js_str.replace(/{(va r\s+(_0x[0-9a-z]+)= (\{(.*)\}));/g,
  27.         function(str, code_str, _name, obj_str) {
  28.                 obj = eval("(function () {return " + obj_str + "})()");
  29.                 name = _name;
  30.                 return '{';
  31.         });
  32.         if (obj) {
  33.                 let i = 5;
  34.                 while (js_str.indexOf(name) && --i > 0) {
  35.                         for (const key in obj) {
  36.                                 if (!obj.hasOwnProperty(key)) continue;
  37.                                 if (typeof obj[key] == 'function') {
  38.                                         let fun_info = /function \s*_0x[0-9]+\(([^)]*)\){return\s*([^;]+);}/.exec(obj[key].toString());
  39.                                         js_str = js_str.replace(new RegExp(name + '\\.' + key + '\\([^()]*)\\)', 'g'),
  40.                                         function(string, args_str) {
  41.                                                 let args = args_str.split(','),
  42.                                                 fun_args = fun_info[1].split(','),
  43.                                                 fun_body = fun_info[2];
  44.                                                 fun_args.forEach(function(item, index) {
  45.                                                         fun_body = fun_body.replace(item, args[index]);
  46.                                                 });
  47.                                                 return fun_body;
  48.                                         });
  49.                                 } else if (typeof obj[key] == 'string') {
  50.                                         js_str = js_str.replace(name + '.' + key, '"' + obj[key] + '"');
  51.                                 } else {
  52.                                         js_str = js_str.replace(name + '.' + key, obj[key].toString());
  53.                                 }
  54.                         }
  55.                 }
  56.         }
  57.         console.log(js_str);
  58.         document.getElementById("demo").innerHTML = js_str;
  59.         return js_str;
  60. })($("js加密代码粘贴到这里");

  61. </script>

  62. </body>
  63. </html>
复制代码
9#
发表于 2020-3-6 17:23:10 | 只看该作者
整段代码直接打个断点看看就ok了  你这块少东西啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-6-11 11:45 , Processed in 0.064640 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表