Advertisement
dcomicboy

yea

Sep 9th, 2013
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.05 KB | None | 0 0
  1. // calculate vehiclelist location
  2. LPCVOID lpBaseAddress;
  3. LONG vehicleListAddress = 0;
  4. if (steamDetected)
  5. {
  6. lpBaseAddress = (void*) 0x010F7A2C;
  7. }
  8. else
  9. {
  10. lpBaseAddress = (void*) 0x0110212C;
  11. }
  12.  
  13. while (true)
  14. {
  15. HWND hWnd = GetForegroundWindow();
  16. DWORD dwProcessId;
  17. DWORD dwThreadId = GetWindowThreadProcessId(hWnd, &dwProcessId);
  18. if (dwProcessId)
  19. {
  20. SIZE_T nSize = 0x04;
  21. CHAR lpBuffer[0x04];
  22. SIZE_T lpNumberOfBytesRead;
  23. if (ReadProcessMemoryById(dwProcessId, lpBaseAddress, &lpBuffer, nSize, &lpNumberOfBytesRead))
  24. {
  25. long baseAddress = *reinterpret_cast<long*>(lpBuffer);
  26. #ifdef ENABLE_VP_LOGGING
  27. Log("dllmain: baseAddress -> ");
  28. char bufferZ[256] = {0};
  29. _ltoa_s(baseAddress, bufferZ, 10);
  30. Log(bufferZ);
  31. Log("\r\n");
  32. #endif
  33. if (baseAddress > 0)
  34. {
  35. baseAddress += 0x42684;
  36. #ifdef ENABLE_VP_LOGGING
  37. Log("dllmain: baseAddress -> ");
  38. char bufferZb[256] = {0};
  39. _ltoa_s(baseAddress, bufferZb, 10);
  40. Log(bufferZb);
  41. Log("\r\n");
  42. #endif
  43. LPCVOID lpBaseAddress2 = (void*) baseAddress;
  44. SIZE_T nSize2 = 0x04;
  45. CHAR lpBuffer2[0x04];
  46. SIZE_T lpNumberOfBytesRead2;
  47. if (ReadProcessMemoryById(dwProcessId, lpBaseAddress2, &lpBuffer2, nSize2, &lpNumberOfBytesRead2))
  48. {
  49. long baseAddress2 = *reinterpret_cast<long*>(lpBuffer2);
  50. #ifdef ENABLE_VP_LOGGING
  51. Log("dllmain: baseAddress2 -> ");
  52. char bufferZ2[256] = {0};
  53. _ltoa_s(baseAddress2, bufferZ2, 10);
  54. Log(bufferZ2);
  55. Log("\r\n");
  56. #endif
  57. if (baseAddress2 > 0)
  58. {
  59. LPCVOID lpBaseAddress3 = (void*) baseAddress2;
  60. SIZE_T nSize3 = 0x04;
  61. CHAR lpBuffer3[0x04];
  62. SIZE_T lpNumberOfBytesRead3;
  63. if (ReadProcessMemoryById(dwProcessId, lpBaseAddress3, &lpBuffer3, nSize3, &lpNumberOfBytesRead3))
  64. {
  65. long baseAddress3 = *reinterpret_cast<long*>(lpBuffer3);
  66. #ifdef ENABLE_VP_LOGGING
  67. Log("dllmain: baseAddress3 -> ");
  68. char bufferZ3[256] = {0};
  69. _ltoa_s(baseAddress3, bufferZ3, 10);
  70. Log(bufferZ3);
  71. Log("\r\n");
  72. #endif
  73. if (baseAddress3 > 0 && (baseAddress3 % 0x10000) == 0)
  74. {
  75. vehicleListAddress = baseAddress3;
  76. break;
  77. }
  78. }
  79. else
  80. {
  81. #ifdef ENABLE_VP_LOGGING
  82. Log("dllmain: Failed to read process memory for baseAddress3\r\n");
  83. #endif
  84. }
  85. }
  86. }
  87. else
  88. {
  89. #ifdef ENABLE_VP_LOGGING
  90. Log("dllmain: Failed to read process memory for baseAddress2\r\n");
  91. #endif
  92. }
  93. }
  94. }
  95. else
  96. {
  97. #ifdef ENABLE_VP_LOGGING
  98. Log("dllmain: Failed to read process memory for baseAddress\r\n");
  99. #endif
  100. }
  101. }
  102. Sleep(5000);
  103. }
  104.  
  105. #ifdef ENABLE_VP_LOGGING
  106. Log("dllmain: vehicleListAddress -> ");
  107. char bufferR[256] = {0};
  108. _ltoa_s((long) vehicleListAddress, bufferR, 10);
  109. Log(bufferR);
  110. Log("\r\n");
  111. #endif
  112.  
  113. // check vehiclelist+0x08, if non-zero, proceed
  114. while (true)
  115. {
  116. HWND hWnd = GetForegroundWindow();
  117. DWORD dwProcessId;
  118. DWORD dwThreadId = GetWindowThreadProcessId(hWnd, &dwProcessId);
  119. if (dwProcessId)
  120. {
  121. long vpBaseAddress = vehicleListAddress + 0x08;
  122. LPCVOID lpBaseAddress = (void*) vpBaseAddress;
  123. SIZE_T nSize = 0x04;
  124. CHAR lpBuffer[0x04];
  125. SIZE_T lpNumberOfBytesRead;
  126. if (ReadProcessMemoryById(dwProcessId, lpBaseAddress, &lpBuffer, nSize, &lpNumberOfBytesRead))
  127. {
  128. long vpBaseAddress2 = *reinterpret_cast<long*>(lpBuffer);
  129. #ifdef ENABLE_VP_LOGGING
  130. Log("dllmain: vpBaseAddress2 -> ");
  131. char bufferZ2[256] = {0};
  132. _ltoa_s(vpBaseAddress2, bufferZ2, 10);
  133. Log(bufferZ2);
  134. Log("\r\n");
  135. #endif
  136. if (vpBaseAddress2 > 0)
  137. {
  138. // set up global text pointers for vehicle name, traffic status and offroad status
  139. gl_vpVehicleNameAddress = vpBaseAddress2;
  140. gl_vpSavedName01Address = vpBaseAddress2 + 0x80;
  141. gl_vpSavedName02Address = vpBaseAddress2 + 0x80 + 0x80;
  142. gl_vpTrafficNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10;
  143. gl_vpOffroadNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10;
  144. gl_vpColorNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10;
  145. gl_vpColorTypeNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20;
  146. gl_vpBoostTypeNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40;
  147. gl_vpSavedColorNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40;
  148. gl_vpBoostLengthNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50;
  149. gl_vpBoostConsumptionNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30;
  150. gl_vpToggleAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20;
  151. gl_vpPreviousAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10;
  152. gl_vpNextAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10;
  153. gl_vpUserFlagsAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10 + 0x10 + 0x10;
  154. gl_vpUserCountAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10 + 0x10 + 0x10 + 0x0C;
  155. gl_vpHideFlagsAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10 + 0x10 + 0x10 + 0x0C + 0x04 + 0x0C;
  156. break;
  157. }
  158. }
  159. else
  160. {
  161. #ifdef ENABLE_VP_LOGGING
  162. Log("dllmain: Failed to read process memory for vpBaseAddress2\r\n");
  163. #endif
  164. }
  165. }
  166. Sleep(1000);
  167. }
  168.  
  169. #ifdef ENABLE_VP_LOGGING
  170. Log("dllmain: vehicleNameAddress -> ");
  171. char bufferA[256] = {0};
  172. _ltoa_s(gl_vpVehicleNameAddress, bufferA, 10);
  173. Log(bufferA);
  174. Log("\r\n");
  175. Log("dllmain: savedName01Address -> ");
  176. char bufferA2[256] = {0};
  177. _ltoa_s(gl_vpSavedName01Address, bufferA2, 10);
  178. Log(bufferA2);
  179. Log("\r\n");
  180. Log("dllmain: savedName02Address -> ");
  181. char bufferA3[256] = {0};
  182. _ltoa_s(gl_vpSavedName02Address, bufferA3, 10);
  183. Log(bufferA3);
  184. Log("\r\n");
  185. Log("dllmain: trafficNameAddress -> ");
  186. char bufferB[256] = {0};
  187. _ltoa_s(gl_vpTrafficNameAddress, bufferB, 10);
  188. Log(bufferB);
  189. Log("\r\n");
  190. Log("dllmain: offroadNameAddress -> ");
  191. char bufferC[256] = {0};
  192. _ltoa_s(gl_vpOffroadNameAddress, bufferC, 10);
  193. Log(bufferC);
  194. Log("\r\n");
  195. Log("dllmain: colorNameAddress -> ");
  196. char bufferD[256] = {0};
  197. _ltoa_s(gl_vpColorNameAddress, bufferD, 10);
  198. Log(bufferD);
  199. Log("\r\n");
  200. Log("dllmain: colorTypeNameAddress -> ");
  201. char bufferD2[256] = {0};
  202. _ltoa_s(gl_vpColorTypeNameAddress, bufferD2, 10);
  203. Log(bufferD2);
  204. Log("\r\n");
  205. Log("dllmain: boostTypeNameAddress -> ");
  206. char bufferE[256] = {0};
  207. _ltoa_s(gl_vpBoostTypeNameAddress, bufferE, 10);
  208. Log(bufferE);
  209. Log("\r\n");
  210. Log("dllmain: savedColorNameAddress -> ");
  211. char bufferF[256] = {0};
  212. _ltoa_s(gl_vpSavedColorNameAddress, bufferF, 10);
  213. Log(bufferF);
  214. Log("\r\n");
  215. Log("dllmain: boostLengthNameAddress -> ");
  216. char bufferG[256] = {0};
  217. _ltoa_s(gl_vpBoostLengthNameAddress, bufferG, 10);
  218. Log(bufferG);
  219. Log("\r\n");
  220. Log("dllmain: boostConsumptionNameAddress -> ");
  221. char bufferH[256] = {0};
  222. _ltoa_s(gl_vpBoostConsumptionNameAddress, bufferH, 10);
  223. Log(bufferH);
  224. Log("\r\n");
  225. Log("dllmain: toggleAddress -> ");
  226. char bufferI[256] = {0};
  227. _ltoa_s(gl_vpToggleAddress, bufferI, 10);
  228. Log(bufferI);
  229. Log("\r\n");
  230. Log("dllmain: previousAddress -> ");
  231. char bufferJ[256] = {0};
  232. _ltoa_s(gl_vpPreviousAddress, bufferJ, 10);
  233. Log(bufferJ);
  234. Log("\r\n");
  235. Log("dllmain: nextAddress -> ");
  236. char bufferK[256] = {0};
  237. _ltoa_s(gl_vpNextAddress, bufferK, 10);
  238. Log(bufferK);
  239. Log("\r\n");
  240. #endif
  241.  
  242. // call advance on the state machine
  243. gl_vpDisplay.process_event(EvNext());
  244. gl_kbEnable = true;
  245.  
  246. #ifdef ENABLE_VP_LOGGING
  247. Log("dllmain: vpThread completed successfully.\r\n");
  248. #endif
  249. return 0;
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement