wow之OD调试

Long time since I posted on these forums. Last time I think it was like 2-3 years ago, during BlizzHackers times. Good times hehe
I spent a lot of time last days reading materials about this issue. It seams not many developers are eager to share info

Here is a way I found to get a few hundreds function pointers:

1. Google: ollydbg. Unzip and run ollydbg.exe
2. Start Wow.exe
3. In Ollydbg. File -> Attach -> WoW.exe -> Attach. Give the debugger a few seconds to parse the big list of modules and hurry up to resume the execution (press the "play" button on toolbar), so WoW can be happy.
4. View -> executable modules (or press ALT-E) and select WoW. Press Enter or double click it.
5. Right-click -> Analysis -> Analyse code (or press CTRL-A). Wait for the debugger to parse the modules. This is good that we will be able to spot beginning/ends and params of the functions found.
6. In the new window, right click -> Search for -> All referenced text strings. Wait a few seconds for the debuger to parse the modules.
7. In the new window, right-click -> Search for text. Type "Usage:" and make sure the entire scope is checked. Press Enter on a found entry to get sent in the CPU window to the function body.
8. Use the markings made by the analysis to find the beggining of the function.
9. Press CTRL-L in the text strings window to go to the next function

The good part, these pointers never change, they are static.
The sad part, these are all public LUA function, so nothing juicy like your character position, orientation or things like that.

But its always "healthier" to call UnitHealth(player) than trying to read the health variable directly from the data segment, because that one is different each time you load the game.

I'd like some feedback from anyone who found any more "juicy" internal functions. C'mon, don't be "shy"

EDIT: maybe not all those functions found with my method are innocent.
E.G.: 00405CB0 worldport <continentID> [x y z] [facing]

