|
|
如果自己会Bypass的 可以自己过BE
过BE思路如下
- int PrintModules(DWORD processID)
- {
- HMODULE hMods[512];
- HANDLE hProcess;
- DWORD cbNeeded;
- unsigned int i;
- DWORD64 base;
-
- //printf("\nProcess ID: %u\n", processID);
-
- hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
- PROCESS_ALL_ACCESS,
- FALSE, processID);
- if (NULL == hProcess)
- return 0;
-
- if (EnumProcessModulesEx(hProcess, hMods, sizeof(hMods), &cbNeeded, LIST_MODULES_ALL))
- {
- char szModName[MAX_PATH] = { NULL };
- for (i = 0; i < (cbNeeded / sizeof(HMODULE)); i++)
- {
- ZeroMemory(szModName, sizeof(szModName));
- if (GetModuleBaseNameA(hProcess, hMods[i], szModName, MAX_PATH))
- {
- if (!strcmp(szModName, "TslGame.exe"))
- {
- std::cout << szModName << std::endl;
-
- base = (DWORD64)hMods[i];
- cout << "DWORD64: ";
- cout << base << endl;
- cout << "" << endl;
- break;
- }
- }
- }
- }
- CloseHandle(hProcess);
- return 1;
- }
-
- int main(int argc, char* argv[])
- {
- cout << uppercase << hex;
- DWORD Processes[1024];
- DWORD cbNeeded;
- DWORD cProcesses;
- unsigned int i;
- if (!EnumProcesses(Processes, sizeof(Processes), &cbNeeded))
- return 1;
- cProcesses = cbNeeded / sizeof(DWORD);
- for (i = 0; i < cProcesses; i++)
- {
- PrintModules(Processes[i]);
- }
- cin.get();
- return 0;
- }
复制代码
|
|