檢測內存入侵
回答
許多病毒檢查程序使用的一種方法是執行可執行文件或內存的校驗和並將其保存。在運行時,偶爾會計算一個新的校驗和並與原始數據進行比較。大多數程序不會有意修改其可執行文件。
防止基本內存修改的基本思想是加密您關心的內存部分,並進行冗餘檢查以確保不被修改。
這些都不會阻止一個確定的黑客,但足以讓腳本小子保持在您的地址空間之外。
簡短的答案是否定的,在一般情況下是不可能的。即使你實現了一些已經給出的建議,也沒有任何東西阻止某人修補執行檢查的代碼。
我不知道ArtMonkey是如何工作的細節,但是如果它作爲一個調試器的功能,你可以試着定期檢查DebugHook <> 0,如果是的話適當反應。 (只要確保將該代碼放在{$ IFNDEF DEBUG}塊中,以免對產生影響!)
您可能想問問自己,爲什麼要阻止人們修補你的記憶,雖然。除非有真正的安全問題,否則你可能不應該嘗試。請記住,用戶的計算機,即您的程序將運行的是他們的財產,而不是您的財產,如果您對用戶的選擇產生過多幹擾,應如何處理他們的財產,您的計劃在道德上與惡意軟件無法區分。
我不知道它是如何工作的,我認爲它可以通過三種方式來完成:
- ReadProcessMemory和WriteProcessMemory的Windows API的
- 使用調試器(檢查debughook,不過這簡直太容易了這樣它不會使用)
- 注入一個dll,因此它可以存取權限的所有內存(因爲它是在同一個進程)
最後一個是容易(檢查注入DLL或類似的東西)。第一個是棘手,但我發現一些關於它的文章:
不,「DebugHook」對於檢查進程是否正在被調試完全沒有用處,它只被IDE調試器使用。在Windows API中有IsDebuggerPresent()(或直接訪問PEB),但它非常容易被愚弄,請參閱http://www.teamfurry.com/wordpress/2007/02/25/avoiding-debugger-detection 。 – mghie 2009-12-22 07:40:53
我問過類似的問題,結論是基本上你不能阻止這一點。 How can I increase memory security in Delphi
- 1. 太空入侵者碰撞檢測。 1子彈檢查所有入侵者?
- 2. apache日誌入侵檢測數據集
- 3. 基於請求的Tomcat入侵檢測
- 4. 入侵檢測系統,安全+問題
- 5. 入侵者檢測器 - OpenCv - C
- 6. Apache(XAMPP 1.8.0)access.log /入侵檢測關注
- 7. 從內存中檢索字節碼以防止黑客入侵
- 8. 侵犯版權檢測
- 9. 入侵偵測數據集
- 10. 算法或API創建入侵檢測系統輸入
- 11. 內存塊C寫入/讀取檢測
- 12. 內存泄漏沒有檢測到CRT內存泄漏檢測
- 13. 運行Snort入侵檢測系統時出錯
- 14. 神經網絡,遺傳算法作爲入侵檢測系統
- 15. 神經網絡和入侵檢測系統
- 16. 尋找入侵檢測標籤數據集
- 17. 如何設置微服務入侵檢測系統?
- 18. 檢測iOS應用是否被黑客入侵
- 19. Java中的網絡入侵檢測系統..!
- 20. 使用模糊邏輯構建入侵檢測系統
- 21. 建築物入侵檢測系統,但從哪裏開始
- 22. 計算機科學「關於入侵檢測系統的知識」
- 23. 侵入式或非侵入式
- 24. 非侵入式集成測試
- 25. 檢測Android內存泄漏
- 26. VB.NET檢測內存操作?
- 27. 內存泄漏檢測器
- 28. 檢測IPHONE可用內存
- 29. 檢測內存增長
- 30. VisualVM內存泄漏檢測
適用於不可變內存。但是大多數內存不是不可變的 – 2009-12-22 09:30:29