DXFHOOK变怪的制作与更新教程
本帖最后由 now刘 于 2016-7-2 21:14 编辑大家好我是Now You See Me 这次给大家带来DXF的HOOK变怪与更新制作,这个教程非常简单,对了还有我说下教程没说的原理,打个比方说在HOOK地方系统之前已经把怪物代码的值赋予进去了,经过下方的依次进过mov eax,ds:和mov esi,ds:进行一次真正的计算好发入生成怪的call中,我们只需要在HOOK到空白地方,依照堆寨先进后出的性质 先把 EBP+8赋值一个怪物代码,EBP+C赋值一个怪物的等级,然后跳回到原来的地方,就完成了HOOK,补:以解决闪退问题,我把缓存{0,0,0}全部去掉,在压入ECX,完美解决闪退,虽然ECX并无多大作用。
**** Hidden Message *****
.版本 2
.子程序 HOOK变怪
.局部变量 Code, 字节集
.局部变量 空白地址, 整数型
.局部变量 变怪地址, 整数型
.局部变量 跳回地址, 整数型
.局部变量 怪物代码, 整数型
.局部变量 怪物等级, 整数型
' 写内存字节集 (进程ID, 十六到十2 (“02040DAE”), 还原字节集2 (“90 90 90”))
变怪地址 = 十六到十2 (“2040D40”)' 从这个PUSH 50 开始变怪,每次游戏更新更新这里
空白地址 = 十六到十2 (“400400”)
怪物代码 = 270' 270龙头炮 11牛头兵
怪物等级 = 20' 50级
跳回地址 = 变怪地址 + 9' 光是的HOOK过程,就用掉了8个地址
Code = Code + { 62, 199, 69, 8 }' 3E C7 45 08
Code = Code + 到字节集 (怪物代码)
' Code = Code + { 0, 0 }' 00 00
Code = Code + { 62, 199, 69, 12 } + 到字节集 (怪物等级)' 3E C7 45 08 +(怪物等级)
' Code = Code + { 0, 0 }' 00 00
Code = Code + { 80, 81, 86, 87, 161, 48, 154, 130, 3 }'每次游戏更新更新这里
Code = Code + { 104 } + 到字节集 (跳回地址)' PUSH 字节集地址
Code = Code + { 195 }' ret PUSH和ret的连用可以解释成跳到跳回地址,具体为什么这样写原因可以不用更新跳回地址
.判断开始 (变怪开关 = 假)
变怪开关 = 真
写内存字节集 (取进程ID (“DNF.exe”), 十六到十2 (“400400”), Code)
写内存字节集 (取进程ID (“DNF.exe”), 变怪地址, { 233 } + 到字节集 (到整数 (十六到十2 (“400400”) - 变怪地址 - 9)) + { 144, 144, 144, 144 })' 这个-8减多少没问题,一般用来避免代码错误
公告 (“HOOK变怪开启成功”)
.默认
变怪开关 = 假
写内存字节集 (-1, 十六到十2 (“2040D40”), { 80, 81, 86, 87, 161, 48, 154, 130, 3 })' 还原原来的线路
公告 (“HOOK变怪关闭成功”)
.判断结束
' 进图前开启!进图前开启!进图前开启!重要的事情说三遍!
好东西,收下了,Thanks 之前有人研究过植物大战僵尸HOOK变怪原理,应该差不多 {:5_188:}变乖是什么鬼啊,不懂什么意思啊,就是减少怪物等级么 来看看~~{:5_188:} 退隐猫九_ 发表于 2016-7-1 09:41
变乖是什么鬼啊,不懂什么意思啊,就是减少怪物等级么
就是在系统生成怪物的地方,写下自己的怪物代码和怪物等级,每次系统生成怪物的时候会生成自己写入的怪 now刘 发表于 2016-7-1 09:51
就是在系统生成怪物的地方,写下自己的怪物代码和怪物等级,每次系统生成怪物的时候会生成自己写入的怪
{:5_188:}原来如此,理解了