Windows 下的JavaScript调试 -- 使用IE Developer Tools

说到JavaScript调试,首先想到的是Firefox的firebug(chrome的Developer Tools的调试器也非常不错)其实微软自己的调试器,我觉得就很好,更适合使用
VisualStudio的开发者的调试习惯!我知道的方法有两个:使用VisualStudio,使用IE Developer Tools。本文主要介绍IE8 Developer Tools。

先看一个具体事例:

 

 

这是一个eval的加密,下面就使用IE8 Developer Tools将它解密!

先来把这个eval整理一下:

 

 

eval(
function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[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}
(
'9 a(){8();7 0=4.5(/'6/');0.b(/'#c#i/');4.f(0);d{0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1);0.2(/'3/',1)}h(e){}1.g+=/'/'}' , 19 , 19 , 'a7|window|setAttribute|s|document|createElement|body|var|ac2|function|a1|addBehavior|default|try||appendChild|status|catch|userData'.split('|') , 0 , {}
)
)

仔细分析下得:eval里的参数(也就是一个解密函数)是一个JavaScript匿名函数,结构为:function(p,a,c,k,e,d){…..return p}(p,a,c,k,e,d)。
关键在这个return上,在return上下断点就可以得到最后的解密结果,也就省了我们分析之苦!

准备测试例子

将上述代码保存为test.html

准备IE Developer Tools

使用IE Developer Tools之前要把‘禁用脚本调试(internet Exlpore)‘选项钩掉
Tools>Internet Options>Advanced>Disable script debuggine

Capture

调试测试例子

用IE打开之前的测试例子(直接拖放就可以了),由于IE的安全考虑,你会看到:

Capture

点击允许就可以了,F12打开Developer Tools,切换到Script选项卡,将光标挺放在return p上,F9下断点(虽然所有代码都在一行,但只会断在return p上)

另外,F10步过,F11步入都和我们平时的调试是一样的

Capture

再点击Start Debugging,然后刷新一下IE(重新加载test.html),就正确断下来了!我们来看一下结果:

Capture

可以看到我们已经正确得到返回值p了,拷贝出来看一下:

 

可以再整理一下:

 

 

这样我们就成功使用Developer Tools解密了这个eval了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值