三国魂破解1——resmask.swf

这个是资源文件的映射。

根据index.swf的加载流程,直到初始化会加载:

 

破解方式:

			var l:URLLoader = new URLLoader();
			l.dataFormat = URLLoaderDataFormat.BINARY; 
			l.addEventListener(Event.COMPLETE, function(e:*):void{
				var data:ByteArray = l.data;
				data.uncompress();
				var byteObj = unCompress(data, _resEncryptKey);
				data = byteObj.bytes;
				data.position = 0;
				data.uncompress();
				trace(data.readUTFBytes(data.length));
			});
			l.load(new URLRequest('../resmark.swf'));

其中:unCompress的方法:

		public static function unCompress(param1:ByteArray, param2:String) : Object
		{
			var _loc_3:Number = NaN;
			var _loc_4:* = new ByteArray();
			var _loc_5:String = "";
			var _loc_6:String = "";
			param1.position = param1.length - 1;
			var _loc_7:String = "";
			var _loc_8:* = param2.length - 1;
			while (_loc_8 > -1)
			{
				
				if (_loc_7 == "")
				{
					_loc_7 = param2.substr(_loc_8, 1);
				}
				else
				{
					_loc_7 = param2.substr(_loc_8, 1) + _loc_7;
				}
				_loc_8 = _loc_8 - 1;
			}
			_loc_3 = param1.length - param2.length - 1;
			var _loc_9:Number = 0;
			var _loc_10:* = new ByteArray();
			var _loc_11:int = 0;
			while (_loc_11 <= _loc_3 - 2)
			{
				
				if (_loc_9 >= _loc_7.length)
				{
					_loc_9 = 0;
				}
				_loc_10.writeByte(param1[_loc_11] - _loc_7.charCodeAt(_loc_9));
				_loc_11++;
				_loc_9 = _loc_9 + 1;
			}
			var _loc_12:* = new Object();
			_loc_12.bytes = _loc_10;
			return _loc_12;
		}// end function


至于加密的key,就不说了。会被跨省。 解压出来大概内容:

 



	

	

	

	

	 

	

	

	

  

 

你可能感兴趣的:(三国魂破解1——resmask.swf)