我如何找到颜色的内存地址?(初学者)
好的,所以您正在尝试查找当前所选颜色的红色、绿色和蓝色值。我将向您展示如何使用 Cheat Engine 执行此操作,但您也可以将其转换为 x64dbg。
启动 Paint 并mspaint.exe在 CE(Cheat Engine) 中选择以进行调试。
将颜色设置为黑色或您喜欢的任何其他颜色,我将使用黑色作为我的初始起始颜色。查看黑色在 Paint 中的 RGB 值,在我们的例子中它是 0 0 0。
在这里,我将做一些假设。我将假设 Red、Green 和 Blue 值的大小各为 1 个字节,因为它们最多只能达到 255,这是 1 个字节值可以容纳的限制。我还假设这些值位于相同的地址,一个接一个。相当于
struct color {
char r, g, b;
}
总而言之,我们希望在内存中的某处找到 3 个连续的字节值。我们从 Paint 中知道它们的值,因此我们可以搜索它们。
所以,现在我们可以切换到 CE 并选择Groupedscan 以便我们可以搜索分组值。在我们的例子中,我们有一组 3 个值,每个值是 1 个字节。所以,这就是 CE 现在的样子。
然后我只需按下First Scan,CE 将在paint.exe 地址空间中找到任何内存,其中有3 个字节,其中有0,相当于
someAddress 0x00
someAddress+1 0x00
someAddress+2 0x00
CE 会找到很多出现这种字节模式的地址,因为三个零字节不是很独特。
我现在要做的是在 Paint 中选择另一种颜色并遵循相同的过程,除了最后我会按Next Scan而不是First Scan。这将做的是 CE 将查看它找到的所有带有三个零的地址,并查看它们中的任何一个是否更改为您的新分组值。其中的一个地址,现在将举行三个新的分组值,以及CE会帮您找到它,你会只留下了希望留下一个地址。如果你留下的不止几个,你可以用一种新的颜色重复这个过程。
如果地址颜色为绿色,则表示它是静态的,重新启动绘画时不会改变。一旦您获得了 RGB 存储位置的地址,您就可以对其进行更改或读取,或者对其进行任何您想做的事情。

