Loading... 随着TBC版本的开放,该游戏又迎来一波高潮。 考虑到之前基于handycontrol开源控件库开发的中控还是不太契合自身审美,参考早些年国外开源的一款软件界面,进行了中控的重新设计开发。 ## 一. WPF整体代码结构 Views文件夹:与界面及控件相关,后缀为 .xaml。 ViewModels文件夹:与模型相关。 Converts文件夹:实现界面数值转换功能。 Event文件夹:各模型之间交互事件定义。 Settings文件夹:全局变量、任务相关变量定义及持久化存储。 Utils文件夹:各工具类,包括日志输出、aes加解密函数、及INI配置文件操作。 ## 二.下一步工作 ### 1.lua功能逆向 依据国外某论坛相关信息,及与lua5.1.4源码及逆向代码对比分析,对游戏lua功能进行逆向分析。 包括globlestate、lua_state、callinfo,及Frame_ExcuteScript、Frame_GetRet、registerCFunction等与lua相关关键代码进行分析。 ### 2.功能细节 控件类:包括button、edit、list、dialog等各类控件遍历。 宏类。 对象管理。 地图导航(话说recastnavigation真晦涩难懂,谁能解救我于苦海)。 异常处理。 ### 3.中控优化 努力打造为一款具备重用功能的管理控制台。 ## 三.吐槽 * 尝试了下NSA开源的Ghidra,其auto analysis又慢又难用。虽然IDA的自动分析也还是需要几个小时,但是相比Ghidra的一天,还是在可接受范围内。 * 如同草莽般手工分析二进制,真不是人干的活。 * 严格按照MVVM风格进行代码组织和编写,真特么的麻烦,WPF项目不大的情况下,还是不要用第三方MVVM库的好。某种意义上讲,易语言(不支持x64)在特定圈子的流行是有原因的。 * 对于游戏中大量存在于关键函数的加花、乱序跳转,手工识别花指令、堆栈平衡的工作量,真太大了。真服了阿三这帮“鬼才”。 最后修改:2021 年 09 月 22 日 11 : 38 AM © 禁止转载