如何调试嵌入在页面中间的混淆 JavaScript
How do I debug obfuscated javascript embedded in the middle of a page?
我试图弄清楚这个页面是如何工作的。最值得注意的是,以下一段javascript如何生成出现在页面末尾的元素:
<div class="lienPlusCom">[ <script language="JavaScript">jsdchtml3('aºerh "=fecer¦ttr¦settecea-e_sivocikoap-se-sidroiana-serxupep--seti-edcohclo-tais-teored-pac-lemar1_1896psa.3 "x"=ditc00lMhpc_ianoCnnetC_m_trtceRlFettehcisiDelp_yamtH_mAlohcnoVruoTriLsoCsetnemmria "selcssaeil"=PnCsul"mosulP¹d oc etnemmria¦ºse¹a');</script> ]</div>
但是我的JavaScript调试技能相当有限。有没有人可以建议我如何在浏览器"去混淆"此代码后逐步执行此代码?我目前正在使用带有火虫的火狐进行大部分调试,但如果需要,我非常愿意切换到另一个工具。
Put
debugger;
您希望脚本停止的位置。然后你可以查看所有这些变量和元素以及所有这些东西,看看问题出在哪里。
JavaScript 正在这个长字符串上调用一个名为 jsdchtml3()
的函数:
'aºerh "=fecer¦ttr¦settecea-e_sivocikoap-se-sidroiana-serxupep--seti-edcohclo-tais-teored-pac-lemar1_1896psa.3 "x"=ditc00lMhpc_ianoCnnetC_m_trtceRlFettehcisiDelp_yamtH_mAlohcnoVruoTriLsoCsetnemmria "selcssaeil"=PnCsul"mosulP¹d oc etnemmria¦ºse¹a'
我们可以对jsdchtml3()
进行一点点去混淆:
jsdchtml3=function(s) {
if (!jsdchtml3.p) {
String.prototype.afca=String.prototype['ch'+'ar'+'At'];
jsdchtml3.k='243524534235';
jsdchtml3.ra=Array('º<','¹>','¦/');
jsdchtml3.u=function(s) {
if (!jsdchtml3.u.r) {
jsdchtml3.u.r=Array();
for (var i=0,a;i<jsdchtml3.ra.length;i++) {
a=jsdchtml3.ra[i].split('');
jsdchtml3.u.r[i]=Array(new RegExp(a[0],'gi'),a[1]);
}
}
for (var i=0;i<jsdchtml3.u.r.length;i++)
s=s.replace(jsdchtml3.u.r[i][0],jsdchtml3.u.r[i][1]);
return s;
};
jsdchtml3.r=function(a,b,c) {
for (var j=c-1,o='';j>=0;j--)
o+=a.afca(b+j);
return o;
};
jsdchtml3.p=function(f,a) {
var t=jsdchtml3.u(f),i=0,p=0,n,o='';
while(p<t.length) {
n=parseInt(a.afca(i++ % a.length));
o+=jsdchtml3.r(t,p,n);
p+=n;
}
return o;
};
}
document.write(jsdchtml3.p(s,jsdchtml3.k));
};
这将做一个jsdchtml3.p(s,jsdchtml3.k)
document.write
,其中s
是长字符串。通过函数遵循此控制流...有点混乱!
相关文章:
- javascript可拖动滑块,可在mouseUp上捕捉回中间位置
- Javascript和Canvas绘制中间有孔的圆
- Regex获取每个单词的中间部分javascript
- 在javascript函数中间暂停
- 链接一系列具有中间延迟的javascript事件
- 在javascript中查找中间纬度和经度
- 考虑到我在JavaScript中使用.replace.更改了特定单词中间的另一个字符,我如何在该单词之前添加字符
- 什么是中间JavaScript的静态缓存
- 如何结束 JavaScript 程序中间程序
- 是否可以省略一组中间的 Javascript 函数参数
- Javascript for loop 缺少中间部分:错误或高级
- 如何使用 Javascript 从字符串中间提取然后重新格式化文本
- JavaScript - 如何在内容中间插入HTML代码
- JavaScript 替换第一个/最后一个字母并将中间文本括在标签中
- 如何在中间人中包含 JavaScript 4.
- 从JavaScript调用PHP静态方法,而无需中间PHP脚本
- 如何在javascript中组合两个变量,中间有逗号
- 如何调试嵌入在页面中间的混淆 JavaScript
- 自定义掩码函数不工作时,插入字符在中间Javascript/JQuery
- 中间javascript: ajax请求的包装函数稍后执行主函数