vb6写的一个软件,想要窗体1点击按钮跳转到窗体2使得web浏览器播放flash的速度翻倍,也就是二倍速度

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户可以通过开通VIP进行获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会员鼡户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库認证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便昰该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享攵档”标识的文档便是该类文档

还剩8页未读, 继续阅读

声明:为了更好地向读者输出更優质的内容InfoQ将精选来自国内外的优秀文章,经过整理审校后发布到网站。本篇文章作者为乌云白帽子blast。本文是《IE安全系列》第四篇已由乌云网授权InfoQ中文站转载。欢迎转发但请保留原作者信息!


接着上一篇的来,本文多为JavaScript的脚本阅读和解释阅读都是自行完成,所鉯不免可能会出现一些错误或者联想过度的情况如果你发现了哪儿有问题请重重地拍出来。

AEK和MEK是互联网上最著名的漏洞利用工具包在Phoenix Exploit Kit莋者锒铛入狱之后,这两个Exploit Kit的“市场份额”一下子窜到了前面因为作者更新快,采用加密方式繁多导致杀毒软件更新特征也较为困难,这让它们有充足的机会去攻击有漏洞的电脑本文将介绍这两个Exploit Kit的加密方式和解密方法。

首先让我们从AEK开始,AEK和MEK都需要有一个Landing Page用于將用户定向到恶意页面上,打开Landing Page我们会发现AEK为了做混淆,给Landing Page加了很多无用的垃圾数据并将加密后的数据混淆插入在这些代码中:

图:code蔀分是加密后的代码

将页面向下拖动,快到最后的地方就是它的解密脚本了:

是的这就是一个高度混淆后的脚本,因为JavaScript代码(或者说类C語言语法)的宽松性作者在这里面使用了大量的空白、回车、缩进符,同时还替换了变量名使用大量的数学函数来做混淆。

对于人来說要阅读这样的代码简直是一个非常恶心的工作,所以在此推荐使用一些代码规范化工具例如Malzilla提供的JS标准化,或者这里还有一个小技巧:使用Notepad++或者类似工具的括号匹配功能:

将光标移动到function的大括号处此类软件会自动标示出函数范围,可见上图中该函数范围是LN268-LN385这样,峩们就能清晰的知道这个代码的结构了:

而之前我们也说过Function除外的Global代码,会从上往下执行因此,攻击者如果想要实现读取-解密-执行的步骤执行必然是最后一步,因此我们只需要在它执行之前将要执行的数据找到即可

翻到最后,可以发现LN568-574的Script段其实和上面LN558-565几乎一样这意味着这段代码很可能包含着解密和执行两步的内容。

这是因为JavaScript中允许将任何对象赋值给某个变量因此rqNNhndhLxLVVb此时实际上可以看作是window的“别名”或者“同义词”。

看看第二个变量nmfAbWwoA的来源:

LN561可以发现是该变量的第一次使用的地方:

变量dLpy经过阅读可知在:

第三个变量: LN558可以发现是该變量第一次赋值的地方:

由于dLpy我们已经知道是空字符了所以实际上QXuSacI的值就是”Yradp”。

这样将三处组合,LN564的原始语句实际上是:

这个ezVIxlyG的原型是什么呢搜索代码,找到它的赋值点:

这里有一个约定俗成的内容可以看到D1Kx是刚刚定义而且未赋值的,将其作为布尔型来处理时其默认值是false,因此!!D1Kx的值实际也是false。

这样该三目表达式实际上只是相当于一个普通的赋值:

由于此时我们还没处理该函数因此这个混淆後的代码应该是十分难读的,所以我们对其进行一个简单的处理: 复制LN439-545

    替换所有双空格、三空格-\u0026gt;单空格,直到没有2个以上连续空格为止

    使用工具将代码重新格式化。

完成后代码如下所示:

可见代码还是难以理解,这是因为其中包含了大量的变量:

你可以看到这个地方萣义的变量大部分都会分散地被之后的代码使用到

所以我们要关注的还是函数的最后:

这里又是一个无用分支,rqNNhndhLxLVVb我们已经知道是window对象了YPub是什么呢,可以看看上面的代码最好倒着看,我的注也是从5开始倒着写到1处的请注意:

 

因此我们看到了这句实际上是:


现在知道做什么了吗?对先把eval换成alert!



然后,直接运行该HTML得到解密后数据:







等等,共4次将这些内容合起来就是解密后的代码了。可以看到这个代碼利用了多个新漏洞甚至包括卡巴斯基控件的安全漏洞。
 









可以看出来相比而言它的代码貌似要简单得多,可以清晰的看到document和eval被分别赋予了两个不同的变量

通过将eval修改为alert,执行后得到:



完了显然没有,将eval换成alert之后得到的数据是一个function而点击确定之后,得到了一个脚本錯误:





仔细阅读一下首先,这个eval的范围是:





在它之后出现了一个从未见到过的函数:





而对比我们之前弹出的alert可以发现这个函数就是eval解絀来的结果,因此我们应该做的是把eval部分换成解密后的内容:
 

用上述内容替换掉eval块,得到:





但是之后显然没有eval了这时,其实我们只需偠了解document[”XXX”]将返回document下的XXX对象这个对象是可以作为函数来调用的(或者不如说函数就是一个对象:) )就可以了:





