ReadProcessMemory更快

Gui*_*cia 1 c c++ memory winapi

我正在创建一个应用程序,它将使用鼠标/键盘(宏)模拟一个变量值的动作.

我在这里扫描了我制作的代码:

void ReadMemory(int value){
        DWORD primeiroAddress = 0x000000;
        DWORD finalAddress = 0xFFFFFF;
        DWORD address=0;
        std::ostringstream ss;
        int i=0;
        TListItem *ListIt;
        int valor;
        HANDLE phandle = OpenProcess(PROCESS_VM_READ,0,TargetPID);
        if(!phandle){
                ShowMessage("Não encoutrou o processo");
        }else{
                for(address=primeiroAddress;address<=finalAddress;address+=sizeof(valor)){
                        ReadProcessMemory(phandle,(void*)address,&valor,sizeof(valor),0);
                        if(valor==value){
                                i++;
                                ss << std::hex << address;
                                Form1->Label5->Caption=i;
                                ListIt = Form1->ListView1->Items->Add();
                                ListIt->Caption = AnsiString(ss.str().c_str()).UpperCase();
                                ListIt->SubItems->Add(IntToStr(valor));
                                ss.str(std::string());
                        }
                }
        }
}
Run Code Online (Sandbox Code Playgroud)

我想知道我能做些什么才能让扫描速度更快

zmb*_*mbq 5

int一次只读一个.而是ReadProcessMemory一次调用,一次读取16MB,然后在自己的进程中扫描内存.它会快得多.

  • C显然不是你的一杯茶.您是否考虑过切换到像C#这样的托管语言,而是做一些互操作? (3认同)