AST混淆实战:仿obfuscator混淆控制流平坦化 Web逆向 原创


混淆效果

混淆前:

window = {};
window.atob = function(r) {
    e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o = String(r).replace(/=+$/, "");
    if(o.length % 4 == 1) throw new t("'atob' failed: The string to be decoded is not correctly encoded.");
    for(var n, a, i = 0, c = 0, d = ""; a = o.charAt(c++); ~a && (n = i % 4 ? 64 * n + a : a, i++ % 4) ? d += String.fromCharCode(255 & n >> (-2 * i & 6)) : 0) a = e.indexOf(a);
    return d
}
window.btoa = function(r) {
    e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    for(var o, n, a = String(r), i = 0, c = e, d = ""; a.charAt(0 | i) || (c = "=", i % 1); d += c.charAt(63 & o >> 8 - i % 1 * 8)) {
        if(n = a.charCodeAt(i += .75), n > 255) throw new t("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
        o = o << 8 | n
    }
    return d
}

混淆后:

window = {};
window.atob = function (_0xc0750g) {
  var _0xfbb16d = "4|1|2|3|0"["split"]("|"),
      _0xec2868 = 0;
  while (!![]) {
    switch (_0xfbb16d[_0xec2868++]) {
      case "0":
        return _0xec4345;
        continue;
      case "1":
        var _0x1adc16 = String(_0xc0750g).replace(/=+$/, "");
        continue;
      case "2":
        if (_0x1adc16.length % 4 == 1) throw new t("'atob' failed: The string to be decoded is not correctly encoded.");
        continue;
      case "3":
        for (var _0xb342a5, _0x7ecb47, _0xc54a87 = 0, _0xa14d1g = 0, _0xec4345 = ""; _0x7ecb47 = _0x1adc16.charAt(_0xa14d1g++); ~_0x7ecb47 && (_0xb342a5 = _0xc54a87 % 4 ? 64 * _0xb342a5 + _0x7ecb47 : _0x7ecb47, _0xc54a87++ % 4) ? _0xec4345 += String.fromCharCode(255 & _0xb342a5 >> (-2 * _0xc54a87 & 6)) : 0) _0x7ecb47 = e.indexOf(_0x7ecb47);
        continue;
      case "4":
        e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        continue;
    }
    break;
  }
};
window.btoa = function (_0xdc05f0) {
  var _0x39674c = "2|1|0"["split"]("|"),
      _0x902bcb = 0;
  while (!![]) {
    switch (_0x39674c[_0x902bcb++]) {
      case "0":
        return _0xde212b;
        continue;
      case "1":
        for (var _0xed1fcd, _0x33g15b, _0x5153cd = String(_0xdc05f0), _0xeea791 = 0, _0xc94d67 = e, _0xde212b = ""; _0x5153cd.charAt(0 | _0xeea791) || (_0xc94d67 = "=", _0xeea791 % 1); _0xde212b += _0xc94d67.charAt(63 & _0xed1fcd >> 8 - _0xeea791 % 1 * 8)) {
          var _0xcgcd3c = "0|1"["split"]("|"),
              _0x3922ce = 0;
          while (!![]) {
            switch (_0xcgcd3c[_0x3922ce++]) {
              case "0":
                if (_0x33g15b = _0x5153cd.charCodeAt(_0xeea791 += .75), _0x33g15b > 255) throw new t("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
                continue;
              case "1":
                _0xed1fcd = _0xed1fcd << 8 | _0x33g15b;
                continue;
            }
            break;
          }
        }
        continue;
      case "2":
        e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        continue;
    }
    break;
  }
};

混淆后的代码,就是我们常见的obfuscator混淆代码。

github地址,欢迎star:


最新回复 (67)
  • yang3250 5天前
    0 68
    111
  • kav7win 6天前
    0 67
    ffffff
  • 0 66
    6666
  • 梦奇 8天前
    0 65
    学习一波
  • 0 64
    666666666
  • priapus 15天前
    0 63
    先收藏,感谢分享
  • metode 18天前
    0 62
    cai老板yyds
  • yf142857 25天前
    0 61
    dddddddd
  • 0 60
    66666666666
  • smart 26天前
    0 59
    66
  • 晚风 26天前
    0 58
    老蔡tql
  • 唐宋 27天前
    0 57
    666
  • lol_olo 1月前
    0 56
    小白来报道
  • Aster 1月前
    0 55
    感谢分享
  • yzmht 1月前
    0 54
    666666
  • hewcb 1月前
    0 53
    6666
  • arbrad 1月前
    0 52
    111111
  • leveryd 2月前
    0 51
    dddd
  • hccfm 2月前
    0 50
    123
  • 姳楽 2月前
    0 49
    1
  • kuniao 2月前
    0 48
    6666666666666
  • Cc_ 2月前
    0 47
    666
  • dong 2月前
    0 46
    1
  • null119 2月前
    0 45
    6666666666666
  • 0 44
    666
  • safas3 2月前
    0 43
    66666666666666
  • faye 2月前
    0 42
    千只鹤 老板,我想了解一下关于小红书小程序 x-sign的破解方式
    xsign我有,你有cookie的算法么
  • Ghobam 3月前
    0 41
    1
  • 0 40
    老板,我想了解一下关于小红书小程序 x-sign的破解方式
  • 0 39
    6666
  • WhH12FdD 3月前
    0 38
    666
  • 二两 3月前
    0 37
    dddd
  • cannon 4月前
    0 36
    222222222
  • hypn0s 4月前
    0 35
    学习学习,666666
  • liucheng 4月前
    0 34
    666
  • 0 33
    学习
  • 0 32
    学习一下啊
  • 凌点 4月前
    0 31
    学习
  • CodeC 4月前
    0 30
    学习学习
  • 0 29
    过来学习学习
  • 0 28
    学习
  • jjjjjjjj 6月前
    0 27
    6666666
  • 0 26
    66666666666666666666666666666
  • sang 6月前
    0 25
    111
  • dubai 6月前
    0 24
    666
  • Vico 6月前
    0 23
    顶顶顶
  • 一诺 6月前
    0 22
    蔡老板NB
  • 0 21
    111
  • yyjjjj 6月前
    0 20
    111
  • 0 19
    666
  • 0 18
    111
  • poker 7月前
    0 17
    1
  • 小尹 7月前
    0 16
    dddd
  • niceman 7月前
    0 15
    先收藏,感谢分享
  • 小q 7月前
    0 14
    顶一下
  • 0 13
    66666
  • soubei 7月前
    0 12
    瞅一瞅
  • IceSpite 7月前
    0 11
    666666666
  • 0 10
    666
  • 0 9
    用下面顶一顶蔡老板
  • 0 8
    能给个自己文章的修改权限吗
  • Liberty 8月前
    0 7
    蔡老板tql!
  • harvey 8月前
    0 6
    用下面顶一顶蔡老板
  • mmm 8月前
    0 5
    dddd
  • 0 4
    蔡老板tql, yyds
  • harvey 8月前
    1 3
    蔡老板!蔡老板!蔡老板!
  • 0 2
    蔡老板tql,yyds
返回