随手解一个平坦化的JS加密

本文介绍了作者手动解密一个使用平坦化加密的JavaScript代码的过程,通过解析混淆后的代码,将其还原为可读形式。该加密方法使得代码难以理解,但最终通过分析实现了解密。文章强调这种加密技术主要用于提升代码的安全性。
摘要由CSDN通过智能技术生成

部分加密代码,整个JS基本都是由这个平坦化加密组成的,js代码敏感,也就不贴全部的了,贴部分就够了。这是其中最短的一部分,也是最简单的。

function loads() {
    var _array = "7|10|8|9|15|6|3|11|16|12|13|5|14|0|1|4|2|17".split("|"),
        _index = 0;

    while (true) {
        switch (+_array[_index++]) {
            case 0:
                _5.lo = hiis87v;
                continue;

            case 1:
                _5.storage = _2;
                continue;

            case 2:
                _5.totalSlide = document.body.scrollHeight;
                continue;

            case 3:
                var _5 = JSON.parse("{}");

                continue;

            case 4:
                _5.pla = navigator.platform;
                continue;

            case 5:
                _5.height = h;
                continue;

            case 6:
                var _0x2 = function (s, h) {
                    return s + h;
                }(3, 2);

                continue;

            case 7:
                var _0xd4f = function (s, h) {
                    return s + h;
                }(5, 8);

                continue;

            case 8:
                _0xd4f = 5;
                continue;

            case 9:
                var _3 = window.localStorage.getItem(zytr5oo + "dbfc7f45d");

                continue;

            case 10:
                var _2 = function (s, h) {
                    return s ^ h;
                }(833148, 833148);

                continue;

            case 11:
                _0x2 = 8;
                continue;

            case 12:
                _5.visi = visi;
                continue;

            case 13:
                _5.width = w;
                continue;

            case 14:
                _5.pt = pt;
                continue;

            case 15:
                if (_3 == null) {
                    window.localStorage.setItem(zytr5oo + "dbfc7f45d", "FC7F45D");
                } else {
                    _2 = function () {
                        return 1;
                    }();
                }

                continue;

            case 16:
                _5.id = zytr5oo;
                continue;

            case 17:
                $.ajax({
                    "type": "post",
                    "contentType": "application/x-www-form-urlencoded",
                    ........省略代码
                            }
                        });
                    }
                });
                continue;
        }

        break;
    }
}

国际惯例,丢到JS一键解密进行初步尝试解密,发现无法解除结果,说明这个加密属于比较高级的。

于是经过我纯手工解密,变成以下代码。

function loads() {
    var number = 0;
    var item = window.localStorage.getItem(zytr5oo + "xxxx");
    if (item == null) {
        window.localStorage.setItem(zytr5oo + "xxxxx", "xxxxx");
    } else {
        number = 1;
    }
    var json = JSON.parse("{}");
    json.id = zytr5oo;
    json.visi = visi;
    json.width = w;
    json.height = h;
    json.pt = pt;
    json.lo = hiis87v;
    json.storage = number;
    json.pla = navigator.platform;
    json.totalSlide = document.body.scrollHeight;

    $.ajax({
        "type": "post",
        "contentType": "application/x-www-form-urlencoded",
        .......省略代码
            $(document).on("click", ".downa", function () {
                lodown += 1;
                task();
            });
        }
    });

}

结语

该加密属于普通的平坦化加密,通过将代码执行维度抽离,扁平化运行,达到让人难以理解的目的。

如果对该文章有任何疑问,可以私聊、评论,我看到会回复的。

或者直接到jsjiami.com 底部有我联系方式
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值