el nombre del juego es ao argentum, esta echo en vb6
utiliza paquetes de texto string como protocolo y estoy desarrollando un hack donde intercepto los datos que entran y salen
lo hice con una guia que encontre de otro juego pero se me esta complicando obtener los send y recv los pointer
Código
typedef VOID(WINAPI *PRecvData)(BSTR data); //Pointer Definition - Takes BSTR and returns VOID PRecvData PFunctionRecv = (PRecvData)0x; //Pointer to where the original HandleData() starts -<<<<<< esto typedef VOID(WINAPI *PSendData)(BSTR* data); //Pointer Definition - Takes BSTR* and returns VOID PSendData PFunctionSend = (PSendData)0x; //Pointer to where the original SendData() starts -<<<<<< esto typedef int(WINAPI *PLoop)(); HMODULE dllModule = LoadLibraryA("MSVBVM60.DLL"); PLoop PFunctionLoop = (PLoop)GetProcAddress(dllModule, "rtcDoEvents"); void Hooks(AORConfig _initialConfiguration) { initialConfiguration = _initialConfiguration; OutputDebugStringW(ConvertStringToBSTR(_initialConfiguration.playerName)); DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourAttach(&(PVOID&)PFunctionRecv, &MyRecvData); // Hook DataHandler() to MyRecvData() DetourAttach(&(PVOID&)PFunctionSend, &MySendData); // Hook SendData() to MySendData() DetourAttach(&(PVOID&)PFunctionLoop, &MyLoop); // Hook DoEvents AKA Loop() to MyLoop() DetourTransactionCommit(); } VOID WINAPI MyRecvData(BSTR dataRecv) { __asm PUSHAD; __asm PUSHFD; try { OutputDebugStringW(ConvertStringToBSTR("Recv: " + ConvertBSTRToString(dataRecv))); if (StartsWith(dataRecv, L"PAIN")) { } // //// Returns control to the Original Function // PFunctionRecv(dataRecv); } catch (int e) { OutputDebugStringW(ConvertStringToBSTR("ERROR-> Place: HandleData() Id: " + to_string(e))); } __asm POPFD; __asm POPAD; }
para obtener el send estoy abriendo la app con ollydbg y al loguearme el breakpoint me lo marca perfecto
luego me marca el data buffer ahi debajo y hasta aqui llego no logro obtener ese pointer estatico que seria el dato que necesito para hacerlo funcionar y empezar a modificar los paquetes que envia
lo mismo para el recibir los datos llego hasta esa parte y no se como proseguir no obtengo nada que me sirva alguien puede ayudarme?