Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // calculate vehiclelist location
- LPCVOID lpBaseAddress;
- LONG vehicleListAddress = 0;
- if (steamDetected)
- {
- lpBaseAddress = (void*) 0x010F7A2C;
- }
- else
- {
- lpBaseAddress = (void*) 0x0110212C;
- }
- while (true)
- {
- HWND hWnd = GetForegroundWindow();
- DWORD dwProcessId;
- DWORD dwThreadId = GetWindowThreadProcessId(hWnd, &dwProcessId);
- if (dwProcessId)
- {
- SIZE_T nSize = 0x04;
- CHAR lpBuffer[0x04];
- SIZE_T lpNumberOfBytesRead;
- if (ReadProcessMemoryById(dwProcessId, lpBaseAddress, &lpBuffer, nSize, &lpNumberOfBytesRead))
- {
- long baseAddress = *reinterpret_cast<long*>(lpBuffer);
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: baseAddress -> ");
- char bufferZ[256] = {0};
- _ltoa_s(baseAddress, bufferZ, 10);
- Log(bufferZ);
- Log("\r\n");
- #endif
- if (baseAddress > 0)
- {
- baseAddress += 0x42684;
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: baseAddress -> ");
- char bufferZb[256] = {0};
- _ltoa_s(baseAddress, bufferZb, 10);
- Log(bufferZb);
- Log("\r\n");
- #endif
- LPCVOID lpBaseAddress2 = (void*) baseAddress;
- SIZE_T nSize2 = 0x04;
- CHAR lpBuffer2[0x04];
- SIZE_T lpNumberOfBytesRead2;
- if (ReadProcessMemoryById(dwProcessId, lpBaseAddress2, &lpBuffer2, nSize2, &lpNumberOfBytesRead2))
- {
- long baseAddress2 = *reinterpret_cast<long*>(lpBuffer2);
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: baseAddress2 -> ");
- char bufferZ2[256] = {0};
- _ltoa_s(baseAddress2, bufferZ2, 10);
- Log(bufferZ2);
- Log("\r\n");
- #endif
- if (baseAddress2 > 0)
- {
- LPCVOID lpBaseAddress3 = (void*) baseAddress2;
- SIZE_T nSize3 = 0x04;
- CHAR lpBuffer3[0x04];
- SIZE_T lpNumberOfBytesRead3;
- if (ReadProcessMemoryById(dwProcessId, lpBaseAddress3, &lpBuffer3, nSize3, &lpNumberOfBytesRead3))
- {
- long baseAddress3 = *reinterpret_cast<long*>(lpBuffer3);
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: baseAddress3 -> ");
- char bufferZ3[256] = {0};
- _ltoa_s(baseAddress3, bufferZ3, 10);
- Log(bufferZ3);
- Log("\r\n");
- #endif
- if (baseAddress3 > 0 && (baseAddress3 % 0x10000) == 0)
- {
- vehicleListAddress = baseAddress3;
- break;
- }
- }
- else
- {
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: Failed to read process memory for baseAddress3\r\n");
- #endif
- }
- }
- }
- else
- {
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: Failed to read process memory for baseAddress2\r\n");
- #endif
- }
- }
- }
- else
- {
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: Failed to read process memory for baseAddress\r\n");
- #endif
- }
- }
- Sleep(5000);
- }
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: vehicleListAddress -> ");
- char bufferR[256] = {0};
- _ltoa_s((long) vehicleListAddress, bufferR, 10);
- Log(bufferR);
- Log("\r\n");
- #endif
- // check vehiclelist+0x08, if non-zero, proceed
- while (true)
- {
- HWND hWnd = GetForegroundWindow();
- DWORD dwProcessId;
- DWORD dwThreadId = GetWindowThreadProcessId(hWnd, &dwProcessId);
- if (dwProcessId)
- {
- long vpBaseAddress = vehicleListAddress + 0x08;
- LPCVOID lpBaseAddress = (void*) vpBaseAddress;
- SIZE_T nSize = 0x04;
- CHAR lpBuffer[0x04];
- SIZE_T lpNumberOfBytesRead;
- if (ReadProcessMemoryById(dwProcessId, lpBaseAddress, &lpBuffer, nSize, &lpNumberOfBytesRead))
- {
- long vpBaseAddress2 = *reinterpret_cast<long*>(lpBuffer);
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: vpBaseAddress2 -> ");
- char bufferZ2[256] = {0};
- _ltoa_s(vpBaseAddress2, bufferZ2, 10);
- Log(bufferZ2);
- Log("\r\n");
- #endif
- if (vpBaseAddress2 > 0)
- {
- // set up global text pointers for vehicle name, traffic status and offroad status
- gl_vpVehicleNameAddress = vpBaseAddress2;
- gl_vpSavedName01Address = vpBaseAddress2 + 0x80;
- gl_vpSavedName02Address = vpBaseAddress2 + 0x80 + 0x80;
- gl_vpTrafficNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10;
- gl_vpOffroadNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10;
- gl_vpColorNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10;
- gl_vpColorTypeNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20;
- gl_vpBoostTypeNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40;
- gl_vpSavedColorNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40;
- gl_vpBoostLengthNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50;
- gl_vpBoostConsumptionNameAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30;
- gl_vpToggleAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20;
- gl_vpPreviousAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10;
- gl_vpNextAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10;
- gl_vpUserFlagsAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10 + 0x10 + 0x10;
- gl_vpUserCountAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10 + 0x10 + 0x10 + 0x0C;
- gl_vpHideFlagsAddress = vpBaseAddress2 + 0x80 + 0x80 + 0x80 + 0x10 + 0x20 + 0x10 + 0x20 + 0x10 + 0x20 + 0x40 + 0x40 + 0x50 + 0x30 + 0x20 + 0x10 + 0x10 + 0x10 + 0x10 + 0x0C + 0x04 + 0x0C;
- break;
- }
- }
- else
- {
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: Failed to read process memory for vpBaseAddress2\r\n");
- #endif
- }
- }
- Sleep(1000);
- }
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: vehicleNameAddress -> ");
- char bufferA[256] = {0};
- _ltoa_s(gl_vpVehicleNameAddress, bufferA, 10);
- Log(bufferA);
- Log("\r\n");
- Log("dllmain: savedName01Address -> ");
- char bufferA2[256] = {0};
- _ltoa_s(gl_vpSavedName01Address, bufferA2, 10);
- Log(bufferA2);
- Log("\r\n");
- Log("dllmain: savedName02Address -> ");
- char bufferA3[256] = {0};
- _ltoa_s(gl_vpSavedName02Address, bufferA3, 10);
- Log(bufferA3);
- Log("\r\n");
- Log("dllmain: trafficNameAddress -> ");
- char bufferB[256] = {0};
- _ltoa_s(gl_vpTrafficNameAddress, bufferB, 10);
- Log(bufferB);
- Log("\r\n");
- Log("dllmain: offroadNameAddress -> ");
- char bufferC[256] = {0};
- _ltoa_s(gl_vpOffroadNameAddress, bufferC, 10);
- Log(bufferC);
- Log("\r\n");
- Log("dllmain: colorNameAddress -> ");
- char bufferD[256] = {0};
- _ltoa_s(gl_vpColorNameAddress, bufferD, 10);
- Log(bufferD);
- Log("\r\n");
- Log("dllmain: colorTypeNameAddress -> ");
- char bufferD2[256] = {0};
- _ltoa_s(gl_vpColorTypeNameAddress, bufferD2, 10);
- Log(bufferD2);
- Log("\r\n");
- Log("dllmain: boostTypeNameAddress -> ");
- char bufferE[256] = {0};
- _ltoa_s(gl_vpBoostTypeNameAddress, bufferE, 10);
- Log(bufferE);
- Log("\r\n");
- Log("dllmain: savedColorNameAddress -> ");
- char bufferF[256] = {0};
- _ltoa_s(gl_vpSavedColorNameAddress, bufferF, 10);
- Log(bufferF);
- Log("\r\n");
- Log("dllmain: boostLengthNameAddress -> ");
- char bufferG[256] = {0};
- _ltoa_s(gl_vpBoostLengthNameAddress, bufferG, 10);
- Log(bufferG);
- Log("\r\n");
- Log("dllmain: boostConsumptionNameAddress -> ");
- char bufferH[256] = {0};
- _ltoa_s(gl_vpBoostConsumptionNameAddress, bufferH, 10);
- Log(bufferH);
- Log("\r\n");
- Log("dllmain: toggleAddress -> ");
- char bufferI[256] = {0};
- _ltoa_s(gl_vpToggleAddress, bufferI, 10);
- Log(bufferI);
- Log("\r\n");
- Log("dllmain: previousAddress -> ");
- char bufferJ[256] = {0};
- _ltoa_s(gl_vpPreviousAddress, bufferJ, 10);
- Log(bufferJ);
- Log("\r\n");
- Log("dllmain: nextAddress -> ");
- char bufferK[256] = {0};
- _ltoa_s(gl_vpNextAddress, bufferK, 10);
- Log(bufferK);
- Log("\r\n");
- #endif
- // call advance on the state machine
- gl_vpDisplay.process_event(EvNext());
- gl_kbEnable = true;
- #ifdef ENABLE_VP_LOGGING
- Log("dllmain: vpThread completed successfully.\r\n");
- #endif
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement