〓〓〓〓〓〓〓〓〓〓关于MMD的一些用法(指针搜索动态内存的基地址)〓〓〓〓〓〓〓〓〓〓

社区服务
高级搜索
猴岛论坛DNF地下城与勇士〓〓〓〓〓〓〓〓〓〓关于MMD的一些用法(指针搜索动态内存的基地址)〓〓〓〓〓〓〓〓〓〓
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
4个回复

〓〓〓〓〓〓〓〓〓〓关于MMD的一些用法(指针搜索动态内存的基地址)〓〓〓〓〓〓〓〓〓〓

楼层直达
最后一块骨头

ZxID:2092456

等级: *
举报 只看楼主 使用道具 楼主   发表于: 2008-11-02 0
不知道大家有没有注意到那个指针搜索
按照官方的解释
那DD就是用来搜索动态地址的基地址的
具体使用比较复杂
MS,作者自己还设计了一套找基地址定律。。。。
什么10000前,乱七八糟的
正在翻译中,请大家不要着急
过几天翻译完了我会放出MMD中文使用说明的

原创首发17WYOU,作者ZBDEHS
转载请标注,谢谢
Pointer Searches allow you to find pointers to dynamic game objects, or objects that move in memory. This is often called dynamic memory allocation, or DMA
这是论坛的原话
意思是指针搜索允许你找到动态游戏的物品,这些物品代码可能会在内存中移动,这种技术通常被称呼为动态内存分配,或者说叫DMA

基地址    血      蓝
假设血的动态地址你找到了,比如说是0x02BE2C04
作者说如果把血做为第一个搜索开头的话,那人物的状态应该可以说是一个结构体,而基地址应该在血地址-10000到血的位置(注意,是16进制的),也就是说基地址应该在0x02BD2C04和0x02BE2C04之间。这是他研究无数游戏的一个经验总结。
然后我们可以在搜索的地方搜索指针,选择范围,从2BD0000到2BE2C04
搜索的时候记得选中搜索固定地址

搜索完毕后,应该有不少返回地址。
怎么办呢?
作者又说啦 人物结构体应该是比较小的,所以基地址应该和血的地址比较靠近
使用寻找地址工具(界面上的Search/View Results)

we will see a column entitled Distance from 02BE2C04. This is how we can tell how far away pointers are from our Health (address 0x02BE2C04).
Negative numbers indicate that the pointer is pointing to a location lower than 2BE2C04. A distance of 0 indicates that the pointer is pointing directly at 2BE2C04. Positive numbers should never be in the list, because pointers to our structure will never point higher than the address of Health (2BE2C04).
The dockable Found Addresses list shows this offset.
For our example, we will assume there is a pointer at address 0x0045EFC0 whose distance is -0xC from 2BE2C04 (our Health). This happens to be very close, though the average distance can be around -0x200 to -0x500, and in some cases farther. If you find a pointer that has a distance between -0x500 and 0x0, there is a very high chance it is the correct pointer to your structure.
Double-click the pointer in the Found Addresses list to add it to the main list. This is the result:

这段比较费解
我们将看到距离02BE2C04不远处有个标签。这就是我们能描述指针离开我们的血的地址0x02BE2C04的一种方式。
负数说明指针指向的地址比2BE2C04低。距离为0表示这个指针指向2BE2C04。正数应该不会显示在列表里,因为我们的指针指向的结构不会高于血的地址。这DOCKABLE找到的地址显示了它的偏移。
在我们的例子里,我们假设有一个指针的地址为0x0045EFC0 ,他距离血的地址的距离为-0xc。
这就显示了距离相当近,平均的距离应该是在-0X200到-0X500之间。当然有时候会更远点。
如果你找到了一个指针距离(血的地址)为-0X500到0X0,这就有很大的可能表示这个指针就是我们要找的指向结构体的指针。
在找寻地址列表里双击这个指针加入主列表,这就是结果。



恩,大概意思就是这样了

最近一直在看相关资料,准备把相关资料都翻译了在来研究。做个先驱者也不错

希望大家在这个基础上研究下找动态基地址的方法。

按照作者的理论,这个应该比用CE找基地址快速的多。当然CE那种找基地址的方法MMD也能使用,一样的原理。不过CE出的早,大家可以参考参考。

另外说下,有人问我为什么网吧里无法打开DNF,我告诉你们,这是因为你们的权限不够,机器权限不够,MMD需要ADMINISTRATORS组权限
也就是管理员权限,如果你们只是USERS组权限就不用尝试了,很正常的情况
毕竟MMD也属于系统级的调试工具了

哦,在给点作者对于使用指针搜索的建议:
All fields must be entered in hexadecimal form.

The Points To field must follow the rules of a valid pointer, which means it must be divisible by 4 and must be a readable address in the target process.

Range searches always go from the lower number to the higher number, regardless of the order in which you enter them.

The search itself always starts at the lower address and goes to the higher address, regardless of the order in which they are entered.

All search data entered into the dialog is saved if you click OK and perform a search, which allows you to repeat searches without having to fill out every box again.

Only if you perform a search will the previous results be lost.

必须使用16进制表单
指向位置必须符合有效指针的规则,也就是他必须是在目标进程里能被4整除并且是可读的地址
搜索范围经常是从低地址到高地址,不论你怎么输入,他总是如此。
所有的输入的搜索数据当你按好的按纽的时候会自动保存并且加入搜索,允许你恢复上次搜索,不用从来。
只有你执行了一个搜索后,前一次的搜索才会丢失。

翻译真累,希望对大家有点帮助

没基础的建议找点基础资料来看看,外边很多的

就这样吧
最后一块骨头

ZxID:2092456

等级: *
举报 只看该作者 沙发   发表于: 2008-11-02 0
国际惯例  SF自己!
最后一块骨头

ZxID:2092456

等级: *
举报 只看该作者 板凳   发表于: 2008-11-02 0
来人啊
最后一块骨头

ZxID:2092456

等级: *
举报 只看该作者 地板   发表于: 2008-11-09 0
引用
引用第1楼最后一块骨头于2008-11-02 14:55发表的  :
国际惯例  SF自己!
yelang_16

ZxID:1527985

等级: 少校
举报 只看该作者 4楼  发表于: 2008-11-13 0
我顶你
« 返回列表
发帖 回复