Memory 作弊引擎如何知道内存中有什么类型的值

Memory 作弊引擎如何知道内存中有什么类型的值,memory,memory-management,cheat-engine,Memory,Memory Management,Cheat Engine,在作弊引擎中,我们可以搜索不同类型的不同值(int、float、double、string)。该值可以有不同的长度(1、2、4、8、16字节等)。CE如何知道某个特定存储单元中的值是什么类型的,以及它的长度?在内存中,每个单元格中只有一组0和1。我们如何知道这些数据的含义?CE如何知道某个特定内存单元中的值是什么类型的,以及它有多长?:它使用操作系统api中的函数来提供这些信息 // Pseudocode of how CE might do it for (int address = 0x00

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

CE如何知道某个特定内存单元中的值是什么类型的,以及它有多长?:它使用操作系统api中的函数来提供这些信息

// 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;
}
例如,如果您在Windows上,您可以调用C++中的进程名、AddiSsSLead、DATAYSCALE函数,这将给您提供信息。
// 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;
}
//CE可能如何做的伪代码
for(int地址=0x0000;地址<0xFFFF;i+=sizeof(int){
int value=ReadProcessMemory('notepad.exe',地址,sizeof(int));
int*value\u地址=&value;
}
在内存中,每个单元格中只有一串0和1。我们如何知道这些数据的含义?:1ns和0s是二进制类型的数据,0到10是十进制,0到F是十六进制,您只需将二进制数据转换为不同类型的数据(0101=5),与将华氏温度转换为摄氏温度的方法相同,反之亦然