Ich nehme an, es handelt sich um ein UNI / Schul Project? Dann könnte man z.b. Code in den Explorer injizieren (WriteProcessMemory, CreateRemoteThread) der prüft, ob die Firewall aktiv ist und wenn nicht neu startet.
Ist allerdings eine unsaubere Lösung, da sie unter 64 bit nicht funktionieren wird und außerdem leicht ausgehebelt werden kann. Das wird allerdings ohne einen Treiber immmer so sein.
Alternative und sauberere Lösung: Eine
DLL programmieren, die Funktionen wie OpenProcess() hookt und diese in alle Prozesse laden (entweder per Injection oder als AppInit
DLL eintragen). So könnte man verhindern, dass der Prozess über den Taskmanager terminiert wird (auch hier kein 64 bit Support außer ihr erstellt mit Lazarus eine zweite 64 bit
DLL). Ein Thread der prüft, ob die Firewall noch aktiv ist könnte man ja zusätzlich in der
DLL anbringen.
Dritter Vorschlag: 2 sich gegenseitig überwachende Prozesse.