zoukankan      html  css  js  c++  java
  • 三国魂破解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,就不说了。会被跨省。 解压出来大概内容:

    <resmark>
    
    	<!-- 游戏资源标识系列信息 -->
    
    	<!-- 如设参数isAbsoluteURL: 是否绝对路径 主要是方便以后策划更新数值后,设置不同路径的调试 -->
    
    	<!-- 加密类型:encryptType 无此参数 或值为0,则没有加密,根据后缀相应加载,1为XML文件类型加密,2为SWF类型加密,3为图片类型加密,4为纯二进制文件 -->
    
    	<!-- 公共域Id: domainId: 
    
    	    1 (公共资源),2(角色动作),
    
    	    3: 其它模块,角色创建(1000),
    
    	    4:怪物、NPC动作,
    
    	    9:副本
    
    	    10(战斗模块),
    
    	    11(log面板) -->
    
    	<!-- 隐式加载添加优先级priority: <0(不需要进行隐式加载) >=0(按照优先级进行隐式加载)--> 
    
    	<!-- 是否本地储存对象:isSharedObject 1 为本地储存对象 -->
    
    	<!-- 动作模型:角色或怪物跑及站立动作与战斗动作(攻击、受击、战斗待机)分开,但程序最终以跑和站立动作Id为准,战斗动作需加入动作Id源参数:sourceResId= 跑和站立动作Id,程序会自动合并至同一动作对象  -->
    
    	
    

      

     

  • 相关阅读:
    设计模式之抽象工厂模式
    MQ任意延时消息(三)基于服务端实现
    MQ任意延时消息(二)基于客户端实现
    MQ任意延时消息(一)实现原理概述
    sqlyog报错2058
    base标签的作用
    相对路径和绝对路径的解释
    自定义Tomcat部署目录
    常用正则表达式
    接口的结构定义
  • 原文地址:https://www.cnblogs.com/zc22/p/3727829.html
Copyright © 2011-2022 走看看