|
|
|
|
#5 |
|
Матёрый пользователь
|
Читаем из памяти с помощью функции:
ReadProcessMemory(hProcess, (LPCVOID)pSigAsp, &SigAsp, 4, NULL); где DWORD pSigAsp = 0x84af46; SigAsp - переменная типа int, в которую записывается прочитанное значение. hProcess получаем следующим образом: hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, dwProcessID); Для получения ProcessID по имени exe-файла используем следующие функции: Код:
bool GetProcessByExeName(void)
{
HANDLE hProcessSnap;
PROCESSENTRY32 pe32 = {0};
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
return false;
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap, &pe32))
{
do {
if(CompName(pe32.szExeFile, ExeName)) // Сравнение имени процесса с ExeName
{
dwProcessID = pe32.th32ProcessID; // Возврат ID найденного процесса
CloseHandle(hProcessSnap);
return true;
}
} while(Process32Next(hProcessSnap, &pe32));
}
CloseHandle(hProcessSnap);
return false;
}
Код:
// Сравнение именен процессов
bool CompName(char *Name, char *exeName)
{
while (*Name && *exeName)
{
if ( toupper(*Name) != toupper(*exeName) )
{
return false;
}
Name++;
exeName++;
}
return !(*Name || *exeName);
}
|
|
|
|
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
|
|
![]() Что это? |