问题描述
Tag:wow魔兽世界wowbee魔蜂辅助外挂原理破解此篇文章是对WowBee魔蜂辅助插件实现原理的简单分析.供插件爱好者学习参考,不计版权,欢迎转载.假定读者拥有一些lua语言基础wow插件基础还有些数据结构的基础知识.众所周知暴雪在wow2.0的时候就封掉了脚本释放法术...释放法术宏的写法也被修改了.比如你可以使用宏/cast[harm,nodead]火球术但是你要是写成/runCastSpellByName("火球术")这个就不让你用了.还有类似很多函数都被blz标记成了PROTECTED仅准许blz内部插件调用.魔蜂是怎么突破这个限制的呢.答案是宏.就是前边说的/cast[harm,nodead]火球术这个.因为这是blz准许的释放法术宏写法.并且blz插件使这种宏不可自动执行,必须要有按键或者鼠标点击才可以.魔蜂的实现办法就是在游戏内建立一个宏.通过hack内存的办法去修改这个宏的内容.并且模拟键盘按键调用使其发挥作用.接下来仔细说下过程.起点还是魔蜂的内置插件,这部分我就不仔细解释了,写插件的同行都应该很了解,功能就是构造你在wow运行时候看到的小地图图标,魔蜂的那个界面,脚本编辑器之类的.因为魔蜂的脚本也是lua语言,所以并不需要什么处理,直接wow就可以调用.当魔蜂需要执行一个施法指令比如BeeRun("火球术")的时候.插件里调用CastSpellByName是不可能的了.它其实是生成了一个字符串"/cast火球术"当然字符串是没办法当作宏执行的.插件这时会把这个字符串进行一下编码,并且存到一个指定的内存中.这之后魔蜂的客户端就该出来干活,客户端侵入wow进程,不断扫描事先约定好的这部分内存一旦发现了这个变化就会将这部分数据提取出来,并且解码成原始字符串"/cast火球术",然后也是侵入wow进程中魔蜂事先准备好的一个wow宏,将其内容替换掉.再之后就简单了,模拟键盘按键按一下.好了.你的小法师应该已经开始唱火球术了.这之中的几个要点解释下------------------指定内存:----------------------------老玩家都应该知道当年的FPE,金山游侠.这类东西吧.扫描内存,改写内存数据的工具.魔蜂也是这样指定与wow通信的内存的.实现起来也很简单.就3个api:OpenProcess,ReadProcessMemory,WriteProcessMemory.具体用法google下很简单.魔蜂在LibraryFAIAP.lua里设了这么个数组localspecialCharacters2={}用其作为通信内存.并且在wow中对其进行了初始化赋值680000000010,680000000020,680000000030直到6800000001000一共100个lua是个C基础的语言.这个数在内存中是用double类型来存储的,680000000010转成double型式是0x4263CA6512014000在内存中高位在后低位在先扫描内存很容易发现一块0040011265CA6342数据:09140300h:880040011265CA634203000000A093C5;?@..e蔯B....爴?09140310h:0D0080021265CA634203000000A093C5;..€..e蔯B....爴?09140320h:0D00C0031265CA634203000000A093C5;..?.e蔯B....爴?09140330h:0D0000051265CA634203000000A093C5;.....e蔯B....爴?09140340h:0D0040061265CA634203000000A093C5;..@..e蔯B....爴?09140350h:0D0080071265CA634203000000A093C5;..€..e蔯B....爴?09140360h:0D00C0081265CA634203000000A093C5;..?.e蔯B....爴?09140370h:0D00000A1265CA634203000000A093C5;.....e蔯B....爴?09140380h:0D00400B1265CA634203000000A093C5;..@..e蔯B....爴?09140390h:0D00800C1265CA634203000000A093C5;..€..e蔯B....爴?091403a0h:0D00C00D1265CA634203000000A093C5;..?.e蔯B....爴?托内存对齐的福.超级整齐的.接下来是魔蜂内置宏的代码是这样的sllder:SetAttribute("macrotext","/macrotext"..string.rep("",245));呃.字符串...也很容查找..17bbfcc0h:0D0400007223B381BDFF0000002F6D61;....r#硜?.../ma17bbfcd0h:63726F74657874202020202020202020;crotext17bbfce0h:20202020202020202020202020202020;17bbfcf0h:20202020202020202020202020202020;17bbfd00h:20202020202020202020202020202020;17bbfd10h:20202020202020202020202020202020;17bbfd20h:20202020202020202020202020202020;恩..这是32bit的客户端数据..如果64bit客户端数据存储会不太一样.记下这两个地址之后.就可以不断监控前一个地址,发现数据变化就解码处理下存入第二个内存地址去.-----------------模拟按键-------------------------------这个很容易的.windows是消息机制,只要发送个SendMessage就可以了,恩模拟一个按键是两个消息WM_KEYDOWN和WM_KEYUP..默认魔蜂使用的是F12键.如果你在魔兽的按键设置中改动F12键的功能会收到个提示噢~~魔蜂也就不好用了.------------------编码解码--------------------------恩魔蜂的编码方式是这样,比如要编码/cast[harm]先按ascii转成10进制C语言字符串结束符是个lua一样/cast[harm]4799971151163291104971141099303位规整下047099097115116032091104097114109093000之后5个一组不足补0047099097115116032091104097114109093000000000得到这么3个数,挨个按double型转换047099097115116=0x42C56B0E79F4F600032091104097114=0x42BD2FCADC335A00109093000000000=0x42D8CE0C60CC8000监控内存的时候在数据区读出来就是这么个内容了..要记得高位在后低位在前解码过程就是倒过来...我就不废话了..=====================下载=======================================代码是用vs2010C#写的..我不怎么会用这东西,都是临时抱佛脚,大家看看就好,表拍砖了.变量命名代码结构啥的..明白人就当没看见吧.编译出的exe我也一并发了,有条件完全可以自己重新编译.我人格保证肯定不带木马病毒.转发我就无能为力.由于魔蜂更新很可能会变更具体的通信数据.压缩包内附带了可用魔蜂插件.代码中简单实现了魔蜂连接校验.不过当前版本的魔蜂不进行连接校验也是可以工作的.代码http://115.com/file/e7wxqp4b视频http://115.com/file/c2m8owhj=====================我用到的工具===================================MS官方SysinternalsSuite中的ProcessExplorer工具可以dump进程内存dump出来的文件用十六进制编辑器查看比如我用的ultraeditdouble类型的十进制与十六进制转换我用的是FloatConvert======================写在最后======================================准确的说,魔蜂还是外挂,毕竟改写了wow的内存数据.只不过暴雪没法检测你是否用了魔蜂,而封禁这个漏洞也有点不那么容易.
解决方案
解决方案二:
嗯,牛啊
解决方案三:
碉堡了
解决方案四:
佩服啊,应该研究了很久吧
解决方案五:
研究研究研究
解决方案六:
这个厉害啊。。。。没有exe文件啊。。。
解决方案七:
没有安装vs2010打不开啊。。。。。
解决方案八:
exe在源码的WindowsFormsApplication1WindowsFormsApplication1bin目录下...
解决方案九:
跪求大神破解最新版