用CE能搜出怪的ce内存修改器吗?

怎么搜索DNF内存?用什么工具,为什么CE会非法? 发个工具吧。谢谢。_百度知道&&&&输入法注入CE可以搜索DNF内存过NP
&输入法注入CE可以搜索DNF内存过NP
输入法注入CE可以搜索DNF内存过NP
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动***等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
输入法注入CE可以搜索DNF内存过NP
所需积分:5
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
输入法注入CE可以搜索DNF内存过NP
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员您现在的位置:&&>>&电脑频道&>>&&>>&内存中找怪物之代码注入篇
内存中找怪物之代码注入篇
作者:佚名&&&&来源:网友投稿&&&&点击数:&&&&更新时间:
导读:   网上看了n多的文章,对内存中找怪极少有详细介绍,大多数人搞定人物内存中的有关参数后,止步于内存中的找怪。人物只有一个,而怪有各种各样的,数量又同时出现多个,比在内存中找人物坐标难度要大得多。   下面我将尽可能详细的讲讲内存中找怪之代码注入篇,抛砖引玉,望高人指点。这里的代码注入是直接把代码注入到游戏文件中,学个破解的人都知道,哪怕游戏原文件加了壳,在游戏原文件中加入自己的代码也是完全可以的。   由于本人水平有限,有的地方可能表达不清,请耐心慢慢看。有的地方采取的方法也许对高手来说好低劣,见笑了。   一、把周围的怪物名称起始地址集中写到内存中一固定区域。游戏中,玩家周围有许多怪物,所有怪物的名称、坐标、血量等参数不可能会固定在某一内存位置,但对于每一个怪物而言,它的名称、坐标、血量等在内存中的地址之间有着相对固定的差值,只要知道怪物的名称地址就能知道这个怪物的坐标、血量等地址。因此,只要把周围每个怪物的名称地址固定在内存中一定区域,就可知道这些怪物的其他参数。   1、先把游戏中我们需要打的怪物名称(不是所有怪物,因为有的怪物不爆东西等不值得打)固定放到内存地址为004d2a60起的一块区域,制做一张需要打的怪物名称列表。每个怪名称占12字节,不够12字节的后面用00填充。   内存地址:004d2a60是怎样来的呢?   我们用peditor打开游戏原文件,可以看到pe文件分了好多块,有的块是可以改写的(属性为e0000020或c0000040的可以改写),块里并不全部写满了数据,还有大块连续为00的空闲区域。用ultraedit等软件打开游戏文件,看到文件物理地址为000d2a60起有一大块为00的空闲区域。映射到内存中就是地址为004d2a60起一块为00的空闲区域,我们先把怪物名称写到这块地方。   具体操做是用ultraedit打开游戏文件,修改文件物理地址为000d2a60起的数据。原文件中这里全部为00,我们把下面数据填进去(部分怪物名称列表)。   000d2a60 b0 eb ca de d5 bd ca bf 00 00 00 00 b0 eb ca de 半兽战士....半兽   000d2a70 d3 c2 ca bf 00 00 00 00 bb a2 c9 df 00 00 00 00 勇士....虎蛇....   000d2a80 00 00 00 00 b6 be d6 a9 d6 eb 00 00 00 00 00 00 ....毒蜘蛛......   000d2a90 c9 ad c1 d6 d1 a9 c8 cb 00 00 00 00 cd fe cb bc 森林雪人....威思   000d2aa0 b6 f8 d0 a1 b3 e6 00 00 b6 e0 bd c7 b3 e6 00 00 而小虫..多角虫..   000d2ab0 00 00 00 00 bf f8 bc d7 b3 e6 00 00 00 00 00 00 ....盔甲虫......   000d2ac0 b8 af ca b4 c8 cb b9 ed 00 00 00 00 c0 cb d7 d3 腐蚀人鬼....浪子   000d2ad0 c8 cb b9 ed 00 00 00 00 c0 d7 b5 e7 bd a9 ca ac 人鬼....雷电僵尸   000d2ae0 00 00 00 00 bd a9 ca ac 00 00 00 00 00 00 00 00 ....僵尸........   000d2af0 c9 ae c2 c2 bd a9 ca ac 00 00 00 00 b6 b4 c7 f9 僧侣僵尸....洞蛆   000d2b00 00 00 00 00 00 00 00 00 f7 bc f7 c3 be ab c1 e9 ........骷髅精灵   000d2b10 00 00 00 00 ca ac cd f5 00 00 00 00 00 00 00 00 ....尸王........   这样,当游戏运行时,从内存地址004d2a60起的一段区域有了我们需要打的怪物列表。   2、再把玩家周围实际刷的怪物名称的起始地址(注意是名称的起始地址)固定在内存为004d3000起的长为100(16进制)的地方。   内存地址:004d3000是游戏运行时我们查到的空闲内存地址,我们利用它们来放周围怪物名称的起始地址,每个怪物名称的起始地址占4个字节,长为100(16进制)可以放64个怪物,玩家周围不会超过64个怪物吧,长为100应足够了。      3、怎么写入这些怪物名称的起始地址呢?   首先应知道,游戏从哪里把怪物名称写入内存中。   cheat engine会用吧?具体怎么找,简单的说一下:   先运行游戏再运行cheat engine,ce中选择游戏程序,查看内存,搜索内存玩家周围的一个怪物名称。找到后记下怪物名称的起始内存地址,手动添加地址,把找到的地址添加到列表,类型为文本。从列表中选刚才添加的地址,右键选&寻找什么写入这个地址&。回到游戏中移动玩家,观察刚添加的内存地址的数值变化。变为00时为该怪物从玩家视眼中消失。再移动玩家到看见这怪物,如果运气好,怪物名会再次写入这个内存地址。这样在&以下处理将改变运算码&的窗口中会有汇编代码出现。   如我的游戏:   能看到 mov byte ptr [edi+ecx], dl 这句。   游戏是从这句把怪物名写入内存中的。   用ollyice打开游戏。跳到以下这段代码可以看到:    &/8a11 mov dl, byte ptr [ecx] //从这里开始写怪物名称    . |88140f mov byte ptr [edi+ecx], dl //名称从[edi+ecx]开始    . |41 inc ecx    . |84d2 test dl, dl    .^\75 f6 jnz short
  0040987a . 50 push eax //写完了运行到这里。   0040987b ? 68 4c774c00 push 004c774c    . 56 push esi    . e8 02f10a00 call 004b8988   游戏每出现一个怪都会把怪物名称写入[edi+ecx]开始的内存中,显然内存地址[edi+ecx]不是一个固定的值。我们要把这个值复制一份固定到内存中地址为004d3000开始的一块区域。   这样,周围的怪物名称的起始地址就固定在004d04、004d3008等等内存中.知道怪物名称的起始地址就能算出怪物的坐标、血量等地址。   具体怎么做呢?   我们看到游戏运行到0040987a . 50 push eax 这行时,怪物名称已经写到内存中,我们从这行开始写入我们的代码,原文件中紧接这行的下面肯定没有多余的空间来写我们的代码,这就要求改写这行代码,跳到空闲的地方把我们的代码加进去,运行完我们的代码后再跳回来。   因此把原文件改为如下(对照上面):    &/8a11 mov dl, byte ptr [ecx]    . |88140f mov byte ptr [edi+ecx], dl    . |41 inc ecx    . |84d2 test dl, dl    .^\75 f6 jnz short
  0040987a .- e9 fb690c00 jmp 004d027a //这里改为跳到004d027a    nop    . 56 push esi    . e8 02f10a00 call 004b8988   就是把这行0040987a . 50 push eax改为:   0040987a .- e9 fb690c00 jmp 004d027a   从004d027a开始写我们的代码,原文件中004d027a也是一块为00的空闲区域。   下面是我们添加进去的代码,原文件中是为00的空闲区域。   004d027a 50 push eax //先把一些用到的寄存器数据入栈,保护现场。   004d027b 53 push ebx   004d027c 51 push ecx   004d027d 52 push edx   004d027e 31d2 xor edx, edx   004d a4f61200 add edi, 12f6a4 //此处就是edi+ecx,ecx为常数12f6a4   004d cmp dword ptr [edi], 0 //怪名是否为空   004d je short 004d02ee //为空不是怪名,直接跳回去不写入   004d028b 33c9 xor ecx, ecx   004d028d 8b0439 mov eax, dword ptr [ecx+edi] //怪名前4个字节放入eax中   004dc11 602a4d00 mov ebx, dword ptr [ecx+edx+4d2a60] //需要打的怪名前4个字节   004d 04 add ecx, 4   004d029a 3bc3 cmp eax, ebx //比较刷的怪名与需要打的怪名前4个字节   004d029c 75 07 jnz short 004d02a5 //不相等,跳到与下一个需要打的怪名   004d029e 83f9 0c cmp ecx, 0c //因为怪名长占12个字节,所以要比较三次   004d02a1 ^ 7c ea jl short 004d028d //没比较完
上一篇文章:
下一篇文章:

参考资料

 

随机推荐