魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽世界私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
魔兽私服
2008年12月4日星期四
被Bug惯坏了的玩家真是悲哀
« 被Bug惯坏了的玩家真是悲哀wowsf最新特效发动原理 »
魔兽世界单机版GM超变态技能代码.learn 38905 绫彩护盾 攻击造成11点伤害.learn 40810 军刀猛刺 貌似1万多伤害.learn 40827 罪孽射线 受法术效果加成 普通7000+ 几乎全屏.learn 40860 败德射线 debuff 普通2000+一跳.learn 40861 堕落射线 伤害颇低 .learn 40871 致命吸引 类似奥爆 受加成 普通2000左右.learn 40728 暴烈乱舞 对目标造成极速近战伤害 4000以上.learn 40722 鸭人之神的意志 观赏魔法.learn 40721 暗影箭雨 如题 约1200伤害.learn 40719 火焰打击 范围约40码..伤害很低 200+.learn 40718 地狱列焰 450+.learn 40714 困惑的苦工 观赏魔法.learn 40713 禁锢 无效果 脚底一个奥术小球.learn 40693 牢笼陷阱 观赏魔法 类似传送后效果.learn 40685 暗影打击 dot魔法 每3秒4500-5700+伤害.learn 40683 激怒 buff魔法 1.3秒施放 持续20秒伤害+50%攻击速度30%.learn 40678 超级跳跃 群体魔法 瞬发 范围200+伤害加昏迷 带屏幕震动..learn 40674 制造便捷邪能火炮 观赏魔法 类似吸蓝.learn 40674 邪能火炮冲击 50+伤害
魔兽世界私服单机版GM超变态技能代码.learn 40671 生命通道 引导技能 为目标每秒2000血..真叼.learn 40657 上古列焰 dot技能 每3秒300+.learn 40655 天空卫队的闪耀 观赏技能 飞机后面帽烟
.learn 40736 死亡冲击 10000 暗影伤害2.5秒施放.learn 40737 暗影新星 10000 暗影群体 瞬发 回血.learn 40733 神圣之盾 无敌蛋壳 无时间.learn 40653 旋风斩 范围近战 普通攻击加100伤害.learn 40649 地狱火炮 指定区域 100码反射炮弹攻击范围约1码范围 1000+ .learn 40647 暗影牢笼 范围魔法 瞬发 超大范围 昏迷30秒.learn 40636 恐惧怒吼 范围魔法 1.5秒释放 超大范围 恐惧数秒.learn 40634 召唤小新 观赏魔法 召唤象宝宝.learn 40631 烈焰冲击 范围魔法 对前面区域造成7500+伤害.learn 40630 酸液喷泉 范围魔法 40码距离指定区域 3500+每3秒.learn 40629 酸液喷泉 范围魔法 直接区域 3500+伤害.learn 40621 水下呼吸 范围buff 附近对友水下呼吸持续30分钟.learn 40614 召唤蛋蛋 观赏魔法 召唤蛋中小鸟.learn 40613 召唤威利 观赏魔法 召唤独眼.learn 40610 光芒 范围buff 持续1分钟 对身边敌人5000+伤害.learn 40604 邪能狂怒 buff 加目标生命上限 不能对友军及自己.learn 40602 冲锋 单体技能 10-40码距离无CD冲锋 无昏迷效果.learn 40601 愤怒 buff 加自己8%攻击速度可重叠20次 持续10秒.learn 40599 弧光顺辟 范围近战 带致死的顺劈斩.learn 40598 火球术 单体魔法 2秒施放 2800+蓝色火球.learn 40597 驱逐 单体近战 普通攻击加1000强度的攻击带昏迷2秒 冷却2秒.learn 40596 speed buff 移动速度加100%持续6秒 只能对自己.learn 40595 邪酸吐息 范围魔法 对前面10码敌人造成2850-3150自然伤害 并每秒造成2750伤害持续5秒(40508)持续20秒2秒施放.learn 40594 邪能狂怒 观赏魔法 体形变大对自己使用.learn 40592 战争震击 范围魔法 1秒施放 60码范围21000+伤害 并且每3秒1000 .learn 40585 黑暗壁垒 单体魔法 3秒施放 每3秒3000 引导.learn 40574 午餐伞 观赏魔法 召唤一把遮阳伞.learn 40571 speed buff 移动速度加100%持续10秒 可对任何人用.learn 40565 吞噬精华 单体魔法 吞噬一人生命回自己的血 10-40码距离 30秒冷却.learn 40564 回武器 观赏魔法 从对手身上飞来自己的武器.learn 40563 投武器 单体魔法 投出自己的武器5-45码 8秒冷却 8000+伤害.learn 40562 邪能烈焰 观赏魔法 对前面锥型区域造成1伤害.learn 40560 惩罚打击 单体近站 使用两把武器造成伤害 对昏迷敌人造成3倍伤害.learn 40557 飞跃攻击光环 观赏魔法 释放滚地绿色大火球.learn 40554 火球术 单体魔法 3秒施放30码距离1100+伤害.learn 40549 召唤猩猩 观赏魔法 召唤猩猩宝宝.learn 40545 邪恶生长 观赏魔法 10秒施放 变大.learn 40542 扭曲护甲 观赏魔法 使自己护甲变为0 周围环绕光芒.learn 40538 顽强 buff 生命上限提高1750.learn 40536 闪电链 范围魔法 45码内攻击5个敌人7000+.learn 40535 治疗药水 单体魔法 回满血.learn 40532 沼泽花击退 范围魔法 100码飞敌人.learn 40530 野餐 摆放火锅和野餐布.learn 40506 恶魔形态 buff 对附近敌人造成6500+伤害.learn 40504 顺辟斩 范围近站 110%攻击面前3人.learn 40501 吸收生命 吸收附近所有生命1分钟冷却.learn 40497 混乱冲锋 范围魔法 5-35码冲锋 附近造成20000+火伤 15秒冷却.learn 40496 混乱重击 范围魔法 附近20000+火 2秒施放.learn 40492 践踏 范围魔法 约附近8码距离4000+伤害.learn 40491 混乱打击 单体近站 迷惑8秒.learn 40488 践踏 范围魔法 约8码附近 普通伤害加510-650.learn 40487 致命瞄准 buff 攻击强度加275 持续8秒.learn 40486 弹射 单体近站 普通攻击加1000带击飞.learn 40483 灰舌的洞察 buff 法术急速等级加145 持续5秒.learn 40481 酸性创伤 单体近站 护甲降低500 每3秒300自然 可重叠.learn 40480 地狱火之力 buff 提高法术220点 持续5秒.learn 40472 持久审判 单体近站dot 8秒内480点伤害.learn 40471 耐久光环 buff 12秒内回复760点伤害ff.learn 40466 能量涌动 buff 攻击强度275 持续10秒.learn 40842 精神鞭笞 7500+的精神鞭笞..洋气......learn 40461 攻击弱点 buff 爆等级提高145 持续10秒.learn 40459 火焰之血 buff 回330+血 力量提高55.learn 40452 塞纳留斯嘱咐 buff 力量加120 持续8秒.learn 40446 艾露恩祝福 治疗效果提高210 持续8秒.learn 40465 某偶某祝福 伤害150法术 持续8.learn 40441 神圣愤怒 法伤220 8秒.learn 40444 战士等待试.learn 40434 击退 .learn 40433 千跃裂隙 范围魔法 1300+伤害并范围内每3秒450+.learn 40425 魔爆 超大型 越7000+伤害 5秒施放.learn 40424 奥术箭雨 3000+.learn 40420 闪电吐呼 2000+.learn 40751 沉默 只有公共冷却.learn 40770 碎甲 降低敌人3000护甲 持续8秒.learn 40811 灵翼幼龙 召唤小龙无限招..无多大用处 好玩.learn 40823 沉默尖啸 群体沉默 持续10秒.learn 40832 烈焰碰撞 蛋蛋技能召唤一堆能造成区域伤害的火焰5000+.learn 40835 静止力场 单体 昏迷对方越4秒还是3秒 忘记了
Tags: GM 魔兽私服架设
发布:fox 分类:仿官方魔兽私服 评论:0 引用:0 浏览:22
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
魔兽世界单机版GM超变态技能代码.learn 38905 绫彩护盾 攻击造成11点伤害.learn 40810 军刀猛刺 貌似1万多伤害.learn 40827 罪孽射线 受法术效果加成 普通7000+ 几乎全屏.learn 40860 败德射线 debuff 普通2000+一跳.learn 40861 堕落射线 伤害颇低 .learn 40871 致命吸引 类似奥爆 受加成 普通2000左右.learn 40728 暴烈乱舞 对目标造成极速近战伤害 4000以上.learn 40722 鸭人之神的意志 观赏魔法.learn 40721 暗影箭雨 如题 约1200伤害.learn 40719 火焰打击 范围约40码..伤害很低 200+.learn 40718 地狱列焰 450+.learn 40714 困惑的苦工 观赏魔法.learn 40713 禁锢 无效果 脚底一个奥术小球.learn 40693 牢笼陷阱 观赏魔法 类似传送后效果.learn 40685 暗影打击 dot魔法 每3秒4500-5700+伤害.learn 40683 激怒 buff魔法 1.3秒施放 持续20秒伤害+50%攻击速度30%.learn 40678 超级跳跃 群体魔法 瞬发 范围200+伤害加昏迷 带屏幕震动..learn 40674 制造便捷邪能火炮 观赏魔法 类似吸蓝.learn 40674 邪能火炮冲击 50+伤害
魔兽世界私服单机版GM超变态技能代码.learn 40671 生命通道 引导技能 为目标每秒2000血..真叼.learn 40657 上古列焰 dot技能 每3秒300+.learn 40655 天空卫队的闪耀 观赏技能 飞机后面帽烟
.learn 40736 死亡冲击 10000 暗影伤害2.5秒施放.learn 40737 暗影新星 10000 暗影群体 瞬发 回血.learn 40733 神圣之盾 无敌蛋壳 无时间.learn 40653 旋风斩 范围近战 普通攻击加100伤害.learn 40649 地狱火炮 指定区域 100码反射炮弹攻击范围约1码范围 1000+ .learn 40647 暗影牢笼 范围魔法 瞬发 超大范围 昏迷30秒.learn 40636 恐惧怒吼 范围魔法 1.5秒释放 超大范围 恐惧数秒.learn 40634 召唤小新 观赏魔法 召唤象宝宝.learn 40631 烈焰冲击 范围魔法 对前面区域造成7500+伤害.learn 40630 酸液喷泉 范围魔法 40码距离指定区域 3500+每3秒.learn 40629 酸液喷泉 范围魔法 直接区域 3500+伤害.learn 40621 水下呼吸 范围buff 附近对友水下呼吸持续30分钟.learn 40614 召唤蛋蛋 观赏魔法 召唤蛋中小鸟.learn 40613 召唤威利 观赏魔法 召唤独眼.learn 40610 光芒 范围buff 持续1分钟 对身边敌人5000+伤害.learn 40604 邪能狂怒 buff 加目标生命上限 不能对友军及自己.learn 40602 冲锋 单体技能 10-40码距离无CD冲锋 无昏迷效果.learn 40601 愤怒 buff 加自己8%攻击速度可重叠20次 持续10秒.learn 40599 弧光顺辟 范围近战 带致死的顺劈斩.learn 40598 火球术 单体魔法 2秒施放 2800+蓝色火球.learn 40597 驱逐 单体近战 普通攻击加1000强度的攻击带昏迷2秒 冷却2秒.learn 40596 speed buff 移动速度加100%持续6秒 只能对自己.learn 40595 邪酸吐息 范围魔法 对前面10码敌人造成2850-3150自然伤害 并每秒造成2750伤害持续5秒(40508)持续20秒2秒施放.learn 40594 邪能狂怒 观赏魔法 体形变大对自己使用.learn 40592 战争震击 范围魔法 1秒施放 60码范围21000+伤害 并且每3秒1000 .learn 40585 黑暗壁垒 单体魔法 3秒施放 每3秒3000 引导.learn 40574 午餐伞 观赏魔法 召唤一把遮阳伞.learn 40571 speed buff 移动速度加100%持续10秒 可对任何人用.learn 40565 吞噬精华 单体魔法 吞噬一人生命回自己的血 10-40码距离 30秒冷却.learn 40564 回武器 观赏魔法 从对手身上飞来自己的武器.learn 40563 投武器 单体魔法 投出自己的武器5-45码 8秒冷却 8000+伤害.learn 40562 邪能烈焰 观赏魔法 对前面锥型区域造成1伤害.learn 40560 惩罚打击 单体近站 使用两把武器造成伤害 对昏迷敌人造成3倍伤害.learn 40557 飞跃攻击光环 观赏魔法 释放滚地绿色大火球.learn 40554 火球术 单体魔法 3秒施放30码距离1100+伤害.learn 40549 召唤猩猩 观赏魔法 召唤猩猩宝宝.learn 40545 邪恶生长 观赏魔法 10秒施放 变大.learn 40542 扭曲护甲 观赏魔法 使自己护甲变为0 周围环绕光芒.learn 40538 顽强 buff 生命上限提高1750.learn 40536 闪电链 范围魔法 45码内攻击5个敌人7000+.learn 40535 治疗药水 单体魔法 回满血.learn 40532 沼泽花击退 范围魔法 100码飞敌人.learn 40530 野餐 摆放火锅和野餐布.learn 40506 恶魔形态 buff 对附近敌人造成6500+伤害.learn 40504 顺辟斩 范围近站 110%攻击面前3人.learn 40501 吸收生命 吸收附近所有生命1分钟冷却.learn 40497 混乱冲锋 范围魔法 5-35码冲锋 附近造成20000+火伤 15秒冷却.learn 40496 混乱重击 范围魔法 附近20000+火 2秒施放.learn 40492 践踏 范围魔法 约附近8码距离4000+伤害.learn 40491 混乱打击 单体近站 迷惑8秒.learn 40488 践踏 范围魔法 约8码附近 普通伤害加510-650.learn 40487 致命瞄准 buff 攻击强度加275 持续8秒.learn 40486 弹射 单体近站 普通攻击加1000带击飞.learn 40483 灰舌的洞察 buff 法术急速等级加145 持续5秒.learn 40481 酸性创伤 单体近站 护甲降低500 每3秒300自然 可重叠.learn 40480 地狱火之力 buff 提高法术220点 持续5秒.learn 40472 持久审判 单体近站dot 8秒内480点伤害.learn 40471 耐久光环 buff 12秒内回复760点伤害ff.learn 40466 能量涌动 buff 攻击强度275 持续10秒.learn 40842 精神鞭笞 7500+的精神鞭笞..洋气......learn 40461 攻击弱点 buff 爆等级提高145 持续10秒.learn 40459 火焰之血 buff 回330+血 力量提高55.learn 40452 塞纳留斯嘱咐 buff 力量加120 持续8秒.learn 40446 艾露恩祝福 治疗效果提高210 持续8秒.learn 40465 某偶某祝福 伤害150法术 持续8.learn 40441 神圣愤怒 法伤220 8秒.learn 40444 战士等待试.learn 40434 击退 .learn 40433 千跃裂隙 范围魔法 1300+伤害并范围内每3秒450+.learn 40425 魔爆 超大型 越7000+伤害 5秒施放.learn 40424 奥术箭雨 3000+.learn 40420 闪电吐呼 2000+.learn 40751 沉默 只有公共冷却.learn 40770 碎甲 降低敌人3000护甲 持续8秒.learn 40811 灵翼幼龙 召唤小龙无限招..无多大用处 好玩.learn 40823 沉默尖啸 群体沉默 持续10秒.learn 40832 烈焰碰撞 蛋蛋技能召唤一堆能造成区域伤害的火焰5000+.learn 40835 静止力场 单体 昏迷对方越4秒还是3秒 忘记了
Tags: GM 魔兽私服架设
发布:fox 分类:仿官方魔兽私服 评论:0 引用:0 浏览:22
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
魔兽世界sfGM超BT技能代码
« 被Bug惯坏了的玩家真是悲哀wowsf最新特效发动原理 »
魔兽世界单机版GM超变态技能代码.learn 38905 绫彩护盾 攻击造成11点伤害.learn 40810 军刀猛刺 貌似1万多伤害.learn 40827 罪孽射线 受法术效果加成 普通7000+ 几乎全屏.learn 40860 败德射线 debuff 普通2000+一跳.learn 40861 堕落射线 伤害颇低 .learn 40871 致命吸引 类似奥爆 受加成 普通2000左右.learn 40728 暴烈乱舞 对目标造成极速近战伤害 4000以上.learn 40722 鸭人之神的意志 观赏魔法.learn 40721 暗影箭雨 如题 约1200伤害.learn 40719 火焰打击 范围约40码..伤害很低 200+.learn 40718 地狱列焰 450+.learn 40714 困惑的苦工 观赏魔法.learn 40713 禁锢 无效果 脚底一个奥术小球.learn 40693 牢笼陷阱 观赏魔法 类似传送后效果.learn 40685 暗影打击 dot魔法 每3秒4500-5700+伤害.learn 40683 激怒 buff魔法 1.3秒施放 持续20秒伤害+50%攻击速度30%.learn 40678 超级跳跃 群体魔法 瞬发 范围200+伤害加昏迷 带屏幕震动..learn 40674 制造便捷邪能火炮 观赏魔法 类似吸蓝.learn 40674 邪能火炮冲击 50+伤害
魔兽世界私服单机版GM超变态技能代码.learn 40671 生命通道 引导技能 为目标每秒2000血..真叼.learn 40657 上古列焰 dot技能 每3秒300+.learn 40655 天空卫队的闪耀 观赏技能 飞机后面帽烟
.learn 40736 死亡冲击 10000 暗影伤害2.5秒施放.learn 40737 暗影新星 10000 暗影群体 瞬发 回血.learn 40733 神圣之盾 无敌蛋壳 无时间.learn 40653 旋风斩 范围近战 普通攻击加100伤害.learn 40649 地狱火炮 指定区域 100码反射炮弹攻击范围约1码范围 1000+ .learn 40647 暗影牢笼 范围魔法 瞬发 超大范围 昏迷30秒.learn 40636 恐惧怒吼 范围魔法 1.5秒释放 超大范围 恐惧数秒.learn 40634 召唤小新 观赏魔法 召唤象宝宝.learn 40631 烈焰冲击 范围魔法 对前面区域造成7500+伤害.learn 40630 酸液喷泉 范围魔法 40码距离指定区域 3500+每3秒.learn 40629 酸液喷泉 范围魔法 直接区域 3500+伤害.learn 40621 水下呼吸 范围buff 附近对友水下呼吸持续30分钟.learn 40614 召唤蛋蛋 观赏魔法 召唤蛋中小鸟.learn 40613 召唤威利 观赏魔法 召唤独眼.learn 40610 光芒 范围buff 持续1分钟 对身边敌人5000+伤害.learn 40604 邪能狂怒 buff 加目标生命上限 不能对友军及自己.learn 40602 冲锋 单体技能 10-40码距离无CD冲锋 无昏迷效果.learn 40601 愤怒 buff 加自己8%攻击速度可重叠20次 持续10秒.learn 40599 弧光顺辟 范围近战 带致死的顺劈斩.learn 40598 火球术 单体魔法 2秒施放 2800+蓝色火球.learn 40597 驱逐 单体近战 普通攻击加1000强度的攻击带昏迷2秒 冷却2秒.learn 40596 speed buff 移动速度加100%持续6秒 只能对自己.learn 40595 邪酸吐息 范围魔法 对前面10码敌人造成2850-3150自然伤害 并每秒造成2750伤害持续5秒(40508)持续20秒2秒施放.learn 40594 邪能狂怒 观赏魔法 体形变大对自己使用.learn 40592 战争震击 范围魔法 1秒施放 60码范围21000+伤害 并且每3秒1000 .learn 40585 黑暗壁垒 单体魔法 3秒施放 每3秒3000 引导.learn 40574 午餐伞 观赏魔法 召唤一把遮阳伞.learn 40571 speed buff 移动速度加100%持续10秒 可对任何人用.learn 40565 吞噬精华 单体魔法 吞噬一人生命回自己的血 10-40码距离 30秒冷却.learn 40564 回武器 观赏魔法 从对手身上飞来自己的武器.learn 40563 投武器 单体魔法 投出自己的武器5-45码 8秒冷却 8000+伤害.learn 40562 邪能烈焰 观赏魔法 对前面锥型区域造成1伤害.learn 40560 惩罚打击 单体近站 使用两把武器造成伤害 对昏迷敌人造成3倍伤害.learn 40557 飞跃攻击光环 观赏魔法 释放滚地绿色大火球.learn 40554 火球术 单体魔法 3秒施放30码距离1100+伤害.learn 40549 召唤猩猩 观赏魔法 召唤猩猩宝宝.learn 40545 邪恶生长 观赏魔法 10秒施放 变大.learn 40542 扭曲护甲 观赏魔法 使自己护甲变为0 周围环绕光芒.learn 40538 顽强 buff 生命上限提高1750.learn 40536 闪电链 范围魔法 45码内攻击5个敌人7000+.learn 40535 治疗药水 单体魔法 回满血.learn 40532 沼泽花击退 范围魔法 100码飞敌人.learn 40530 野餐 摆放火锅和野餐布.learn 40506 恶魔形态 buff 对附近敌人造成6500+伤害.learn 40504 顺辟斩 范围近站 110%攻击面前3人.learn 40501 吸收生命 吸收附近所有生命1分钟冷却.learn 40497 混乱冲锋 范围魔法 5-35码冲锋 附近造成20000+火伤 15秒冷却.learn 40496 混乱重击 范围魔法 附近20000+火 2秒施放.learn 40492 践踏 范围魔法 约附近8码距离4000+伤害.learn 40491 混乱打击 单体近站 迷惑8秒.learn 40488 践踏 范围魔法 约8码附近 普通伤害加510-650.learn 40487 致命瞄准 buff 攻击强度加275 持续8秒.learn 40486 弹射 单体近站 普通攻击加1000带击飞.learn 40483 灰舌的洞察 buff 法术急速等级加145 持续5秒.learn 40481 酸性创伤 单体近站 护甲降低500 每3秒300自然 可重叠.learn 40480 地狱火之力 buff 提高法术220点 持续5秒.learn 40472 持久审判 单体近站dot 8秒内480点伤害.learn 40471 耐久光环 buff 12秒内回复760点伤害ff.learn 40466 能量涌动 buff 攻击强度275 持续10秒.learn 40842 精神鞭笞 7500+的精神鞭笞..洋气......learn 40461 攻击弱点 buff 爆等级提高145 持续10秒.learn 40459 火焰之血 buff 回330+血 力量提高55.learn 40452 塞纳留斯嘱咐 buff 力量加120 持续8秒.learn 40446 艾露恩祝福 治疗效果提高210 持续8秒.learn 40465 某偶某祝福 伤害150法术 持续8.learn 40441 神圣愤怒 法伤220 8秒.learn 40444 战士等待试.learn 40434 击退 .learn 40433 千跃裂隙 范围魔法 1300+伤害并范围内每3秒450+.learn 40425 魔爆 超大型 越7000+伤害 5秒施放.learn 40424 奥术箭雨 3000+.learn 40420 闪电吐呼 2000+.learn 40751 沉默 只有公共冷却.learn 40770 碎甲 降低敌人3000护甲 持续8秒.learn 40811 灵翼幼龙 召唤小龙无限招..无多大用处 好玩.learn 40823 沉默尖啸 群体沉默 持续10秒.learn 40832 烈焰碰撞 蛋蛋技能召唤一堆能造成区域伤害的火焰5000+.learn 40835 静止力场 单体 昏迷对方越4秒还是3秒 忘记了
Tags: GM 魔兽私服架设
发布:fox 分类:仿官方魔兽私服 评论:0 引用:0 浏览:22
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
魔兽世界单机版GM超变态技能代码.learn 38905 绫彩护盾 攻击造成11点伤害.learn 40810 军刀猛刺 貌似1万多伤害.learn 40827 罪孽射线 受法术效果加成 普通7000+ 几乎全屏.learn 40860 败德射线 debuff 普通2000+一跳.learn 40861 堕落射线 伤害颇低 .learn 40871 致命吸引 类似奥爆 受加成 普通2000左右.learn 40728 暴烈乱舞 对目标造成极速近战伤害 4000以上.learn 40722 鸭人之神的意志 观赏魔法.learn 40721 暗影箭雨 如题 约1200伤害.learn 40719 火焰打击 范围约40码..伤害很低 200+.learn 40718 地狱列焰 450+.learn 40714 困惑的苦工 观赏魔法.learn 40713 禁锢 无效果 脚底一个奥术小球.learn 40693 牢笼陷阱 观赏魔法 类似传送后效果.learn 40685 暗影打击 dot魔法 每3秒4500-5700+伤害.learn 40683 激怒 buff魔法 1.3秒施放 持续20秒伤害+50%攻击速度30%.learn 40678 超级跳跃 群体魔法 瞬发 范围200+伤害加昏迷 带屏幕震动..learn 40674 制造便捷邪能火炮 观赏魔法 类似吸蓝.learn 40674 邪能火炮冲击 50+伤害
魔兽世界私服单机版GM超变态技能代码.learn 40671 生命通道 引导技能 为目标每秒2000血..真叼.learn 40657 上古列焰 dot技能 每3秒300+.learn 40655 天空卫队的闪耀 观赏技能 飞机后面帽烟
.learn 40736 死亡冲击 10000 暗影伤害2.5秒施放.learn 40737 暗影新星 10000 暗影群体 瞬发 回血.learn 40733 神圣之盾 无敌蛋壳 无时间.learn 40653 旋风斩 范围近战 普通攻击加100伤害.learn 40649 地狱火炮 指定区域 100码反射炮弹攻击范围约1码范围 1000+ .learn 40647 暗影牢笼 范围魔法 瞬发 超大范围 昏迷30秒.learn 40636 恐惧怒吼 范围魔法 1.5秒释放 超大范围 恐惧数秒.learn 40634 召唤小新 观赏魔法 召唤象宝宝.learn 40631 烈焰冲击 范围魔法 对前面区域造成7500+伤害.learn 40630 酸液喷泉 范围魔法 40码距离指定区域 3500+每3秒.learn 40629 酸液喷泉 范围魔法 直接区域 3500+伤害.learn 40621 水下呼吸 范围buff 附近对友水下呼吸持续30分钟.learn 40614 召唤蛋蛋 观赏魔法 召唤蛋中小鸟.learn 40613 召唤威利 观赏魔法 召唤独眼.learn 40610 光芒 范围buff 持续1分钟 对身边敌人5000+伤害.learn 40604 邪能狂怒 buff 加目标生命上限 不能对友军及自己.learn 40602 冲锋 单体技能 10-40码距离无CD冲锋 无昏迷效果.learn 40601 愤怒 buff 加自己8%攻击速度可重叠20次 持续10秒.learn 40599 弧光顺辟 范围近战 带致死的顺劈斩.learn 40598 火球术 单体魔法 2秒施放 2800+蓝色火球.learn 40597 驱逐 单体近战 普通攻击加1000强度的攻击带昏迷2秒 冷却2秒.learn 40596 speed buff 移动速度加100%持续6秒 只能对自己.learn 40595 邪酸吐息 范围魔法 对前面10码敌人造成2850-3150自然伤害 并每秒造成2750伤害持续5秒(40508)持续20秒2秒施放.learn 40594 邪能狂怒 观赏魔法 体形变大对自己使用.learn 40592 战争震击 范围魔法 1秒施放 60码范围21000+伤害 并且每3秒1000 .learn 40585 黑暗壁垒 单体魔法 3秒施放 每3秒3000 引导.learn 40574 午餐伞 观赏魔法 召唤一把遮阳伞.learn 40571 speed buff 移动速度加100%持续10秒 可对任何人用.learn 40565 吞噬精华 单体魔法 吞噬一人生命回自己的血 10-40码距离 30秒冷却.learn 40564 回武器 观赏魔法 从对手身上飞来自己的武器.learn 40563 投武器 单体魔法 投出自己的武器5-45码 8秒冷却 8000+伤害.learn 40562 邪能烈焰 观赏魔法 对前面锥型区域造成1伤害.learn 40560 惩罚打击 单体近站 使用两把武器造成伤害 对昏迷敌人造成3倍伤害.learn 40557 飞跃攻击光环 观赏魔法 释放滚地绿色大火球.learn 40554 火球术 单体魔法 3秒施放30码距离1100+伤害.learn 40549 召唤猩猩 观赏魔法 召唤猩猩宝宝.learn 40545 邪恶生长 观赏魔法 10秒施放 变大.learn 40542 扭曲护甲 观赏魔法 使自己护甲变为0 周围环绕光芒.learn 40538 顽强 buff 生命上限提高1750.learn 40536 闪电链 范围魔法 45码内攻击5个敌人7000+.learn 40535 治疗药水 单体魔法 回满血.learn 40532 沼泽花击退 范围魔法 100码飞敌人.learn 40530 野餐 摆放火锅和野餐布.learn 40506 恶魔形态 buff 对附近敌人造成6500+伤害.learn 40504 顺辟斩 范围近站 110%攻击面前3人.learn 40501 吸收生命 吸收附近所有生命1分钟冷却.learn 40497 混乱冲锋 范围魔法 5-35码冲锋 附近造成20000+火伤 15秒冷却.learn 40496 混乱重击 范围魔法 附近20000+火 2秒施放.learn 40492 践踏 范围魔法 约附近8码距离4000+伤害.learn 40491 混乱打击 单体近站 迷惑8秒.learn 40488 践踏 范围魔法 约8码附近 普通伤害加510-650.learn 40487 致命瞄准 buff 攻击强度加275 持续8秒.learn 40486 弹射 单体近站 普通攻击加1000带击飞.learn 40483 灰舌的洞察 buff 法术急速等级加145 持续5秒.learn 40481 酸性创伤 单体近站 护甲降低500 每3秒300自然 可重叠.learn 40480 地狱火之力 buff 提高法术220点 持续5秒.learn 40472 持久审判 单体近站dot 8秒内480点伤害.learn 40471 耐久光环 buff 12秒内回复760点伤害ff.learn 40466 能量涌动 buff 攻击强度275 持续10秒.learn 40842 精神鞭笞 7500+的精神鞭笞..洋气......learn 40461 攻击弱点 buff 爆等级提高145 持续10秒.learn 40459 火焰之血 buff 回330+血 力量提高55.learn 40452 塞纳留斯嘱咐 buff 力量加120 持续8秒.learn 40446 艾露恩祝福 治疗效果提高210 持续8秒.learn 40465 某偶某祝福 伤害150法术 持续8.learn 40441 神圣愤怒 法伤220 8秒.learn 40444 战士等待试.learn 40434 击退 .learn 40433 千跃裂隙 范围魔法 1300+伤害并范围内每3秒450+.learn 40425 魔爆 超大型 越7000+伤害 5秒施放.learn 40424 奥术箭雨 3000+.learn 40420 闪电吐呼 2000+.learn 40751 沉默 只有公共冷却.learn 40770 碎甲 降低敌人3000护甲 持续8秒.learn 40811 灵翼幼龙 召唤小龙无限招..无多大用处 好玩.learn 40823 沉默尖啸 群体沉默 持续10秒.learn 40832 烈焰碰撞 蛋蛋技能召唤一堆能造成区域伤害的火焰5000+.learn 40835 静止力场 单体 昏迷对方越4秒还是3秒 忘记了
Tags: GM 魔兽私服架设
发布:fox 分类:仿官方魔兽私服 评论:0 引用:0 浏览:22
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
wowsf最新特效发动原理
« 魔兽私服添加任务清理怪物尸体时间antrix.conf »
本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一。本文所列的所有封包分析内容,全部是采用普通黑箱方式即可得来的,并未涉及对魔兽世界可执行程序的逆向工程。同时,除此文涉及的内容外,本人拒绝向任何人透露更详细的关于魔兽世界封包方面的更多内容,有兴趣者请自己进行相关的试验,本人在此文中也将尽量避免公开敏感的封包内容及相关加解密算法。谨以此文献给忠爱的暴雪! 一、登录模块流程及封包分析 我们先看登录流程。从封包流程来看,魔兽私服的登录流程是这样的: 1.由Client向登录/账号服务器(Login Server)发送用户名及密码等信息。此数据包的最后部分是用户名(明文表示,未加密),在用户名的前一个字节表示的是用户名的长度。登录/账号服务器向Client返回登录成功及后续连接到游戏服务器服务器所必备的信息等。这中间的两个来往数据包,我还没有看出具体有什么作用。在这个交互过程中,由登录/账号服务器向Client发送所有的游戏服务器列表,服务器列表数据包的内容包括:ip, port, 服务器上所拥有的角色个数等信息,因服务器列表内容过多,被客户端分为两次接收完毕。 2.Client收到Login Server的服务器列表后,根据最近访问的服务器标识(这个信息应该是包含在那个服务器列表数据包中),连接到最近游戏的那个游戏服务器(Game Server)。连接成功后,Game Server首先向Client发送一个8字节的数据包,据以往的常识判断,这个数据包的内容很可能是以后客户端与服务器通信的加密密钥。 3.Client向Game Server再次发送自己的账号信息。Game Server与Client经过两个数据包的交互后,向Client发送角色数据包,此包中包括了玩家在该Game Server所创建的所有角色信息,当然这个信息只是部分的,并不是该角色的所有信息。 4.在此后的通信过程中,Client每隔30秒向Game Server发送一个保持连接的包,该包长度为10字节,包的最后四字节是一个递增数字,前面6字节暂时未看出规律。 5.只要Client没有点击某个角色进入最终的Game Server,则Client要始终与Login Server保持连接。当Client点击角色进入Game Server时,Client才与Login Server断开连接。在以后的游戏过程中,Client始终与且仅与该Game Server进行数据通信。 通过对登录流程中的数据包初步分析,可以得出以下几个结论: 1.Client向Login Server发的第一个数据包,用户名部分是采用明文的,且该数据包的内容,每次登录都一样,并没有因时间的不同而发生改变。由此可以推算:针对于此数据包中的密码加密算法是固定不变的,换句话说,密码的加密算法是比较容易通过逆向工程被找到的。偶认为,针对于此处,服务器也应该先向客户端发送一个加密密钥,以后的通信可以用该密钥作为安全验证的依据。但暴雪没有这样作,最大的可能是为了提高服务器的效率,在登录服务器上,如果每个客户端一旦连接成功,登录服务器都得向客户端广播一个数据包的话,可能这个量还是比较大的,这可能延长了玩家的登录等待时间,所以他们没有在这块作。 2.Client在登录Login Server的地址,每次Login Server的登录地址都可能是不一样的。偶没有在客户端目录里找到这些地址,只在客户端目录里找到了四个大区的四个域名,我猜想,魔兽世界是用的DNS解析的简单方法来实现Login Server的简单动态均衡的。不知道这个猜想是否正确。 3.“根据玩家最近在玩的哪个游戏,由客户端和服务器自动为玩家选择进入这个游戏服务器”,这一项设定充分体现了暴雪一贯的风格:为玩家着想,最大限度地提高游戏的舒适度。再次对暴雪的态度予以肯定! 4.一旦玩家进入了游戏世界,客户端与服务器的通信端口会一直保持不变。即:魔兽世界的游戏世界服务器群设计结构采用的是带网关的服务器集群。 5.偶觉得在整个的登录流程中,让我产生最大疑问的就是Login Server与Client的连接保持逻辑。当Client与Game Server连接了之后,Client并未与Login Server断开,是一直保持连接的。后来,经进一步的抓包分析,Client之所以要与Login Server保持这样的连接,是为了当Client重新选择服务器时,不至于重新连接Login Server。当Client点击了"选择服务器"按纽后,Login Server会每隔5秒向Client发一个当前所有的服务器列表数据包。要知道,这个服务器列表数据包的内容可是非常大的,如果有玩家就打开了这个窗口不关闭,Login Server向这种情况的所有玩家每5秒钟就发一个服务器列表数据包,这个广播量可是很大的哦(2k左右,这可是一个用户是2k哦)。偶认为这里的逻辑设计是相当不合理的。Login Server如果为了给客户端提供一个最新的全局服务器列表,可以保持连接,但也没必要每隔5秒就向客户端发一个服务器列表,最多只在客户端在某个服务器上创建了不同的角色后再更新这个列表也是可以的,但只用更新这个列表中的变化内容即可,不用发全部的完整包,这样,在通信量上就小了很多。据说,魔兽刚开始的时候,产生DOWN机的原因就是登录模块没有处理好,偶不知道现在的这个情况是不是已经经过改良的了。但偶还是认为每隔5秒就向客户端发送一个2K的包,这一点是不可以被接受的。 以上只是针对于魔兽世界登录流程的简单分析,没有多少技术含量,拿出来跟大家相互讨论讨论,看看有没有可以借鉴的地方,后面还会有其它部分的封包分析。欢迎继续关注偶的Blog: http://blog.csdn.net/sodme。 偶在文章前面部分说过,作为一个网络编程人员,熟练使用截包软件和掌握基本的封包分析方法是其基本能力之一,发此文的目的一个原因也是希望向正在作网络编程的兄弟介绍一下相关工具的使用和常见的分析方法。下面补充一下关于封包分析的基本方法和相关工具: 1.你需要一个截包工具,偶推荐:commview,小巧但功能强大,支持自定义的封包分析插件以DLL形式装载,也就是说只要你愿意,你可以写个DLL对某类特殊形式的包进行显示、记录、解密等特别处理。 2.如何查看真正的封包数据。在commview里,会详细列出自网卡级别以上的各层封包数据,包括Ethernet层,IP层和TCP层。而我们作封包分析时,只需要关注TCP层。但TCP层里也有很多内容,对于我们的分析需求来说,我们需要关注的是其Data字段(在协议目录里可以看到"data length标识,点击即可查看data段")的内容。 3.TCP的几个状态对于我们分析所起的作用。在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。PSH为1的情况,一般只出现在DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。
封包分析的手段,说简单也挺简单的,那就是:比较!要不断地从不同的思维角度对封包进行对比分析,要充分发挥你的想象力不断地截取自己需要的包进行比较。不仅要作横向(同类)的比较,还要作纵向(不同类)的比较。即时对于同一个包,也要不断地反复研究。 初涉封包分析的新手,一般会不知道封包分析究竟该从何入手。基于经验,本文将告诉你一般会从哪些类型的包入手进行分析以及应该怎样对封包进行初步的分析。需要指出的是:封包分析是一件非常有趣但同时也非常考验耐心的事,通常,半天的封包分析下来,会让你眼前全是诸如“B0 EF 58 02 10 72....”之类的网络数据,而且附带有头疼、头晕症状,所以,没有充分的心理准备,还请不要轻易尝试。呵呵。
从事封包分析的基本前提是:应该了解和熟悉TCP协议,并知道数据包“粘合”是怎么一回事。当然,我们平常截获到的包,从数量上来看,只有一小部分是属于“粘合”的情况。但如果不了解它,将可能会对你的分析思路产生误导和困惑。关于“粘包”的更详细解释,请参考我的另外一篇文章“拼包函数及网络封包的异常处理(含代码) (http://blog.csdn.net/sodme/archive/2005/07/10/419233.aspx)”。
上一篇有关魔兽世界封包分析的文章(http://blog.csdn.net/sodme/archive/2005/06/18/397371.aspx)中,我根据客户端与服务器端连接及断开事件的处理流程以及登录过程中的一些数据包分析了魔兽的架构和登录逻辑。这篇文章中,我将结合聊天数据包的分析,来阐述魔兽世界封包的大体结构。
首先解释一下我们的目标:封包的大体结构。封包的大体结构包含哪些内容呢?一般情况下,封包的大体结构至少包括两方面的信息: 1、一个封包是如何表示它的长度的?封包长度是由哪个字段表示的?(或者说:如何表示封包的开始和结束的) 2、各种不同的封包类型是通过哪个字段表示的?
是不是所有游戏的封包都必然会有表示“长度”信息的“字段”呢?答案是否定的。有的游戏确实没有采用这种方式,它们的作法设定特殊的包开始和包结束标志。但是,从应用的角度来看,偶推荐使用“长度”这样的方法,因为不管在网络底层的处理效率以及上层应用的处理便捷性来说,使用“长度”字段标识一个完整的逻辑包都是比较好的办法。在确定了封包的大体结构后,我们才方便分析具体类型包(比如聊天、行走等)的详细结构。
作数据包分析,在单纯采用黑箱分析的阶段,我们选取的数据包,须要是具有这种性质的,即:在数据包发送前客户端未进行加密等处理时,这个数据包中的部分内容,我们是已经知道的。这样的包,就可以作为封包分析的突破口。这样看来,我们拿“聊天封包”作为第一个分析对象也就不难理解了,因为我们说的话,打上去的字,我们自己是知道的,但是我们说的话经过客户端的处理后,发到网络上的可能就是已经加了密的或者加了校验码的。站在黑箱分析的角度,我们能作的,就是不断截取各种“聊天包”进行对比、判断和总结。
OK,打开你的commview。让我们从“聊天封包”开始。
分析“聊天包”的前提,是我们能够正常判断哪种类型的数据包是属于聊天的,不要误把行走或其它的数据包当作了聊天数据包。为了减小分析难度,建议新手到游戏中人少或周围没有玩家的地方进行封包分析。这样一来没人打扰,二来你的网络通信量会相对小得多,比较容易进行一些封包判定。
第一步,我们需要确定客户端与服务器通信所用的端口,然后在commview的rules->ports中设定服务器端口,截获与该端口通信的所有数据包。服务器端口的确定方法:不要使用其它网络通信工具,打开commview,进游戏,截包,观察其通信端口。进行封包分析时,特别是初期的封包分析时,你的网络通信应该尽可能是单一的,即:除了游戏,其它的通信软件尽可能不要开。但当你确定了服务器的IP和端口后,就可以照常使用其它网络软件了。
第二步,如前面述,在游戏中找个人少或没人的地方,开始“自言自语”,呵呵。说话的内容,建议以字母和数字为宜,不要说中文。因为中文是双字节的,而字母和数字是单字节的,对于单字节的信息内容,截包软件会以单字节的文本信息显示,但对于双字节的汉字而言,截包软件在对其进行显示时由于换行等原因会造成部分中文显示有乱码,不容易直接看出中文内容。如果执意要说中文,偶也不拦你,给你推荐一个工具:String Demander这个软件,可以查询中文所对应的编码。
第三步,设定好commview的rules并使之生效,开始截包。
观察通过以上的过程所截的包,可以发现,魔兽世界的聊天封包的说话内容是明文的!这一点,用不着大惊小怪,呵呵。聊天封包本身并不会对游戏的关键逻辑造成损害,所以,即使让其明文显示也不足为奇。但是,我们还是不太相信自己的眼睛,于是再截若干个包,发现包中的说话内容确实是明文的!但是,包的其它字段却是我们一时看不懂的“密文”。
看来,下面的事情就是对这些包里的“密文”进行研究了。一般情况下,这种“密文”的加密方法,通过封包分析是分析不出来的,但,我们仍然可以通过封包分析来推论一些与“密文”生成算法有关的问题。我们可以作以下的对比分析: 1、连续三次输入“a”,并分别观察及保存封包数据; 2、连续三次输入“aa”,并分别观察及保存封包数据; 3、连续三次输入“aaa”,并分别观察及保存封包数据。
输入的封包用例,我们选择了字母"a",它的ASCII码是61。输入的规律是:每种情况连续输入三次,然后逐次增加a字母的个数。于是,我们发现这样一个有趣的现象: 1、包中有关说话的内容是明文的; 2、即使针对于同样的说话内容,比如“a”,客户端所发出去的包也是不一样的; 3、当一次说话的字母个数增加1时,封包的总体长度也随之增加1; 4、除每个封包的前面6个字节以及说话的字节外,其余的封包内容每次都一样; 5、每个聊天封包的结尾字节都是0。
于是,我们可以试着得出如下结论: 1、包是没有压缩的,它所使用的加密算法应该是按字节进行的,并没有改变封包的长度使之看上去使用统一的长度; 2、包是以0结尾的(尽管我们不知道它是以什么表示开头的,呵呵); 3、封包加密算法中所使用的密钥是可变的,即针对于相同的数据包内容由于加密的密钥不同,所以产生的密文也不同。由于客户端的数据传到服务器端后,服务器端还要对数据进行解密。所以,客户端的加密算法与服务器端的解密算法应该共用了前6字节中的某些内容,以此作为解密算法的密钥。如果这6字节中没有包含有关封包加、解密所需要的同步数据,那客户端和服务器之间应该会通过其它的方式同步这样的数据。不过,偶倾向于前者,即:这6字节中应该含有加、解密所需要的密钥信息。
回头看我们上面观察到的有趣现象,针对于第2点,反过来想,这应该也是最起码的功能了。就是说,即使客户端作出的是同样的动作,在客户端发出的包中,包的内容也是不一样的。这样,外挂就不能靠单纯的重复发相同的包而达到其目的了。
分析来分析去,我们还是没能确定魔兽封包的大体结构。其实,到现在,我觉得我此文的目的已经达到了,即向大家展示封包分析的思维角度和思维方式。至于具体结果,偶觉得倒真的不重要的了。可以肯定地告诉大家的是,魔兽的封包结构偶大致已经掌握了。偶仅在此公布我的分析结果: 1、魔兽的封包长度字段是每个封包的前两字节,它的表示方式是:前两字节的数值+2。之所以加这个2,是因为封包长度字段本身占用了两个字节的长度。 2、魔兽的封包类型偶推断是第三和第四字节,其中普通聊天的类型标识是“95 00”。
请不要来信向我询问任何有关魔兽封包破解的内容,偶能说的都已经在文章里说了,偶之所以写这个系列的文章不是想破解魔兽,而是想以这样优秀的一款游戏作为案例来向大家展示它在封包设计方面值得我们学习和讨论的地方,同时向更多的朋友普及有关封包分析的常识、工具以及思维方式,仅此而已。
ps:由于每次封包分析的内容都很多,所以,一有了点结论后,要及时记录和总结,并与之前取得的总结进行对比,及时更新相关的记录文档。
Tags: 魔兽私服架设 魔兽SF
发布:fox 分类:魔兽私服 评论:0 引用:0 浏览:43
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽私服添加任务 (2008-11-21 13:13:10)
wowsf最新特效发动原理 (2008-11-21 13:5:39)
魔兽世界sfGM超BT技能代码 (2008-11-21 13:1:19)
魔兽世界私服新手须知 (2008-11-20 13:41:25)
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
榮耀魔獸世界私服 (2008-11-12 10:15:59)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
魔兽私服添加任务
« 魔兽私服添加任务清理怪物尸体时间antrix.conf »
本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一。本文所列的所有封包分析内容,全部是采用普通黑箱方式即可得来的,并未涉及对魔兽世界可执行程序的逆向工程。同时,除此文涉及的内容外,本人拒绝向任何人透露更详细的关于魔兽世界封包方面的更多内容,有兴趣者请自己进行相关的试验,本人在此文中也将尽量避免公开敏感的封包内容及相关加解密算法。谨以此文献给忠爱的暴雪! 一、登录模块流程及封包分析 我们先看登录流程。从封包流程来看,魔兽私服的登录流程是这样的: 1.由Client向登录/账号服务器(Login Server)发送用户名及密码等信息。此数据包的最后部分是用户名(明文表示,未加密),在用户名的前一个字节表示的是用户名的长度。登录/账号服务器向Client返回登录成功及后续连接到游戏服务器服务器所必备的信息等。这中间的两个来往数据包,我还没有看出具体有什么作用。在这个交互过程中,由登录/账号服务器向Client发送所有的游戏服务器列表,服务器列表数据包的内容包括:ip, port, 服务器上所拥有的角色个数等信息,因服务器列表内容过多,被客户端分为两次接收完毕。 2.Client收到Login Server的服务器列表后,根据最近访问的服务器标识(这个信息应该是包含在那个服务器列表数据包中),连接到最近游戏的那个游戏服务器(Game Server)。连接成功后,Game Server首先向Client发送一个8字节的数据包,据以往的常识判断,这个数据包的内容很可能是以后客户端与服务器通信的加密密钥。 3.Client向Game Server再次发送自己的账号信息。Game Server与Client经过两个数据包的交互后,向Client发送角色数据包,此包中包括了玩家在该Game Server所创建的所有角色信息,当然这个信息只是部分的,并不是该角色的所有信息。 4.在此后的通信过程中,Client每隔30秒向Game Server发送一个保持连接的包,该包长度为10字节,包的最后四字节是一个递增数字,前面6字节暂时未看出规律。 5.只要Client没有点击某个角色进入最终的Game Server,则Client要始终与Login Server保持连接。当Client点击角色进入Game Server时,Client才与Login Server断开连接。在以后的游戏过程中,Client始终与且仅与该Game Server进行数据通信。 通过对登录流程中的数据包初步分析,可以得出以下几个结论: 1.Client向Login Server发的第一个数据包,用户名部分是采用明文的,且该数据包的内容,每次登录都一样,并没有因时间的不同而发生改变。由此可以推算:针对于此数据包中的密码加密算法是固定不变的,换句话说,密码的加密算法是比较容易通过逆向工程被找到的。偶认为,针对于此处,服务器也应该先向客户端发送一个加密密钥,以后的通信可以用该密钥作为安全验证的依据。但暴雪没有这样作,最大的可能是为了提高服务器的效率,在登录服务器上,如果每个客户端一旦连接成功,登录服务器都得向客户端广播一个数据包的话,可能这个量还是比较大的,这可能延长了玩家的登录等待时间,所以他们没有在这块作。 2.Client在登录Login Server的地址,每次Login Server的登录地址都可能是不一样的。偶没有在客户端目录里找到这些地址,只在客户端目录里找到了四个大区的四个域名,我猜想,魔兽世界是用的DNS解析的简单方法来实现Login Server的简单动态均衡的。不知道这个猜想是否正确。 3.“根据玩家最近在玩的哪个游戏,由客户端和服务器自动为玩家选择进入这个游戏服务器”,这一项设定充分体现了暴雪一贯的风格:为玩家着想,最大限度地提高游戏的舒适度。再次对暴雪的态度予以肯定! 4.一旦玩家进入了游戏世界,客户端与服务器的通信端口会一直保持不变。即:魔兽世界的游戏世界服务器群设计结构采用的是带网关的服务器集群。 5.偶觉得在整个的登录流程中,让我产生最大疑问的就是Login Server与Client的连接保持逻辑。当Client与Game Server连接了之后,Client并未与Login Server断开,是一直保持连接的。后来,经进一步的抓包分析,Client之所以要与Login Server保持这样的连接,是为了当Client重新选择服务器时,不至于重新连接Login Server。当Client点击了"选择服务器"按纽后,Login Server会每隔5秒向Client发一个当前所有的服务器列表数据包。要知道,这个服务器列表数据包的内容可是非常大的,如果有玩家就打开了这个窗口不关闭,Login Server向这种情况的所有玩家每5秒钟就发一个服务器列表数据包,这个广播量可是很大的哦(2k左右,这可是一个用户是2k哦)。偶认为这里的逻辑设计是相当不合理的。Login Server如果为了给客户端提供一个最新的全局服务器列表,可以保持连接,但也没必要每隔5秒就向客户端发一个服务器列表,最多只在客户端在某个服务器上创建了不同的角色后再更新这个列表也是可以的,但只用更新这个列表中的变化内容即可,不用发全部的完整包,这样,在通信量上就小了很多。据说,魔兽刚开始的时候,产生DOWN机的原因就是登录模块没有处理好,偶不知道现在的这个情况是不是已经经过改良的了。但偶还是认为每隔5秒就向客户端发送一个2K的包,这一点是不可以被接受的。 以上只是针对于魔兽世界登录流程的简单分析,没有多少技术含量,拿出来跟大家相互讨论讨论,看看有没有可以借鉴的地方,后面还会有其它部分的封包分析。欢迎继续关注偶的Blog: http://blog.csdn.net/sodme。 偶在文章前面部分说过,作为一个网络编程人员,熟练使用截包软件和掌握基本的封包分析方法是其基本能力之一,发此文的目的一个原因也是希望向正在作网络编程的兄弟介绍一下相关工具的使用和常见的分析方法。下面补充一下关于封包分析的基本方法和相关工具: 1.你需要一个截包工具,偶推荐:commview,小巧但功能强大,支持自定义的封包分析插件以DLL形式装载,也就是说只要你愿意,你可以写个DLL对某类特殊形式的包进行显示、记录、解密等特别处理。 2.如何查看真正的封包数据。在commview里,会详细列出自网卡级别以上的各层封包数据,包括Ethernet层,IP层和TCP层。而我们作封包分析时,只需要关注TCP层。但TCP层里也有很多内容,对于我们的分析需求来说,我们需要关注的是其Data字段(在协议目录里可以看到"data length标识,点击即可查看data段")的内容。 3.TCP的几个状态对于我们分析所起的作用。在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。PSH为1的情况,一般只出现在DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。
封包分析的手段,说简单也挺简单的,那就是:比较!要不断地从不同的思维角度对封包进行对比分析,要充分发挥你的想象力不断地截取自己需要的包进行比较。不仅要作横向(同类)的比较,还要作纵向(不同类)的比较。即时对于同一个包,也要不断地反复研究。 初涉封包分析的新手,一般会不知道封包分析究竟该从何入手。基于经验,本文将告诉你一般会从哪些类型的包入手进行分析以及应该怎样对封包进行初步的分析。需要指出的是:封包分析是一件非常有趣但同时也非常考验耐心的事,通常,半天的封包分析下来,会让你眼前全是诸如“B0 EF 58 02 10 72....”之类的网络数据,而且附带有头疼、头晕症状,所以,没有充分的心理准备,还请不要轻易尝试。呵呵。
从事封包分析的基本前提是:应该了解和熟悉TCP协议,并知道数据包“粘合”是怎么一回事。当然,我们平常截获到的包,从数量上来看,只有一小部分是属于“粘合”的情况。但如果不了解它,将可能会对你的分析思路产生误导和困惑。关于“粘包”的更详细解释,请参考我的另外一篇文章“拼包函数及网络封包的异常处理(含代码) (http://blog.csdn.net/sodme/archive/2005/07/10/419233.aspx)”。
上一篇有关魔兽世界封包分析的文章(http://blog.csdn.net/sodme/archive/2005/06/18/397371.aspx)中,我根据客户端与服务器端连接及断开事件的处理流程以及登录过程中的一些数据包分析了魔兽的架构和登录逻辑。这篇文章中,我将结合聊天数据包的分析,来阐述魔兽世界封包的大体结构。
首先解释一下我们的目标:封包的大体结构。封包的大体结构包含哪些内容呢?一般情况下,封包的大体结构至少包括两方面的信息: 1、一个封包是如何表示它的长度的?封包长度是由哪个字段表示的?(或者说:如何表示封包的开始和结束的) 2、各种不同的封包类型是通过哪个字段表示的?
是不是所有游戏的封包都必然会有表示“长度”信息的“字段”呢?答案是否定的。有的游戏确实没有采用这种方式,它们的作法设定特殊的包开始和包结束标志。但是,从应用的角度来看,偶推荐使用“长度”这样的方法,因为不管在网络底层的处理效率以及上层应用的处理便捷性来说,使用“长度”字段标识一个完整的逻辑包都是比较好的办法。在确定了封包的大体结构后,我们才方便分析具体类型包(比如聊天、行走等)的详细结构。
作数据包分析,在单纯采用黑箱分析的阶段,我们选取的数据包,须要是具有这种性质的,即:在数据包发送前客户端未进行加密等处理时,这个数据包中的部分内容,我们是已经知道的。这样的包,就可以作为封包分析的突破口。这样看来,我们拿“聊天封包”作为第一个分析对象也就不难理解了,因为我们说的话,打上去的字,我们自己是知道的,但是我们说的话经过客户端的处理后,发到网络上的可能就是已经加了密的或者加了校验码的。站在黑箱分析的角度,我们能作的,就是不断截取各种“聊天包”进行对比、判断和总结。
OK,打开你的commview。让我们从“聊天封包”开始。
分析“聊天包”的前提,是我们能够正常判断哪种类型的数据包是属于聊天的,不要误把行走或其它的数据包当作了聊天数据包。为了减小分析难度,建议新手到游戏中人少或周围没有玩家的地方进行封包分析。这样一来没人打扰,二来你的网络通信量会相对小得多,比较容易进行一些封包判定。
第一步,我们需要确定客户端与服务器通信所用的端口,然后在commview的rules->ports中设定服务器端口,截获与该端口通信的所有数据包。服务器端口的确定方法:不要使用其它网络通信工具,打开commview,进游戏,截包,观察其通信端口。进行封包分析时,特别是初期的封包分析时,你的网络通信应该尽可能是单一的,即:除了游戏,其它的通信软件尽可能不要开。但当你确定了服务器的IP和端口后,就可以照常使用其它网络软件了。
第二步,如前面述,在游戏中找个人少或没人的地方,开始“自言自语”,呵呵。说话的内容,建议以字母和数字为宜,不要说中文。因为中文是双字节的,而字母和数字是单字节的,对于单字节的信息内容,截包软件会以单字节的文本信息显示,但对于双字节的汉字而言,截包软件在对其进行显示时由于换行等原因会造成部分中文显示有乱码,不容易直接看出中文内容。如果执意要说中文,偶也不拦你,给你推荐一个工具:String Demander这个软件,可以查询中文所对应的编码。
第三步,设定好commview的rules并使之生效,开始截包。
观察通过以上的过程所截的包,可以发现,魔兽世界的聊天封包的说话内容是明文的!这一点,用不着大惊小怪,呵呵。聊天封包本身并不会对游戏的关键逻辑造成损害,所以,即使让其明文显示也不足为奇。但是,我们还是不太相信自己的眼睛,于是再截若干个包,发现包中的说话内容确实是明文的!但是,包的其它字段却是我们一时看不懂的“密文”。
看来,下面的事情就是对这些包里的“密文”进行研究了。一般情况下,这种“密文”的加密方法,通过封包分析是分析不出来的,但,我们仍然可以通过封包分析来推论一些与“密文”生成算法有关的问题。我们可以作以下的对比分析: 1、连续三次输入“a”,并分别观察及保存封包数据; 2、连续三次输入“aa”,并分别观察及保存封包数据; 3、连续三次输入“aaa”,并分别观察及保存封包数据。
输入的封包用例,我们选择了字母"a",它的ASCII码是61。输入的规律是:每种情况连续输入三次,然后逐次增加a字母的个数。于是,我们发现这样一个有趣的现象: 1、包中有关说话的内容是明文的; 2、即使针对于同样的说话内容,比如“a”,客户端所发出去的包也是不一样的; 3、当一次说话的字母个数增加1时,封包的总体长度也随之增加1; 4、除每个封包的前面6个字节以及说话的字节外,其余的封包内容每次都一样; 5、每个聊天封包的结尾字节都是0。
于是,我们可以试着得出如下结论: 1、包是没有压缩的,它所使用的加密算法应该是按字节进行的,并没有改变封包的长度使之看上去使用统一的长度; 2、包是以0结尾的(尽管我们不知道它是以什么表示开头的,呵呵); 3、封包加密算法中所使用的密钥是可变的,即针对于相同的数据包内容由于加密的密钥不同,所以产生的密文也不同。由于客户端的数据传到服务器端后,服务器端还要对数据进行解密。所以,客户端的加密算法与服务器端的解密算法应该共用了前6字节中的某些内容,以此作为解密算法的密钥。如果这6字节中没有包含有关封包加、解密所需要的同步数据,那客户端和服务器之间应该会通过其它的方式同步这样的数据。不过,偶倾向于前者,即:这6字节中应该含有加、解密所需要的密钥信息。
回头看我们上面观察到的有趣现象,针对于第2点,反过来想,这应该也是最起码的功能了。就是说,即使客户端作出的是同样的动作,在客户端发出的包中,包的内容也是不一样的。这样,外挂就不能靠单纯的重复发相同的包而达到其目的了。
分析来分析去,我们还是没能确定魔兽封包的大体结构。其实,到现在,我觉得我此文的目的已经达到了,即向大家展示封包分析的思维角度和思维方式。至于具体结果,偶觉得倒真的不重要的了。可以肯定地告诉大家的是,魔兽的封包结构偶大致已经掌握了。偶仅在此公布我的分析结果: 1、魔兽的封包长度字段是每个封包的前两字节,它的表示方式是:前两字节的数值+2。之所以加这个2,是因为封包长度字段本身占用了两个字节的长度。 2、魔兽的封包类型偶推断是第三和第四字节,其中普通聊天的类型标识是“95 00”。
请不要来信向我询问任何有关魔兽封包破解的内容,偶能说的都已经在文章里说了,偶之所以写这个系列的文章不是想破解魔兽,而是想以这样优秀的一款游戏作为案例来向大家展示它在封包设计方面值得我们学习和讨论的地方,同时向更多的朋友普及有关封包分析的常识、工具以及思维方式,仅此而已。
ps:由于每次封包分析的内容都很多,所以,一有了点结论后,要及时记录和总结,并与之前取得的总结进行对比,及时更新相关的记录文档。
Tags: 魔兽私服架设 魔兽SF
发布:fox 分类:魔兽私服 评论:0 引用:0 浏览:43
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽私服添加任务 (2008-11-21 13:13:10)
wowsf最新特效发动原理 (2008-11-21 13:5:39)
魔兽世界sfGM超BT技能代码 (2008-11-21 13:1:19)
魔兽世界私服新手须知 (2008-11-20 13:41:25)
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
榮耀魔獸世界私服 (2008-11-12 10:15:59)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一。本文所列的所有封包分析内容,全部是采用普通黑箱方式即可得来的,并未涉及对魔兽世界可执行程序的逆向工程。同时,除此文涉及的内容外,本人拒绝向任何人透露更详细的关于魔兽世界封包方面的更多内容,有兴趣者请自己进行相关的试验,本人在此文中也将尽量避免公开敏感的封包内容及相关加解密算法。谨以此文献给忠爱的暴雪! 一、登录模块流程及封包分析 我们先看登录流程。从封包流程来看,魔兽私服的登录流程是这样的: 1.由Client向登录/账号服务器(Login Server)发送用户名及密码等信息。此数据包的最后部分是用户名(明文表示,未加密),在用户名的前一个字节表示的是用户名的长度。登录/账号服务器向Client返回登录成功及后续连接到游戏服务器服务器所必备的信息等。这中间的两个来往数据包,我还没有看出具体有什么作用。在这个交互过程中,由登录/账号服务器向Client发送所有的游戏服务器列表,服务器列表数据包的内容包括:ip, port, 服务器上所拥有的角色个数等信息,因服务器列表内容过多,被客户端分为两次接收完毕。 2.Client收到Login Server的服务器列表后,根据最近访问的服务器标识(这个信息应该是包含在那个服务器列表数据包中),连接到最近游戏的那个游戏服务器(Game Server)。连接成功后,Game Server首先向Client发送一个8字节的数据包,据以往的常识判断,这个数据包的内容很可能是以后客户端与服务器通信的加密密钥。 3.Client向Game Server再次发送自己的账号信息。Game Server与Client经过两个数据包的交互后,向Client发送角色数据包,此包中包括了玩家在该Game Server所创建的所有角色信息,当然这个信息只是部分的,并不是该角色的所有信息。 4.在此后的通信过程中,Client每隔30秒向Game Server发送一个保持连接的包,该包长度为10字节,包的最后四字节是一个递增数字,前面6字节暂时未看出规律。 5.只要Client没有点击某个角色进入最终的Game Server,则Client要始终与Login Server保持连接。当Client点击角色进入Game Server时,Client才与Login Server断开连接。在以后的游戏过程中,Client始终与且仅与该Game Server进行数据通信。 通过对登录流程中的数据包初步分析,可以得出以下几个结论: 1.Client向Login Server发的第一个数据包,用户名部分是采用明文的,且该数据包的内容,每次登录都一样,并没有因时间的不同而发生改变。由此可以推算:针对于此数据包中的密码加密算法是固定不变的,换句话说,密码的加密算法是比较容易通过逆向工程被找到的。偶认为,针对于此处,服务器也应该先向客户端发送一个加密密钥,以后的通信可以用该密钥作为安全验证的依据。但暴雪没有这样作,最大的可能是为了提高服务器的效率,在登录服务器上,如果每个客户端一旦连接成功,登录服务器都得向客户端广播一个数据包的话,可能这个量还是比较大的,这可能延长了玩家的登录等待时间,所以他们没有在这块作。 2.Client在登录Login Server的地址,每次Login Server的登录地址都可能是不一样的。偶没有在客户端目录里找到这些地址,只在客户端目录里找到了四个大区的四个域名,我猜想,魔兽世界是用的DNS解析的简单方法来实现Login Server的简单动态均衡的。不知道这个猜想是否正确。 3.“根据玩家最近在玩的哪个游戏,由客户端和服务器自动为玩家选择进入这个游戏服务器”,这一项设定充分体现了暴雪一贯的风格:为玩家着想,最大限度地提高游戏的舒适度。再次对暴雪的态度予以肯定! 4.一旦玩家进入了游戏世界,客户端与服务器的通信端口会一直保持不变。即:魔兽世界的游戏世界服务器群设计结构采用的是带网关的服务器集群。 5.偶觉得在整个的登录流程中,让我产生最大疑问的就是Login Server与Client的连接保持逻辑。当Client与Game Server连接了之后,Client并未与Login Server断开,是一直保持连接的。后来,经进一步的抓包分析,Client之所以要与Login Server保持这样的连接,是为了当Client重新选择服务器时,不至于重新连接Login Server。当Client点击了"选择服务器"按纽后,Login Server会每隔5秒向Client发一个当前所有的服务器列表数据包。要知道,这个服务器列表数据包的内容可是非常大的,如果有玩家就打开了这个窗口不关闭,Login Server向这种情况的所有玩家每5秒钟就发一个服务器列表数据包,这个广播量可是很大的哦(2k左右,这可是一个用户是2k哦)。偶认为这里的逻辑设计是相当不合理的。Login Server如果为了给客户端提供一个最新的全局服务器列表,可以保持连接,但也没必要每隔5秒就向客户端发一个服务器列表,最多只在客户端在某个服务器上创建了不同的角色后再更新这个列表也是可以的,但只用更新这个列表中的变化内容即可,不用发全部的完整包,这样,在通信量上就小了很多。据说,魔兽刚开始的时候,产生DOWN机的原因就是登录模块没有处理好,偶不知道现在的这个情况是不是已经经过改良的了。但偶还是认为每隔5秒就向客户端发送一个2K的包,这一点是不可以被接受的。 以上只是针对于魔兽世界登录流程的简单分析,没有多少技术含量,拿出来跟大家相互讨论讨论,看看有没有可以借鉴的地方,后面还会有其它部分的封包分析。欢迎继续关注偶的Blog: http://blog.csdn.net/sodme。 偶在文章前面部分说过,作为一个网络编程人员,熟练使用截包软件和掌握基本的封包分析方法是其基本能力之一,发此文的目的一个原因也是希望向正在作网络编程的兄弟介绍一下相关工具的使用和常见的分析方法。下面补充一下关于封包分析的基本方法和相关工具: 1.你需要一个截包工具,偶推荐:commview,小巧但功能强大,支持自定义的封包分析插件以DLL形式装载,也就是说只要你愿意,你可以写个DLL对某类特殊形式的包进行显示、记录、解密等特别处理。 2.如何查看真正的封包数据。在commview里,会详细列出自网卡级别以上的各层封包数据,包括Ethernet层,IP层和TCP层。而我们作封包分析时,只需要关注TCP层。但TCP层里也有很多内容,对于我们的分析需求来说,我们需要关注的是其Data字段(在协议目录里可以看到"data length标识,点击即可查看data段")的内容。 3.TCP的几个状态对于我们分析所起的作用。在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。PSH为1的情况,一般只出现在DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。
封包分析的手段,说简单也挺简单的,那就是:比较!要不断地从不同的思维角度对封包进行对比分析,要充分发挥你的想象力不断地截取自己需要的包进行比较。不仅要作横向(同类)的比较,还要作纵向(不同类)的比较。即时对于同一个包,也要不断地反复研究。 初涉封包分析的新手,一般会不知道封包分析究竟该从何入手。基于经验,本文将告诉你一般会从哪些类型的包入手进行分析以及应该怎样对封包进行初步的分析。需要指出的是:封包分析是一件非常有趣但同时也非常考验耐心的事,通常,半天的封包分析下来,会让你眼前全是诸如“B0 EF 58 02 10 72....”之类的网络数据,而且附带有头疼、头晕症状,所以,没有充分的心理准备,还请不要轻易尝试。呵呵。
从事封包分析的基本前提是:应该了解和熟悉TCP协议,并知道数据包“粘合”是怎么一回事。当然,我们平常截获到的包,从数量上来看,只有一小部分是属于“粘合”的情况。但如果不了解它,将可能会对你的分析思路产生误导和困惑。关于“粘包”的更详细解释,请参考我的另外一篇文章“拼包函数及网络封包的异常处理(含代码) (http://blog.csdn.net/sodme/archive/2005/07/10/419233.aspx)”。
上一篇有关魔兽世界封包分析的文章(http://blog.csdn.net/sodme/archive/2005/06/18/397371.aspx)中,我根据客户端与服务器端连接及断开事件的处理流程以及登录过程中的一些数据包分析了魔兽的架构和登录逻辑。这篇文章中,我将结合聊天数据包的分析,来阐述魔兽世界封包的大体结构。
首先解释一下我们的目标:封包的大体结构。封包的大体结构包含哪些内容呢?一般情况下,封包的大体结构至少包括两方面的信息: 1、一个封包是如何表示它的长度的?封包长度是由哪个字段表示的?(或者说:如何表示封包的开始和结束的) 2、各种不同的封包类型是通过哪个字段表示的?
是不是所有游戏的封包都必然会有表示“长度”信息的“字段”呢?答案是否定的。有的游戏确实没有采用这种方式,它们的作法设定特殊的包开始和包结束标志。但是,从应用的角度来看,偶推荐使用“长度”这样的方法,因为不管在网络底层的处理效率以及上层应用的处理便捷性来说,使用“长度”字段标识一个完整的逻辑包都是比较好的办法。在确定了封包的大体结构后,我们才方便分析具体类型包(比如聊天、行走等)的详细结构。
作数据包分析,在单纯采用黑箱分析的阶段,我们选取的数据包,须要是具有这种性质的,即:在数据包发送前客户端未进行加密等处理时,这个数据包中的部分内容,我们是已经知道的。这样的包,就可以作为封包分析的突破口。这样看来,我们拿“聊天封包”作为第一个分析对象也就不难理解了,因为我们说的话,打上去的字,我们自己是知道的,但是我们说的话经过客户端的处理后,发到网络上的可能就是已经加了密的或者加了校验码的。站在黑箱分析的角度,我们能作的,就是不断截取各种“聊天包”进行对比、判断和总结。
OK,打开你的commview。让我们从“聊天封包”开始。
分析“聊天包”的前提,是我们能够正常判断哪种类型的数据包是属于聊天的,不要误把行走或其它的数据包当作了聊天数据包。为了减小分析难度,建议新手到游戏中人少或周围没有玩家的地方进行封包分析。这样一来没人打扰,二来你的网络通信量会相对小得多,比较容易进行一些封包判定。
第一步,我们需要确定客户端与服务器通信所用的端口,然后在commview的rules->ports中设定服务器端口,截获与该端口通信的所有数据包。服务器端口的确定方法:不要使用其它网络通信工具,打开commview,进游戏,截包,观察其通信端口。进行封包分析时,特别是初期的封包分析时,你的网络通信应该尽可能是单一的,即:除了游戏,其它的通信软件尽可能不要开。但当你确定了服务器的IP和端口后,就可以照常使用其它网络软件了。
第二步,如前面述,在游戏中找个人少或没人的地方,开始“自言自语”,呵呵。说话的内容,建议以字母和数字为宜,不要说中文。因为中文是双字节的,而字母和数字是单字节的,对于单字节的信息内容,截包软件会以单字节的文本信息显示,但对于双字节的汉字而言,截包软件在对其进行显示时由于换行等原因会造成部分中文显示有乱码,不容易直接看出中文内容。如果执意要说中文,偶也不拦你,给你推荐一个工具:String Demander这个软件,可以查询中文所对应的编码。
第三步,设定好commview的rules并使之生效,开始截包。
观察通过以上的过程所截的包,可以发现,魔兽世界的聊天封包的说话内容是明文的!这一点,用不着大惊小怪,呵呵。聊天封包本身并不会对游戏的关键逻辑造成损害,所以,即使让其明文显示也不足为奇。但是,我们还是不太相信自己的眼睛,于是再截若干个包,发现包中的说话内容确实是明文的!但是,包的其它字段却是我们一时看不懂的“密文”。
看来,下面的事情就是对这些包里的“密文”进行研究了。一般情况下,这种“密文”的加密方法,通过封包分析是分析不出来的,但,我们仍然可以通过封包分析来推论一些与“密文”生成算法有关的问题。我们可以作以下的对比分析: 1、连续三次输入“a”,并分别观察及保存封包数据; 2、连续三次输入“aa”,并分别观察及保存封包数据; 3、连续三次输入“aaa”,并分别观察及保存封包数据。
输入的封包用例,我们选择了字母"a",它的ASCII码是61。输入的规律是:每种情况连续输入三次,然后逐次增加a字母的个数。于是,我们发现这样一个有趣的现象: 1、包中有关说话的内容是明文的; 2、即使针对于同样的说话内容,比如“a”,客户端所发出去的包也是不一样的; 3、当一次说话的字母个数增加1时,封包的总体长度也随之增加1; 4、除每个封包的前面6个字节以及说话的字节外,其余的封包内容每次都一样; 5、每个聊天封包的结尾字节都是0。
于是,我们可以试着得出如下结论: 1、包是没有压缩的,它所使用的加密算法应该是按字节进行的,并没有改变封包的长度使之看上去使用统一的长度; 2、包是以0结尾的(尽管我们不知道它是以什么表示开头的,呵呵); 3、封包加密算法中所使用的密钥是可变的,即针对于相同的数据包内容由于加密的密钥不同,所以产生的密文也不同。由于客户端的数据传到服务器端后,服务器端还要对数据进行解密。所以,客户端的加密算法与服务器端的解密算法应该共用了前6字节中的某些内容,以此作为解密算法的密钥。如果这6字节中没有包含有关封包加、解密所需要的同步数据,那客户端和服务器之间应该会通过其它的方式同步这样的数据。不过,偶倾向于前者,即:这6字节中应该含有加、解密所需要的密钥信息。
回头看我们上面观察到的有趣现象,针对于第2点,反过来想,这应该也是最起码的功能了。就是说,即使客户端作出的是同样的动作,在客户端发出的包中,包的内容也是不一样的。这样,外挂就不能靠单纯的重复发相同的包而达到其目的了。
分析来分析去,我们还是没能确定魔兽封包的大体结构。其实,到现在,我觉得我此文的目的已经达到了,即向大家展示封包分析的思维角度和思维方式。至于具体结果,偶觉得倒真的不重要的了。可以肯定地告诉大家的是,魔兽的封包结构偶大致已经掌握了。偶仅在此公布我的分析结果: 1、魔兽的封包长度字段是每个封包的前两字节,它的表示方式是:前两字节的数值+2。之所以加这个2,是因为封包长度字段本身占用了两个字节的长度。 2、魔兽的封包类型偶推断是第三和第四字节,其中普通聊天的类型标识是“95 00”。
请不要来信向我询问任何有关魔兽封包破解的内容,偶能说的都已经在文章里说了,偶之所以写这个系列的文章不是想破解魔兽,而是想以这样优秀的一款游戏作为案例来向大家展示它在封包设计方面值得我们学习和讨论的地方,同时向更多的朋友普及有关封包分析的常识、工具以及思维方式,仅此而已。
ps:由于每次封包分析的内容都很多,所以,一有了点结论后,要及时记录和总结,并与之前取得的总结进行对比,及时更新相关的记录文档。
Tags: 魔兽私服架设 魔兽SF
发布:fox 分类:魔兽私服 评论:0 引用:0 浏览:43
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽私服添加任务 (2008-11-21 13:13:10)
wowsf最新特效发动原理 (2008-11-21 13:5:39)
魔兽世界sfGM超BT技能代码 (2008-11-21 13:1:19)
魔兽世界私服新手须知 (2008-11-20 13:41:25)
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
榮耀魔獸世界私服 (2008-11-12 10:15:59)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
魔兽世界封包分析
« 魔兽私服添加任务清理怪物尸体时间antrix.conf »
本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一。本文所列的所有封包分析内容,全部是采用普通黑箱方式即可得来的,并未涉及对魔兽世界可执行程序的逆向工程。同时,除此文涉及的内容外,本人拒绝向任何人透露更详细的关于魔兽世界封包方面的更多内容,有兴趣者请自己进行相关的试验,本人在此文中也将尽量避免公开敏感的封包内容及相关加解密算法。谨以此文献给忠爱的暴雪! 一、登录模块流程及封包分析 我们先看登录流程。从封包流程来看,魔兽私服的登录流程是这样的: 1.由Client向登录/账号服务器(Login Server)发送用户名及密码等信息。此数据包的最后部分是用户名(明文表示,未加密),在用户名的前一个字节表示的是用户名的长度。登录/账号服务器向Client返回登录成功及后续连接到游戏服务器服务器所必备的信息等。这中间的两个来往数据包,我还没有看出具体有什么作用。在这个交互过程中,由登录/账号服务器向Client发送所有的游戏服务器列表,服务器列表数据包的内容包括:ip, port, 服务器上所拥有的角色个数等信息,因服务器列表内容过多,被客户端分为两次接收完毕。 2.Client收到Login Server的服务器列表后,根据最近访问的服务器标识(这个信息应该是包含在那个服务器列表数据包中),连接到最近游戏的那个游戏服务器(Game Server)。连接成功后,Game Server首先向Client发送一个8字节的数据包,据以往的常识判断,这个数据包的内容很可能是以后客户端与服务器通信的加密密钥。 3.Client向Game Server再次发送自己的账号信息。Game Server与Client经过两个数据包的交互后,向Client发送角色数据包,此包中包括了玩家在该Game Server所创建的所有角色信息,当然这个信息只是部分的,并不是该角色的所有信息。 4.在此后的通信过程中,Client每隔30秒向Game Server发送一个保持连接的包,该包长度为10字节,包的最后四字节是一个递增数字,前面6字节暂时未看出规律。 5.只要Client没有点击某个角色进入最终的Game Server,则Client要始终与Login Server保持连接。当Client点击角色进入Game Server时,Client才与Login Server断开连接。在以后的游戏过程中,Client始终与且仅与该Game Server进行数据通信。 通过对登录流程中的数据包初步分析,可以得出以下几个结论: 1.Client向Login Server发的第一个数据包,用户名部分是采用明文的,且该数据包的内容,每次登录都一样,并没有因时间的不同而发生改变。由此可以推算:针对于此数据包中的密码加密算法是固定不变的,换句话说,密码的加密算法是比较容易通过逆向工程被找到的。偶认为,针对于此处,服务器也应该先向客户端发送一个加密密钥,以后的通信可以用该密钥作为安全验证的依据。但暴雪没有这样作,最大的可能是为了提高服务器的效率,在登录服务器上,如果每个客户端一旦连接成功,登录服务器都得向客户端广播一个数据包的话,可能这个量还是比较大的,这可能延长了玩家的登录等待时间,所以他们没有在这块作。 2.Client在登录Login Server的地址,每次Login Server的登录地址都可能是不一样的。偶没有在客户端目录里找到这些地址,只在客户端目录里找到了四个大区的四个域名,我猜想,魔兽世界是用的DNS解析的简单方法来实现Login Server的简单动态均衡的。不知道这个猜想是否正确。 3.“根据玩家最近在玩的哪个游戏,由客户端和服务器自动为玩家选择进入这个游戏服务器”,这一项设定充分体现了暴雪一贯的风格:为玩家着想,最大限度地提高游戏的舒适度。再次对暴雪的态度予以肯定! 4.一旦玩家进入了游戏世界,客户端与服务器的通信端口会一直保持不变。即:魔兽世界的游戏世界服务器群设计结构采用的是带网关的服务器集群。 5.偶觉得在整个的登录流程中,让我产生最大疑问的就是Login Server与Client的连接保持逻辑。当Client与Game Server连接了之后,Client并未与Login Server断开,是一直保持连接的。后来,经进一步的抓包分析,Client之所以要与Login Server保持这样的连接,是为了当Client重新选择服务器时,不至于重新连接Login Server。当Client点击了"选择服务器"按纽后,Login Server会每隔5秒向Client发一个当前所有的服务器列表数据包。要知道,这个服务器列表数据包的内容可是非常大的,如果有玩家就打开了这个窗口不关闭,Login Server向这种情况的所有玩家每5秒钟就发一个服务器列表数据包,这个广播量可是很大的哦(2k左右,这可是一个用户是2k哦)。偶认为这里的逻辑设计是相当不合理的。Login Server如果为了给客户端提供一个最新的全局服务器列表,可以保持连接,但也没必要每隔5秒就向客户端发一个服务器列表,最多只在客户端在某个服务器上创建了不同的角色后再更新这个列表也是可以的,但只用更新这个列表中的变化内容即可,不用发全部的完整包,这样,在通信量上就小了很多。据说,魔兽刚开始的时候,产生DOWN机的原因就是登录模块没有处理好,偶不知道现在的这个情况是不是已经经过改良的了。但偶还是认为每隔5秒就向客户端发送一个2K的包,这一点是不可以被接受的。 以上只是针对于魔兽世界登录流程的简单分析,没有多少技术含量,拿出来跟大家相互讨论讨论,看看有没有可以借鉴的地方,后面还会有其它部分的封包分析。欢迎继续关注偶的Blog: http://blog.csdn.net/sodme。 偶在文章前面部分说过,作为一个网络编程人员,熟练使用截包软件和掌握基本的封包分析方法是其基本能力之一,发此文的目的一个原因也是希望向正在作网络编程的兄弟介绍一下相关工具的使用和常见的分析方法。下面补充一下关于封包分析的基本方法和相关工具: 1.你需要一个截包工具,偶推荐:commview,小巧但功能强大,支持自定义的封包分析插件以DLL形式装载,也就是说只要你愿意,你可以写个DLL对某类特殊形式的包进行显示、记录、解密等特别处理。 2.如何查看真正的封包数据。在commview里,会详细列出自网卡级别以上的各层封包数据,包括Ethernet层,IP层和TCP层。而我们作封包分析时,只需要关注TCP层。但TCP层里也有很多内容,对于我们的分析需求来说,我们需要关注的是其Data字段(在协议目录里可以看到"data length标识,点击即可查看data段")的内容。 3.TCP的几个状态对于我们分析所起的作用。在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。PSH为1的情况,一般只出现在DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。
封包分析的手段,说简单也挺简单的,那就是:比较!要不断地从不同的思维角度对封包进行对比分析,要充分发挥你的想象力不断地截取自己需要的包进行比较。不仅要作横向(同类)的比较,还要作纵向(不同类)的比较。即时对于同一个包,也要不断地反复研究。 初涉封包分析的新手,一般会不知道封包分析究竟该从何入手。基于经验,本文将告诉你一般会从哪些类型的包入手进行分析以及应该怎样对封包进行初步的分析。需要指出的是:封包分析是一件非常有趣但同时也非常考验耐心的事,通常,半天的封包分析下来,会让你眼前全是诸如“B0 EF 58 02 10 72....”之类的网络数据,而且附带有头疼、头晕症状,所以,没有充分的心理准备,还请不要轻易尝试。呵呵。
从事封包分析的基本前提是:应该了解和熟悉TCP协议,并知道数据包“粘合”是怎么一回事。当然,我们平常截获到的包,从数量上来看,只有一小部分是属于“粘合”的情况。但如果不了解它,将可能会对你的分析思路产生误导和困惑。关于“粘包”的更详细解释,请参考我的另外一篇文章“拼包函数及网络封包的异常处理(含代码) (http://blog.csdn.net/sodme/archive/2005/07/10/419233.aspx)”。
上一篇有关魔兽世界封包分析的文章(http://blog.csdn.net/sodme/archive/2005/06/18/397371.aspx)中,我根据客户端与服务器端连接及断开事件的处理流程以及登录过程中的一些数据包分析了魔兽的架构和登录逻辑。这篇文章中,我将结合聊天数据包的分析,来阐述魔兽世界封包的大体结构。
首先解释一下我们的目标:封包的大体结构。封包的大体结构包含哪些内容呢?一般情况下,封包的大体结构至少包括两方面的信息: 1、一个封包是如何表示它的长度的?封包长度是由哪个字段表示的?(或者说:如何表示封包的开始和结束的) 2、各种不同的封包类型是通过哪个字段表示的?
是不是所有游戏的封包都必然会有表示“长度”信息的“字段”呢?答案是否定的。有的游戏确实没有采用这种方式,它们的作法设定特殊的包开始和包结束标志。但是,从应用的角度来看,偶推荐使用“长度”这样的方法,因为不管在网络底层的处理效率以及上层应用的处理便捷性来说,使用“长度”字段标识一个完整的逻辑包都是比较好的办法。在确定了封包的大体结构后,我们才方便分析具体类型包(比如聊天、行走等)的详细结构。
作数据包分析,在单纯采用黑箱分析的阶段,我们选取的数据包,须要是具有这种性质的,即:在数据包发送前客户端未进行加密等处理时,这个数据包中的部分内容,我们是已经知道的。这样的包,就可以作为封包分析的突破口。这样看来,我们拿“聊天封包”作为第一个分析对象也就不难理解了,因为我们说的话,打上去的字,我们自己是知道的,但是我们说的话经过客户端的处理后,发到网络上的可能就是已经加了密的或者加了校验码的。站在黑箱分析的角度,我们能作的,就是不断截取各种“聊天包”进行对比、判断和总结。
OK,打开你的commview。让我们从“聊天封包”开始。
分析“聊天包”的前提,是我们能够正常判断哪种类型的数据包是属于聊天的,不要误把行走或其它的数据包当作了聊天数据包。为了减小分析难度,建议新手到游戏中人少或周围没有玩家的地方进行封包分析。这样一来没人打扰,二来你的网络通信量会相对小得多,比较容易进行一些封包判定。
第一步,我们需要确定客户端与服务器通信所用的端口,然后在commview的rules->ports中设定服务器端口,截获与该端口通信的所有数据包。服务器端口的确定方法:不要使用其它网络通信工具,打开commview,进游戏,截包,观察其通信端口。进行封包分析时,特别是初期的封包分析时,你的网络通信应该尽可能是单一的,即:除了游戏,其它的通信软件尽可能不要开。但当你确定了服务器的IP和端口后,就可以照常使用其它网络软件了。
第二步,如前面述,在游戏中找个人少或没人的地方,开始“自言自语”,呵呵。说话的内容,建议以字母和数字为宜,不要说中文。因为中文是双字节的,而字母和数字是单字节的,对于单字节的信息内容,截包软件会以单字节的文本信息显示,但对于双字节的汉字而言,截包软件在对其进行显示时由于换行等原因会造成部分中文显示有乱码,不容易直接看出中文内容。如果执意要说中文,偶也不拦你,给你推荐一个工具:String Demander这个软件,可以查询中文所对应的编码。
第三步,设定好commview的rules并使之生效,开始截包。
观察通过以上的过程所截的包,可以发现,魔兽世界的聊天封包的说话内容是明文的!这一点,用不着大惊小怪,呵呵。聊天封包本身并不会对游戏的关键逻辑造成损害,所以,即使让其明文显示也不足为奇。但是,我们还是不太相信自己的眼睛,于是再截若干个包,发现包中的说话内容确实是明文的!但是,包的其它字段却是我们一时看不懂的“密文”。
看来,下面的事情就是对这些包里的“密文”进行研究了。一般情况下,这种“密文”的加密方法,通过封包分析是分析不出来的,但,我们仍然可以通过封包分析来推论一些与“密文”生成算法有关的问题。我们可以作以下的对比分析: 1、连续三次输入“a”,并分别观察及保存封包数据; 2、连续三次输入“aa”,并分别观察及保存封包数据; 3、连续三次输入“aaa”,并分别观察及保存封包数据。
输入的封包用例,我们选择了字母"a",它的ASCII码是61。输入的规律是:每种情况连续输入三次,然后逐次增加a字母的个数。于是,我们发现这样一个有趣的现象: 1、包中有关说话的内容是明文的; 2、即使针对于同样的说话内容,比如“a”,客户端所发出去的包也是不一样的; 3、当一次说话的字母个数增加1时,封包的总体长度也随之增加1; 4、除每个封包的前面6个字节以及说话的字节外,其余的封包内容每次都一样; 5、每个聊天封包的结尾字节都是0。
于是,我们可以试着得出如下结论: 1、包是没有压缩的,它所使用的加密算法应该是按字节进行的,并没有改变封包的长度使之看上去使用统一的长度; 2、包是以0结尾的(尽管我们不知道它是以什么表示开头的,呵呵); 3、封包加密算法中所使用的密钥是可变的,即针对于相同的数据包内容由于加密的密钥不同,所以产生的密文也不同。由于客户端的数据传到服务器端后,服务器端还要对数据进行解密。所以,客户端的加密算法与服务器端的解密算法应该共用了前6字节中的某些内容,以此作为解密算法的密钥。如果这6字节中没有包含有关封包加、解密所需要的同步数据,那客户端和服务器之间应该会通过其它的方式同步这样的数据。不过,偶倾向于前者,即:这6字节中应该含有加、解密所需要的密钥信息。
回头看我们上面观察到的有趣现象,针对于第2点,反过来想,这应该也是最起码的功能了。就是说,即使客户端作出的是同样的动作,在客户端发出的包中,包的内容也是不一样的。这样,外挂就不能靠单纯的重复发相同的包而达到其目的了。
分析来分析去,我们还是没能确定魔兽封包的大体结构。其实,到现在,我觉得我此文的目的已经达到了,即向大家展示封包分析的思维角度和思维方式。至于具体结果,偶觉得倒真的不重要的了。可以肯定地告诉大家的是,魔兽的封包结构偶大致已经掌握了。偶仅在此公布我的分析结果: 1、魔兽的封包长度字段是每个封包的前两字节,它的表示方式是:前两字节的数值+2。之所以加这个2,是因为封包长度字段本身占用了两个字节的长度。 2、魔兽的封包类型偶推断是第三和第四字节,其中普通聊天的类型标识是“95 00”。
请不要来信向我询问任何有关魔兽封包破解的内容,偶能说的都已经在文章里说了,偶之所以写这个系列的文章不是想破解魔兽,而是想以这样优秀的一款游戏作为案例来向大家展示它在封包设计方面值得我们学习和讨论的地方,同时向更多的朋友普及有关封包分析的常识、工具以及思维方式,仅此而已。
ps:由于每次封包分析的内容都很多,所以,一有了点结论后,要及时记录和总结,并与之前取得的总结进行对比,及时更新相关的记录文档。
Tags: 魔兽私服架设 魔兽SF
发布:fox 分类:魔兽私服 评论:0 引用:0 浏览:43
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽私服添加任务 (2008-11-21 13:13:10)
wowsf最新特效发动原理 (2008-11-21 13:5:39)
魔兽世界sfGM超BT技能代码 (2008-11-21 13:1:19)
魔兽世界私服新手须知 (2008-11-20 13:41:25)
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
榮耀魔獸世界私服 (2008-11-12 10:15:59)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
清理怪物尸体时间antrix.conf
« 魔兽世界封包分析WOWSF与GF的区别.与选择一个SF并且留下的原因 »
魔獸私服清理怪物尸体时间(antrix.conf中定义)
虽然加这个没有什么技术含量,但是这个对于资源占用来说很重要...........Index: Creature.cpp===================================================================--- Creature.cpp (revision 627)+++ Creature.cpp (working copy)@@ -362,8 +362,8 @@GetAIInterface()->SetUnitToFollow(NULL);m_deathState = CORPSE;- - sEventMgr.AddEvent(this, &Creature::OnRemoveCorpse, EVENT_CREATURE_REMOVE_CORPSE, 180000, 1);+ uint32 RemoveCopseTime = Config.MainConfig.GetIntDefault("godtoo","InitRCT",0);+ sEventMgr.AddEvent(this, &Creature::OnRemoveCorpse, EVENT_CREATURE_REMOVE_CORPSE, RemoveCopseTime, 1);if(m_enslaveSpell)RemoveEnslave();
Tags: 魔兽SF 魔兽私服架设
发布:fox 分类:魔兽私服 评论:0 引用:0 浏览:8
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽世界封包分析 (2008-11-21 13:16:27)
魔兽私服添加任务 (2008-11-21 13:13:10)
wowsf最新特效发动原理 (2008-11-21 13:5:39)
魔兽世界sfGM超BT技能代码 (2008-11-21 13:1:19)
魔兽世界私服新手须知 (2008-11-20 13:41:25)
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
榮耀魔獸世界私服 (2008-11-12 10:15:59)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
魔獸私服清理怪物尸体时间(antrix.conf中定义)
虽然加这个没有什么技术含量,但是这个对于资源占用来说很重要...........Index: Creature.cpp===================================================================--- Creature.cpp (revision 627)+++ Creature.cpp (working copy)@@ -362,8 +362,8 @@GetAIInterface()->SetUnitToFollow(NULL);m_deathState = CORPSE;- - sEventMgr.AddEvent(this, &Creature::OnRemoveCorpse, EVENT_CREATURE_REMOVE_CORPSE, 180000, 1);+ uint32 RemoveCopseTime = Config.MainConfig.GetIntDefault("godtoo","InitRCT",0);+ sEventMgr.AddEvent(this, &Creature::OnRemoveCorpse, EVENT_CREATURE_REMOVE_CORPSE, RemoveCopseTime, 1);if(m_enslaveSpell)RemoveEnslave();
Tags: 魔兽SF 魔兽私服架设
发布:fox 分类:魔兽私服 评论:0 引用:0 浏览:8
点击这里获取该日志的TrackBack引用地址
相关文章:
魔兽世界封包分析 (2008-11-21 13:16:27)
魔兽私服添加任务 (2008-11-21 13:13:10)
wowsf最新特效发动原理 (2008-11-21 13:5:39)
魔兽世界sfGM超BT技能代码 (2008-11-21 13:1:19)
魔兽世界私服新手须知 (2008-11-20 13:41:25)
魔兽世界SF的BUG (2008-11-20 13:38:16)
魔兽私服自编物品简单介绍 (2008-11-19 13:24:26)
教用wow模拟器WDDG (2008-11-19 13:19:8)
魔兽私服架设心得2 (2008-11-13 17:9:53)
魔兽私服架设心得 (2008-11-13 17:6:36)
魔兽世界私服地图坐标 (2008-11-12 12:5:30)
榮耀魔獸世界私服 (2008-11-12 10:15:59)
魔獸sf装备治疗属性将被修改 (2008-11-12 10:13:16)
魔兽私服Gm命令 (2008-11-11 20:10:48)
魔兽世界给我的感觉 (2008-11-11 19:41:14)
订阅:
博文 (Atom)