Hola como estan
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
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?