swf文件里面塞shellcode是现在的趋势 shellcode里面也是有各种各样的奇葩加密方式 阅读代码再写解密模块虽然是个好方法 不过有时候未免比较蛋疼 因为代码实在是太长啦 发一个解密小姿势=v=
1/ 用swf decomplier或者类似软件将swf转为as脚本
类似C/java的风格的语法,阅读起来是没问题的,但是假使解密起来比较麻烦的话,还是要费不少工夫的
把它保存为一个as文件,例如tope.as
2/在adobe flash cs5 professional中新建一个as3工程,保存,简单起见和之前的名字一样,比如,命名为tope.fla
3/文件-打开tope.as
4/设置tope.fla的文档类为tope(不要带as)
5/修改as的代码,保证它import了Sprite类,这里可以看到cve-2014-1776的swf的基类其实就是Sprite
[mw_shl_code=javascript,true] public class tope extends flash.display.Sprite
{[/mw_shl_code]
6/找到解密的地方,把它原来的内容给注释掉,换上
trace(encode(.....().toString()));
例如:
7/为了必要的分支走向,也可以直接指定部分条件,比如在这里就可以设置this.m_status=7;让它直接进这个if段.
8/按下Ctrl+Enter,执行swf
第一行即为我们的trace结果.
至于后面的警告提示,是多次timer回调的结果,因为我手动指定了m_status改变了它的流程,不用管它就好了
|