NextActions 是 wow 自动施法按键助手。作者: watano(watano@qq.com)为什么需要这样一个"外挂"呢?wow是本人最爱的一个网游,从国服公测开始一直玩到现在, 但基本属于修仙玩家,没有参加过60年代的公会团.在wow中,经常需要长时间无脑刷怪或者随机副本,但因为工作原因,经常没有足够的时间精力,所以开发 出此程序,帮助我自己刷怪刷随机副本.此程序从国服TBC时代就开始使用,后来转战台服也仍然继续使用,但一直没有开放给其他人使用,只是自己自娱自乐使 用.运行原理NextActions是一个标准的wow lua插件,她调用wow API分析当前游戏角色及目标状态数据,计算当前最佳施放法术, 然后在屏幕左上角的一个固定显示区域中显示法术对应的颜色块. 同时, 一个autuIt3编写的脚本程序NextActions.exe将检测屏幕左上角的固定区域中的颜色,并模拟键盘按动颜色块对应的快捷键完成法术施放.NextActions可以做什么?非战斗状态下,根据选择profile绑定可用法术快捷键;目前支持到36个法术的绑定,计划支持物品和宏绑定非战斗状态时,对友好目标补buff;非战斗状态时,自动对敌对目标施放伤害法术;战斗状态时,判断目标友好状态,自动施放最优增益或伤害法术;战斗状态时,根据当前玩家血量及魔法值,自动施放技能回血回蓝;玩家选择Max DPS模式时,自动施放增益法术或者开启饰品;每个职业可以有3-4个独立配置profile支持不同天赋, 3个运行模式:MaxDPS-最大化输出,一般在需要发大招时使用; AOE-A怪的时候使用; SOLO-单刷做任务的时候使用,可以自己回血,释放一些小大招,自动开怪等.支持wow版本TBC: 法师,猎人,奶德(曾经支持过,后转战台服,没有reroll法师和猎人)WLK 3.3.5: 奶德(完美支持), 熊德(准完美), 树德、貓德及3系DK(可用,但dps不是最优)CTM 4.x: 熊德,防骑(完美支持), 惩戒骑士,貓德,树德(基本可用)MOP 5.x: 完美支持血DK,冰DK,兽王LR,惩戒骑,防骑,奶骑,毁灭SS. 基本可用的有:狂暴战,防战,冰法,奥法,野德,恶魔SS.WOD 6.0.2: 完美支持兽王LR. 基本可用的:狂暴战,冰法,奥法,野德,血DK,冰DK,兽王LR,惩戒骑,防骑,奶骑,毁灭SS.使用帮助安装NextActions插件: 解压缩NextActions.rar到wow的Interface\AddOns\目录下, 启动wow后应该可以在插件列表中显示NextActions插件.运行NextActions.exe程序设置wow的视频选项,设置为"窗口最大化" 注意:此选项必须选择,否则NextActions将不能正确模拟按键!运行wow,选择启用NextActions插件,并进入角色检查插件是否争取运行. 正确运行时应该在wow左上角显示一个黑色方框,同时屏幕上还会显示NextActions的主界面.界面说明:选择当前使用的配置文件profile(每个职业目前支持3个配置,详细配置说明请参见职业profile章节)选择运行模式, 目前NextActions支持MaxDPS,AOE,SOLO 3种模式. 分别对应3个checkbox命令行说明:/na version 或者 /na ver 输出插件版本号/na toogle 切换是否启用/停用插件/na 0 或 /na 1或/na 2 切换运行配置/na mykey 作者自己使用的一些按键绑定,不喜欢的请不要使用. 这个不影响插件使用/na myui 作者自己使用的一些界面设定,不喜欢的请不要使用. 这个不影响插件使用职业Profile猎人兽王猎: 目前只支持兽王天赋.暂时没有优化wow 6.0.2下的dps, 所以这个只保证可以正常使用,最大化输出就不要指望了.SOLO模式下可以自动奥术射击开怪;非MaxDPS和非战斗状态时, 自动切换到猎豹守护提高奔跑速度非战斗状态时,自动治疗宠物兽王猎人配置5分钟测试数据: 射击天赋: 目前暂时还不支持6.0.2生存天赋: 目前暂时还不支持6.0.2武器战:不可用死亡骑士双手冰DK:支持使用双手武器的冰DK.功能完备,但是还没有对wow6.x进行优化输出.血DK:支持血天赋.功能完备,但是还没有对wow6.x进行优化输出.双持冰DK:支持双持武器的冰DK.功能完备,但是还没有对wow6.x进行优化输出.惩戒骑:功能完备,但是还没有对wow6.x进行优化输出.奶骑:可用,但是相当不好用,敬请期待下个版本.法师奥法:仅仅只是能用冰法:仅仅只是能用火法:暂时不可用毁灭术士:功能完备,但是还没有对wow6.x进行优化输出.痛苦术士:仅仅只是能用德鲁伊熊德: 仅仅只是能用猫德: 不可用恢复德: 不可用平衡德: 不可用其他职业暂时不可用目前已知问题只支持自动释放法术, 使用物品和释放宏命令将在以后版本支持wow 6.0.2下暂时没有优化输出序列,所以不要指望最大化输出暂时多个同类天赋技能判断不太准确,所以可以使用注释代码的方式支持多个技能战斗时不能聊天, 因为本程序使用模拟按键方式施法,所以在战斗时会影响聊天的按键操作. 计划在以后版本中增加聊天激活检测不能记住上次释放的技能,所以会多次重复按键释放同一个法术. 目前只是做了个延时判断,并没有真正解决此问题. 计划在以后版本解决此问题.由于个人习惯问题,所以提示信息暂时都是英文的,计划在以后版本支持多语言.为了方便编写,使用dart编写了一个lua代码生成器,代码比较混乱,暂时不开放相关源代码.此插件的相关源代码都已经开放源代码,有兴趣的朋友可以随意修改. 改版的请通知我一下,让我也乐呵乐呵.此插件不包含任何木马后门,但不保证其他人挂马,所以请到项目开源地址下载使用!NextActions作者很懒,所以不要指望提交插件到各大发布网站,需要的请从项目地址下载!原则上此插件应该不会导致被暴雪封号. 如果被封号了,请及时检查自己的使用方式并通告其他人,同时也请大家为他默哀10分钟!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值