查看: 6459|回复: 20

[技术交流] 【游戏工具制作小组科普】关于对核武原理的分析以及若干问题

[复制链接]
发表于 2012-11-9 09:14 | 显示全部楼层 |阅读模式
核武器的本质是一个内存修改器 而内存修改器的实质就是读取游戏中每个属性的相应内存地址 进行修改后再放回远地址保存
原理大概在载入游戏的时候把所有属性内存的基地址放入程序
然后在当前画面(核武的载入当前游戏画面)或者搜索界面(自己输入的球员名)匹配相应的球员的初始地址(基地址)
修改属性的时候加上内存偏移量再加上修改的数值生成新的数值
保存修改的时候再把修改后的数据放回原来的内存地址保存

这里给大家做下名词解释
基地址或初始地址:代表了这段内存地址的开头 FM中球员属性在内存地址中存放的方式是以块状连续的方式存放的 找到了这个基地址 就相当于先定位了你要修改的是某个球员
内存偏移量:这是最容易能够找到的顶层 代表了每个基地址加上固定的偏移量后代表的各种属性 这里就像一个等差数列 基地址的地址是0 偏移量是2 那么2可能就代表了球员体重这个属性 4就代表了球员身高这个属性
修改的数值:代表了你要给球员加上的数值 加上之后会生成一个新的数值 比如4球员的身高是200 想修改成180 那么就要基地址0+2=2得到球员身高属性的内存地址 再加上修改的数值20(这里的数字仅仅是代号 实际上的内存地址应该是000X4000F之类的进制数) 最后修改后的属性生成的新内存数值再放回原来的内存地址中保存
读取、查找和保存:首先读取就是载入所有已经找到的内存地址 这里包括了所有球员的内存地址(从基地址到结束地址 里面保存了所有的球员属性的地址和对应的数值)
查找:从你搜索的球员中通过唯一确定的量(我猜想应该是Uid)与内存取出的所有内存地址中保存的对应数值进行匹配 匹配符合的话就可以确定该球员的内存基地址
保存:将修改后新生成的内存数据量放回原来的内存地址覆盖原来的 进行保存

可以看出 这里最重要的就是找到代表这个球员的内存基地址 问题来了
1、这个内存基地址应该怎么找到呢?用CE等内存工具截取的某个属性有很多个地址 其中包含了若干个虚拟地址和实际地址 就算找到了实际地址 我们应该怎么样朝前推算出哪个是代表该球员的内存基地址呢?
2、考虑到修改器工作效率的问题 在调用搜索函数的时候如果采用遍历搜索 将大大影响效率 有什么好办法直接调用指定的地址而不用遍历搜索?
以上问题 跪求数据结构高手帮忙解答 顺便看看我的想法对不对 感谢感谢!
发表于 2012-11-9 09:17 | 显示全部楼层
:ljh057)太深奥了,米有看懂。
发表于 2012-11-9 09:18 | 显示全部楼层
看不懂,帮忙顶起
发表于 2012-11-9 09:34 | 显示全部楼层
貌似看懂了
发表于 2012-11-9 09:43 | 显示全部楼层
核武占得内存量并不大 肯定没有遍历 应该会有指针进行标识分段之类的吧 游戏制作的时候应该就有明显的分区分块 不会把所有的信息无序存在内存中的 是不是可以先用最蠢的方法进行分区确定 然后再标记指针 为以后查找基地址提供便利?
不过应该不会这么麻烦……这前期需要的工作太大了……
发表于 2012-11-9 09:45 | 显示全部楼层
LZ大神的想法肯定是没问题的 效率问题可以再议嘛~
发表于 2012-11-9 09:46 | 显示全部楼层
搜索的效率是不是要看它原本数据存储的数据结构呢。。。二叉树、链表、hash表神马的。。
发表于 2012-11-9 10:07 | 显示全部楼层
为楼主的义举和开拓精神叫好!你们是我的英雄!!
发表于 2012-11-9 10:09 | 显示全部楼层
楼主大神是程序员吗。。。
 楼主| 发表于 2012-11-9 10:11 | 显示全部楼层
不是 土木工程的
发表于 2012-11-9 10:12 | 显示全部楼层
可以先看看原来的内存数据是不是有序,如果没有的话可以考虑在工具初始化载入存档数据时建立自己的索引表,ID与偏移地址的索引对,第一次初始化的时候比较慢,但是以后查询就会很快了!可以用Hash直接查询到指定ID
发表于 2012-11-9 10:14 | 显示全部楼层
如果有能帮上忙的地方可以再找我,哈哈,现在在做虚拟机的优化
发表于 2012-11-9 10:17 | 显示全部楼层
发现我全部轻松看懂{:em100:}
 楼主| 发表于 2012-11-9 10:17 | 显示全部楼层
好的 十分感谢
发表于 2012-11-9 10:18 | 显示全部楼层
:ljh033) 都是专业术语啊....看不懂啊.....我只能心里支持你们鸟.....你们累的时候...需要种子...记得找我:ljh054)
发表于 2012-11-9 10:32 | 显示全部楼层
学java我没做过这么高深的程序
发表于 2012-11-9 10:32 | 显示全部楼层
厉害厉害啊
发表于 2012-12-4 10:41 | 显示全部楼层
回复 10# lyf091

这。。。做预算的表示膜拜土木程序员。。。
发表于 2012-12-4 13:05 | 显示全部楼层
完全看不懂……遁了
发表于 2012-12-4 13:18 | 显示全部楼层
我只是帮顶,完全不懂。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|爆棚小组 PlayGM论坛

GMT+8, 2024-5-4 05:06 , Processed in 0.041329 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表