Cheat Engine 如何知道内存中有什么样的值

How Cheat Engine know what kind of value is in the memory

在作弊引擎中,我们可以搜索不同类型(int、float、double、string)的不同值。该值可以有不同的长度(1、2、4、8、16 字节等)。 CE 如何知道在某个特定的存储单元中开始什么样的值以及它有多长?在记忆中,我们在每个单元格中只有一堆零和一。我们如何知道这些数据的含义?

CE 如何知道某个特定存储单元中开始的值类型及其长度?: 它使用操作系统中的函数 api该信息。

例如,如果你在 Windows,你可以在 c++ 中调用 ReadProcessMemory(process_name, address_location, data_size) 函数,这将给出你那个信息。

// Pseudocode of how CE might do it
for (int address = 0x0000; address < 0xFFFF; i += sizeof(int) {
  int value = ReadProcessMemory('notepad.exe', address, sizeof(int));
  int* value_address = &value;
}

在记忆中,我们在每个单元格中只有一堆零和一。怎么才能知道这个数据的含义呢?:1ns和0s是二进制类型的数据,0到10是十进制,0到F是十六进制,你把二进制数据转换成不同类型的数据就可以了( 0101 = 5),与将华氏度转换为摄氏度的方式相同,反之亦然。