js_reverse/夜幕js逆向练习题/夜幕-第15课练习题Base64竟有如此威力

在JS逆向系列课的第15课《真假猴王 Base64 竟有如此威力》中我们了解到了Base64原来还能通过修改码表的方式使其变成“加密”的效果 也学习了如何通过同样的方式在Python中将其轻松干掉。

那么现在请运用你在第15课中学到的知识尝试做一下这道题吧~

请问:

第7个帖子以1为起始的HTML中id为content的部分中一共有多少个img标签

找到数据返回地址

debugger

打断点测试

debugger

发现 Base64 是魔改过的

data = JSON.parse(Base64.run(data))

提取js代码测试解密

var _O0O0oooa = ['\x51\x4d\x66\x7a\x69', '\x49\x71\x4c\x45\x46', '\x6c\x65\x6e\x67\x74\x68', '\x31\x30\x32\x34', '\x52\x4a\x63\x4b\x52'];
(function (a, b) {
    var c = function (f) {
        while (--f) {
            a['push'](a['shift']());
        }
    };
    c(++b);
}(_O0O0oooa, 0xae));
var _O0O0ooob = function (a, b) {
    a = a - 0x0;
    var c = _O0O0oooa[a];
    return c;
};

function _O0O0oooc() {
    var b = {};
    b[_O0O0ooob('\x30\x78\x31')] = function (d, e) {
        return d + e;
    };
    b[_O0O0ooob('\x30\x78\x30')] = _O0O0ooob('\x30\x78\x34');
    b['\x49\x71\x4c\x45\x46'] = function (d, e) {
        return d + e;
    };
    var c = b;
    b = ![] | !![] & ![];
    b = c[_O0O0ooob('\x30\x78\x31')](c[_O0O0ooob('\x30\x78\x30')], b);
    return c[_O0O0ooob('\x30\x78\x32')](b, b[_O0O0ooob('\x30\x78\x33')]);
}

var Base64 = {

    // private property
    _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="

    // public method for encoding
    , encode: function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;

        input = Base64._utf8_encode(input);

        while (i < input.length) {
            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);

            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;

            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }

            output = output +
                this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
                this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
        } // Whend

        return output;
    } // End Function encode


    // public method for decoding
    , decode: function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;

        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < input.length) {
            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));

            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;

            output = output + String.fromCharCode(chr1);

            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }

            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }

        } // Whend

        output = Base64._utf8_decode(output);

        return output;
    } // End Function decode


    // private method for UTF-8 encoding
    , _utf8_encode: function (string) {
        var utftext = "";
        string = string.replace(/\r\n/g, "\n");

        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            } else if ((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            } else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        } // Next n

        return utftext;
    } // End Function _utf8_encode

    // private method for UTF-8 decoding
    , _utf8_decode: function (utftext) {
        var string = "";
        var i = 0;
        var c, c1, c2, c3;
        c = c1 = c2 = 0;

        while (i < utftext.length) {
            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            } else if ((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i + 1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            } else {
                c2 = utftext.charCodeAt(i + 1);
                c3 = utftext.charCodeAt(i + 2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        } // Whend

        return string;
    }, // End Function _utf8_decode
    run: function (all_str) {
        Base64._keyStr = all_str.substring(0, 64);
        let charset = all_str.substring(64, all_str.length);
        return Base64.decode(charset).replace("", "").replace("￀", "")
    }

};

a = Base64.run('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');
console.log(JSON.parse(a));