Yoie
这个作者很懒,什么都没留下…
展开
-
War3 脚本对象句柄管理
War3设计的时候可能没有想到如今的RPG地图的火爆,作为一款RTS游戏来说当初的设计也不会考虑到地图上单位过多的问题(游戏机制有人口限制)。因为在脚本引擎对句柄回收机制这块并没有那么先进(自动回收机制),只是做了个大概,更多需要开发者自己手动去回收,这里就来看看脚本里对于内存回收的逻辑。...原创 2022-07-27 11:12:39 · 856 阅读 · 0 评论 -
War3 游戏内存管理机制
War3是款老游戏,由于那个时代的硬件条件有限,所以对于这种有一定时长的游戏他的内存管理十分的讲究,因为地图内单位过多就会导致内存不足,如果没有合理的分配内存就会直接影响游戏的体验。......原创 2022-07-27 09:55:27 · 1722 阅读 · 0 评论 -
War3脚本引擎(Jass)执行函数分析
Jass是魔兽争霸3中比较重要的一个部分,下面资料通过逆向分析Jass执行脚本期间的一些逻辑和函数。原创 2022-07-27 09:24:52 · 2819 阅读 · 1 评论 -
剥离war3.exe 启动游戏实现
逆向看了下war3.exe发现只是个加载器,核心都是在game.dll内,因此剥之……直接上代码#define BlizAxOffset 0x4C2E4#define GameTitle "Warcraft III"HMODULE hStorm;typedef BOOL (__stdcall *FStorm425)(char *szTitle,char *szPathName,D原创 2016-06-11 00:00:23 · 3179 阅读 · 0 评论 -
War3 132版本获取Jass函数列表
一、调试过程简单的记录下调试过程,详细的就阐述了 首先枚举下游戏内的所有字符串,随便找一个jass的函数名(接触过jass函数都知道),这里就随便找个StoreInteger,就可以找到以下片段:简单分析下,这里有2个CALL,第一个call(7FF624565620)是获取一个对象指针,第二个call看起来就是个注册jass的,通过参数可以得到函数原型:typedef UINT64 (WINAPI *FnRegJassFunction)(PVOID pHandle,PVO...原创 2020-10-26 10:16:44 · 3353 阅读 · 1 评论 -
War3 局域网开局地图校验机制分析
为了保证局域网内每个玩家的地图一致,War3在游戏开局前会同步、校验玩家的本地地图。一、查找本地是否有匹配的地图通过枚举游戏相关目录查找一样名字的地图文件,代码片段如下:00C9785B |. 0F1045 14 movups xmm0,dqword ptr ss:[ebp+0x14]00C9785F |. 57 push edi00C978...原创 2020-04-17 17:43:42 · 1393 阅读 · 0 评论 -
暗黑破坏神2重置版 UI界面管理类分析
一直关注暴雪的游戏,这次来分析下暗黑2重置版里的UI界面数据结构。由于游戏有着各种猥琐的反调检测和保护,所以只能使用伪调试的方式进行静态分析。起手一个字符串枚举看看有什么可用的,从暗黑2的旧版客户端了解下,就从小地图入手!关键字:AutoMap乍一看,显然图二有点东西,那就从这里入手了,跟进去看看代码上下文如图注释,这里应该是注册控件的地方,根据字符串的意思,应该是有个PanelManager的类管理着游戏内所有的界面。那我们就来找下这个类,继续搜索字符串,于是就找到了这里.原创 2021-11-28 12:27:40 · 1323 阅读 · 0 评论 -
暗黑破坏神2重置版 反调保护分析
暴雪游戏的通用保护分析,这里针对暗黑2重置版深入分析一下原创 2022-02-07 10:34:46 · 2596 阅读 · 0 评论