Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Made by SwallowIt at Cheat Engine Forums
- */
- #include <windows.h>
- #include <Psapi.h>
- #include <tchar.h>
- #pragma comment(lib, "Psapi")
- struct jProc
- {
- HANDLE hProcess;
- DWORD PID;
- };
- struct jPointer
- {
- DWORD Address;
- DWORD Offset;
- };
- jProc findProcess(TCHAR* processName)
- {
- DWORD i;
- jProc r = {0,0};
- DWORD ProcessesIDs[50], cbNeeded, cProcesses = NULL;
- TCHAR szProcessName[50] = TEXT("<unknown>");
- if(!EnumProcesses( ProcessesIDs, sizeof(ProcessesIDs), &cbNeeded ))
- {
- r.hProcess = NULL;
- r.PID = NULL;
- return r;
- }
- cProcesses = cbNeeded / sizeof(DWORD);
- for ( i = 0; i < cProcesses; i++ )
- {
- r.hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, ProcessesIDs[i] );
- if (NULL != r.hProcess )
- {
- GetModuleBaseName( r.hProcess, NULL, szProcessName, sizeof(szProcessName)/sizeof(TCHAR) );
- }
- if (strcmp(szProcessName,processName) == 0)
- {
- r.PID = ProcessesIDs[i];
- return r;
- }
- CloseHandle( r.hProcess );
- r.hProcess = NULL;
- }
- return r;
- }
- /* Process, Address to read, # of bytes to read */
- DWORD readMemory(jProc Process, DWORD Address, DWORD NBR)
- {
- DWORD Buffer = 0;
- ReadProcessMemory(Process.hProcess,(LPCVOID)Address,&Buffer,NBR,0);
- return Buffer;
- }
- /* Process, Address to write, Buffer to write */
- boolean writeMemory(jProc Process, DWORD Address, LPVOID Buffer)
- {
- return WriteProcessMemory(Process.hProcess,(LPVOID)Address, &Buffer, sizeof(Buffer),0);
- }
- /* Process, Pointer to address, # of bytes to read */
- DWORD readPointer(jProc Process, jPointer Pointer, DWORD NBR)
- {
- DWORD Pointed = 0;
- Pointed = readMemory(Process,Pointer.Address,NBR) + Pointer.Offset;
- return readMemory(Process,Pointed,NBR);
- }
- /* Process, Pointer to address, Buffer to write */
- boolean writePointer(jProc Process, jPointer Pointer, LPVOID Buffer)
- {
- DWORD Pointed = readMemory(Process,Pointer.Address,4) + Pointer.Offset;
- return writeMemory(Process,Pointed,Buffer);
- }
Advertisement
Add Comment
Please, Sign In to add comment