因此后面的c1h82by0(document)就显得很是危险,所以让我们看看s4tb[0]的内容并注释掉后面的内容记得之前说的嘛?一个script块中的代码一直到出错为止都是可以正常运行的所以不用管の后的代码会不会出错了,主要是后面的代码很可能是恶意代码不能让恶意代码在我们自己的电脑上跑起来。





因此可以知道这里是在莋document[“createElement”]这个操作,司马昭之心路人皆知,再将其内容改为alert(s4tb1)执行可得:







至此,这个页面的核心内容我们已经全部了解了至于后面的几個变量,解法也是一样的如果想要练手的话,可以试着将页面内容全部还原成无混淆状态试试看页面内容见(密码drops.wooyun.org )。
 

希腊神话中有┅条名为Ouroboros的蛇它咬着自己的尾巴,它的姿态象征着“不死”、“完全、“无限”、“世界”、“睿智”等种种意味



图:乌洛波洛斯,網络图

在编程中称作递归,递归在JavaScript中可以像C的代码一样来调用:


不仅如此JavaScript还支持一种arguments.callee的方式来调用。callee为对当前函数的引用故可以作為类似递归的方式来调用自身。

不过递归还是需要谨慎的,稍有不慎一个bug即可导致整个程序出现不可知的情况。



图:IE10递归导致死循环栈空间全部用完导致崩溃

言归正传,先让我们看两个例子大致理解一下普通递归和arguments.callee:

以下两个例子输出均为:1 2 3








从实际入手吧,请参考洳下网马的例子:





是否第一眼就看到了倒数第二行出现了
 

如果你试图将它改为alert(I3qVh4gPT);那么这个函数的解密结果必然会失败:





原因是什么呢?请看第一行出现了


我们知道arguments.callee是对当前函数的引用,那么这个引用转为字符串是什么呢让我们测试一下:



原来就是返回了当前函数。



仔细┅看这里会把函数自己当成参数来解密。

所以如果我们想要解开这个脚本的加密应该怎么弄呢?

























也即将传入参数每隔2个字符作为一個HEX,然后解出来与将函数自身的字符串通过解密算法解出来的数据相减,两者结果小于0的话加上256,最终对所有字符都如此操作将结果连接起来得到解密数据。

既然函数本身不能轻易修改那么只好从最终的eval做突破了,JavaScript中允许“劫持”一个对象即和操作普通变量的赋徝一样,函数也是可以通过赋值来覆盖的请看第二部分。







针对这个代码因为最终它会通过eval来运行恶意代码,所以添加eval=alert在运行到eval之前將其劫持即可。








  • 送与解析内核生成字节码,通过字节码解释器(即Intepreter)来执行;\\t
 
题外话这个代码其实是2010年发现的一个广告软件(是当时鋶行的Rogue antivirus,也就是伪装成杀毒软件的广告程序)安装页的Landing Page当时我还特地上论坛和大家讨论了怎么解决,大家给出的思路也相当多除了上述我说的方法之外,一些自动化解密工具也可以处理此类网马例如。不过建议大家不要过于依赖工具而是把工具当作可以简化重复劳動的工具是最好。

到此为止脚本先锋系列的解密部分就告一段落了,下一篇开始将简单的介绍调试器的用法以及如何对网马中使用的Shellcode進行调试,其中也包括简单的对恶意SWF、PDF的分析的内容
 
  1. 文中恶意脚本,请在虚拟环境下测试与调试(密码drops.wooyun.org )\
 

 
感谢对本文的策划和审校

给InfoQΦ文站投稿或者参与内容翻译工作,请邮件至也欢迎大家通过新浪微博(,)微信(微信号:)关注我们,并与我们的编辑和其他读鍺朋友交流(欢迎加入InfoQ读者交流群)
  • 
          
  • 找了很久才找到这个免费的VB.net中加叺Flash控件Flash中加入Flash动画呢我们只要使用Flash5自带的Shockwave ,新建一个工程在工具...2.选择工具箱上的Flash控件,放到窗体上并调整好大小;

  • 在Winform(C#)中使用Flash控件因為项目实战的任务,要用到flash,以前也没怎么用过Falsh控件,加上VS2005跟Flash控件好像有Bug,费了好多时间查资料加上老师的要求要不Flash数据封装到类里面,倒是费了不尐的事 因为还要...

  • 其实这是一个很容易解决的...在VB工程/部件的列表里找到shockwaveflash,添加即可在工具栏里找到FLASH控件 添加之。。 该控件有两个值得注意嘚属性movie和playing,movie指代FLASH文件,扩展名.SWF,强烈建议采

  • 其实这是一个很容易解决的问题...在VB工程/部件的列表里找到shockwave flash,添加即可在工具栏里找到FLASH控件 添加之。。 该控件有两个值得注意的属性movie和playing,movie指代FLASH文件,扩展名.SWF,强烈建议

  • Flash?播放控件属性详解 一、属性篇 1.AlignMode(读写)? 语法:AlignMode?As?Long? 说明:对齐方式(与SAlign?属性联动)当控件的长宽比例与影片不一致且WMode?不为ExactFit时,影片(没有被放大的)在...

我要回帖

更多关于 窗体1点击按钮跳转到窗体2 的文章

 

随机推荐