我建立採用Delphi,RAD Studio的10Windows服務應用程序自衛德爾福(RAD工作室)
在我的調查中,我有一個ESET的Windows服務,這奇妙的是爲了保護自己不被對面來了一個Windows服務應用程序停止或終止。
使用(Windows服務管理器)或(結束進程按鈕) 或以下錯誤消息(結束任務按鈕)停止服務時發生:
操作無法完成。
訪問被拒絕。
其註冊表項也是如此。該錯誤信息是:
無法刪除信息:錯誤而刪除
我測試管理員訪問權限和系統快捷鍵。在這兩種情況下,我都沒有成功。
我想爲我自己的應用程序構建這樣的自我防禦機制,以保護我的服務和註冊表項。
任何想法都會有所幫助。
謝謝你的時間。
更新:
我想知道我可以在Delphi中做到這一點...這就是爲什麼它被標記德爾福
,如果有人想要停止服務或卸載它....
他或她可以使用我自己的應用程序UI來執行此操作。
編輯2:
正如提到的Remko我thnk DACL和ACL是更好的方式來處理它,我找不到它的任何很好的參考。德爾福語言有沒有很好的參考?
兩個竅門:1)您必須監視相關注冊表項的更改,以及2)您需要兩個互相監視的服務。但是沒有系統是不可破的,例如您需要觸發器才能夠定期關閉服務。一旦有人知道觸發器,它們就會「進入」。 –
兩個服務互相保護,當service1停止服務時,service2啓動它,反之亦然,沒有任何錯誤消息,但是在這種情況下,顯示了windows服務管理器創建的訪問被拒絕消息。即使對服務的屬性進行編輯也沒有任何訪問權限,你要做的服務將被windows服務管理器本身拒絕。你如何解釋這個? – user3492977
這與'[delphi]'有關嗎?請不要隨意標記。 –