Advertisement
CybEl

How to add offsets C++

Apr 12th, 2020
5,667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <Windows.h>
  4. #include <TlHelp32.h>
  5.  
  6. DWORD GetPID(const char* ProcessName) {
  7. PROCESSENTRY32 processInfo;
  8. processInfo.dwSize = sizeof(processInfo);
  9.  
  10.  
  11. HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
  12. if (processesSnapshot == INVALID_HANDLE_VALUE)
  13. return 0;
  14.  
  15. Process32First(processesSnapshot, &processInfo);
  16. if (!strcmp(processInfo.szExeFile, ProcessName))
  17. {
  18. CloseHandle(processesSnapshot);
  19. }
  20.  
  21. while (Process32Next(processesSnapshot, &processInfo))
  22. {
  23. if (!strcmp(processInfo.szExeFile, ProcessName))
  24. {
  25. CloseHandle(processesSnapshot);
  26. }
  27. }
  28. CloseHandle(processesSnapshot);
  29. return processInfo.th32ProcessID;
  30. }
  31.  
  32. MODULEENTRY32 GetModule(const char* moduleName, unsigned long ProcessID)
  33. {
  34. MODULEENTRY32 modEntry = { 0 };
  35.  
  36. HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, ProcessID);
  37.  
  38. if (hSnapshot != INVALID_HANDLE_VALUE)
  39. {
  40. MODULEENTRY32 curr = { 0 };
  41.  
  42. curr.dwSize = sizeof(MODULEENTRY32);
  43. if (Module32First(hSnapshot, &curr))
  44. {
  45. do
  46. {
  47. if (!strcmp(curr.szModule, moduleName))
  48. {
  49. modEntry = curr;
  50. break;
  51. }
  52. } while (Module32Next(hSnapshot, &curr));
  53. }
  54. CloseHandle(hSnapshot);
  55. }
  56. return modEntry;
  57. }
  58.  
  59. int main()
  60. {
  61. std::cout << "Hello World!\n";
  62. unsigned long long pid = GetPID("ac_client.exe");
  63. MODULEENTRY32 module = GetModule("ac_client.exe", pid);
  64. HANDLE phandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
  65.  
  66. unsigned long long result;
  67. int ammodesiredvalue = 999999;
  68. ReadProcessMemory(phandle, (void*)((unsigned long long)module.modBaseAddr + 0x0010B1E0), &result, sizeof(result), 0);
  69. ReadProcessMemory(phandle, (void*)((unsigned long long)result + 0x54), &result, sizeof(result), 0);
  70. ReadProcessMemory(phandle, (void*)((unsigned long long)result + 0x14), &result, sizeof(result), 0);
  71. //ReadProcessMemory(phandle, (void*)((unsigned long long)result + 0x14), &result, sizeof(result), 0);
  72. WriteProcessMemory(phandle, (void*)((unsigned long long)result + 0x14), &ammodesiredvalue, sizeof(ammodesiredvalue), 0);
  73. std::cout << "Your ammo value is " << result << std::endl;
  74.  
  75. system("pause");
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement