Von 0 hab ich's auch nicht geschafft, das ist wahr, aber wenn man's erstmal kann ist das in unter 10 Minuten erledigt (nur der Hook, nicht direkt Packets abfangen / entschlüsseln / anzeigen lassen).
Wenn man für sowas eine Schnittstelle für (nicht in) AutoIt schreiben wollen würde, müsste man wohl eine DLL injizieren lassen, die den Hook ausführt und Parameter per Pipe (kenne noch keinen anderen Weg für IPC) an das Programm (AutoIt, wenn es denn mit Pipes umgehen kann) weitergibt.
Ich denke mal nicht, dass sich jemand die Mühe gemacht hat, sowas zu schreiben (wenn es denn überhaupt funktionieren würde), kann mich aber auch irren.
Quote:
|
einfache, schnelle lösung
|
Einfach wäre es sicherlich, aber schnell sicherlich nicht, denn wie gesagt, denke ich, dass AutoIt als aufrufender Code für sowas viel zu unperformant wäre (ich denke mal, dass die Send Funktion oft aufgerufen wird) oder man müsste die Hook-DLL gleich mit einem Filter ausstatten, dass nur Packets weitergeleitet werden, die "...abc..." beinhalten. Letzteres wirste aber wohl nicht im Internet finden, da es vermutlich zu spezifisch ist.
/Edit:
Ws2_32.dll Send Hook (unwichtiger, schlecht geschriebener Müll :D ):
Code:
int __stdcall hkSend(SOCKET sSocket, const char *buffer, int length, int flags);
typedef int(__stdcall* Send_t)(SOCKET, const char *, int, int);
Send_t pSend;
int __stdcall hkSend(SOCKET sSocket, const char *buffer, int length, int flags)
{
'irgendwas
return pSend(sSocket, buffer, length, flags);
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)&HookThread, 0, 0, 0);
}
return TRUE;
}
DWORD WINAPI HookThread()
{
HMODULE hWinsocks = GetModuleHandle("Ws2_32.dll");
FARPROC dwSendAddress = GetProcAddress(hWinsocks, "Send");
pSend = (Send_t)DetourFunc((PBYTE)dwSendAddress, (PBYTE)hkSend, 5); //bin mir nicht 100%ig sicher ob das mit den 5 Bytes bei der Funktion funktioniert, nicht nachgeguckt
}
Da ist alles wichtige drinne, denke ich. Hab's nicht getestet und ohne IDE nur mit dem Editor zusammengeschraubt. Eventuell Fehler und schlechter Stil (Modulhandle nicht überprüfen, etc.) kommen von der fehlenden IDE und Codeschnipsel früherer Projekte :D
Funktionsprototypen hab ich weggelassen, aber das ist ja nicht so wichtig (Kein Bock :) )
Als Detourfunktion kannste irgendeine aus'm Internet nehmen.