搜索附件  

例子.zip

 

RMMV 游戏数据加密,JS混淆(只适合代码人,非一键):
使用默认工程的来做的示范。

步骤一:闭包。   新建cmain.js 文件,写上(function (){ })()
         
  把注释的JS文件,按顺序把内容复制到cmain.js里面。


然后代码中找到DataManager.loadDataFile   把window[name] 改成 eval(name)



这样子,代码就会形成闭包。  在控制台是无法访问到对应的JSON数据。

步骤二,加密解密JSON。
加密:
1.在我们的工程index.html. 在加载cmain.js之前添加
[code]            window.Base64 = {                _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",                encode: function(e) {                    var t = "";                    var n, r, i, s, o, u, a;                    var f = 0;                    e = Base64._utf8_encode(e);                    while (f < e.length) {                        n = e.charCodeAt(f++);                        r = e.charCodeAt(f++);                        i = e.charCodeAt(f++);                        s = n >> 2;                        o = (n & 3) > 4;                        u = (r & 15) > 6;                        a = i & 63;                        if (isNaN(r)) {                            u = a = 64                        } else if (isNaN(i)) {                            a = 64                        }                        t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)                    }                    return t                },                decode: function(e) {                    var t = "";                    var n, r, i;                    var s, o, u, a;                    var f = 0;                    e = e.replace(/[^A-Za-z0-9+/=]/g, "");                    while (f < e.length) {                        s = this._keyStr.indexOf(e.charAt(f++));                        o = this._keyStr.indexOf(e.charAt(f++));                        u = this._keyStr.indexOf(e.charAt(f++));                        a = this._keyStr.indexOf(e.charAt(f++));                        n = s > 4;                        r = (o & 15) > 2;                        i = (u & 3)  127 && r < 2048) {                            t += String.fromCharCode(r >> 6 | 192);                            t += String.fromCharCode(r & 63 | 128)                        } else {                            t += String.fromCharCode(r >> 12 | 224);                            t += String.fromCharCode(r >> 6 & 63 | 128);                            t += String.fromCharCode(r & 63 | 128)                        }                    }                    return t                },                _utf8_decode: function(e) {                    var t = "";                    var n = 0;                    var r = c1 = c2 = 0;                    while (n < e.length) {                        r = e.charCodeAt(n);                        if (r < 128) {                            t += String.fromCharCode(r);                            n++                        } else if (r > 191 && r < 224) {                            c2 = e.charCodeAt(n + 1);                            t += String.fromCharCode((r & 31)  4;            u = (r & 15) > 6;            a = i & 63;            if (isNaN(r)) {                u = a = 64            } else if (isNaN(i)) {                a = 64            }            t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)        }        return t    },    decode: function(e) {        var t = "";        var n, r, i;        var s, o, u, a;        var f = 0;        e = e.replace(/[^A-Za-z0-9+/=]/g, "");        while (f < e.length) {            s = this._keyStr.indexOf(e.charAt(f++));            o = this._keyStr.indexOf(e.charAt(f++));            u = this._keyStr.indexOf(e.charAt(f++));            a = this._keyStr.indexOf(e.charAt(f++));            n = s > 4;            r = (o & 15) > 2;            i = (u & 3)  127 && r < 2048) {                t += String.fromCharCode(r >> 6 | 192);                t += String.fromCharCode(r & 63 | 128)            } else {                t += String.fromCharCode(r >> 12 | 224);                t += String.fromCharCode(r >> 6 & 63 | 128);                t += String.fromCharCode(r & 63 | 128)            }        }        return t    },    _utf8_decode: function(e) {        var t = "";        var n = 0;        var r = c1 = c2 = 0;        while (n < e.length) {            r = e.charCodeAt(n);            if (r < 128) {                t += String.fromCharCode(r);                n++            } else if (r > 191 && r < 224) {                c2 = e.charCodeAt(n + 1);                t += String.fromCharCode((r & 31)
         同一主题附件:
    d1.png
    d2.png
    d3.png
    例子.zip (127.73 KB)
Loading...

QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

GMT+8, 2024-11-24 18:56 , Processed in 0.050580 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部