Found the module and offsets in the application using ARTMoney 
Trying to get this value in myself:
hWnd = FindWindowA(NULL, "Clamp Champ"); GetWindowThreadProcessId(hWnd,&pid); // запоминаем номер в переменную pid if (process == NULL && pid != 0) process = OpenProcess(PROCESS_VM_READ, false, pid); unsigned int val = NULL; unsigned int val1 = NULL; unsigned int val2 = NULL; unsigned int val3 = NULL; ReadProcessMemory(process, (LPCVOID)(GetModuleBase("server.dll", pid )+0x215E950), &val1, 4, NULL); val1 = val1+0x2F8; ReadProcessMemory(process, (LPVOID)(val1), &val2, 4, NULL); val2 = val2+0x18; ReadProcessMemory(process, (LPVOID)(val2), &val3, 4, NULL); this->label1->Text = Convert::ToString(val3); That's how I get the base address
DWORD GetModuleBase(LPSTR lpModuleName, DWORD dwProcessId) { MODULEENTRY32 lpModuleEntry = {0}; HANDLE hSnapShot = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwProcessId ); if(!hSnapShot) return NULL; lpModuleEntry.dwSize = sizeof(lpModuleEntry); BOOL bModule = Module32First( hSnapShot, &lpModuleEntry ); while(bModule) { if(!strcmp( lpModuleEntry.szModule, lpModuleName ) ) { CloseHandle( hSnapShot ); return (DWORD)lpModuleEntry.modBaseAddr; } bModule = Module32Next( hSnapShot, &lpModuleEntry ); } CloseHandle( hSnapShot ); return NULL; } Gives out different values from artmoney! Guys, maybe a fresh look who will find mistakes?