三国魂破解1——resmask.swf
这个是资源文件的映射。
根据index.swf的加载流程,直到初始化会加载:
破解方式:
1 2 3 4 5 6 7 8 9 10 11 12 | 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的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | < 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,程序会自动合并至同一动作对象 --> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库