如何破解混淆的js代码

送外卖 2016-10-09 09:52:19
_083 = _2[83] = function() {
var _, r, n, e, a, i, f, t, u, o, c, b, k = _1,
v = _1 - 104,
s = v - 1,
l = v - 24,
h = v - 32;
if (_1 -= 136, _ = _107(), 1 & (_ > 0 | 0)) {
r = 0 | s,
r = 0 | l,
r = 0 | h,
r = 0 | h,
n = h + 4 | 0,
e = _;
_: for (;;) {
a = 0;
r: for (;;) {
if (i = _7[65], 1 & (a === i | 0));
else if (i = _110(a), 1 & (0 === i | 0));
else if (t = i, i = _7[t >> 2], 1 & (0 === i | 0)) {
if (u = _110(a), e = _03346(178), f = -4 & ((( - 1 & u) + 4 | 0) + (e << 2) | 0), e = _7[( - 1 & (f + 4 | 0)) >> 2], o = _7[( - 1 & (f + 8 | 0)) >> 2], c = _7[( - 1 & (f + 12 | 0)) >> 2], b = _7[( - 1 & (f + 16 | 0)) >> 2], _0235(l, c, o, b, e), _7[r >> 2] = s, _7[n >> 2] = l, _084(a, h, l), f = _87, 1 & f);
else if (_109(a), e = _107(), 1 & (e > 0 | 0)) break r;
break _
}
if (a = a + 1 | 0, !(1 & (e > a | 0))) break _
}
}
}
_1 = k
}

大量的这种函数,包括大量的数组和移位运算,好像是把代码存在数组里面了,各位有什么高招吗
...全文
568 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
当作看不见 2016-10-09
  • 打赏
  • 举报
回复
感觉没法看,除非花时间看懂每个函数的意义,或者使用多组数据测试,,统计结果,根据输入输出,逆推功能
  • 打赏
  • 举报
回复
混淆没有办法还原,除非你自己通读所有代码,搞懂每个函数是干什么的才能起有意义的名称 这个就是做了写按位或操作之类比较少用的运算符而已,自己去看运算符做的什么操作,怎么计算的就知道这个函数干嘛的了,还有注意运算符的优先级 http://blog.csdn.net/wl110231/article/details/8163064
高坚果兄弟 2016-10-09
  • 打赏
  • 举报
回复
"好像是把代码存在数组里面了" 目测加密后代码还原好后会调用eval函数,如果是这样就好办了 在他的代码还没有开始运行之前,修改eval函数

var _eval=eval;
eval=function(s){
  console.log(s);//输出他的解密后代码
  _eval(s);//继续执行
}

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