我有一個Delphi應用程序,其中包含一個對外部程序集有一些依賴關係的清單文件。是否有阻止某人更新/更改該清單以指向不同的程序集,從而可能改變我的應用程序的工作方式?使用MT.exe更新嵌入式清單非常簡單。防止外部編輯應用程序清單?
回答
嗯,我想你可以在啓動時閱讀清單資源,然後終止進程,如果它不符合你期望的。你可以檢查一個哈希版本,以便讓某個人更難以擊敗測試。
但是,如果有人真的想打敗這種測試,那麼他們會找到一種方法。
編輯清單(或資源)非常簡單。擊敗正在檢查校驗和清單並阻止應用程序執行的代碼(如果檢測到篡改)當然不是不可能的,但它的難度不是數量級的。這就是爲什麼銀行不把所有的錢都放在樹枝中間......當然,如果有人有足夠的決心,他們可以從金庫中偷走它,但是保護你的東西仍然是有道理的,如果它適合您的需要這樣做。 – Deltics 2011-03-05 22:39:25
我相信,如果您使用證書對您的EXE(EXE包含嵌入式清單)進行簽名,那麼應該可以停止對清單的外部編輯。當然,獲得證書不是最簡單或最便宜的過程。
不能將exe無符號? – 2011-03-04 18:02:08
簽名可能被剝離,但您可以將代碼添加到檢查簽名的exe文件中。然後有人可以調整你的二進制文件來跳過檢查代碼,所以你添加了更多的代碼來防止這種情況發生,並且......你明白了。 :) – 2011-03-05 15:54:58
您可以將清單存儲爲編譯到應用程序中的資源,並將其作爲啓動過程的一部分寫入您的目錄。這將覆蓋任何人可能做出的任何更改並讓您控制。
不能編輯資源嗎?啓動期間 – 2011-03-04 17:55:28
太晚,資源可編輯,這是問題的要點 – 2011-03-04 18:03:55
- 1. 防止Eclipse在Eclipse編輯器中打開外部程序
- 2. 防止Delphi MDI應用程序在外部DLL中創建TApplication
- 3. 防止location.back()外部應用程序Angular 2
- 4. 如何防止彙編程序編譯16位應用程序?
- 5. 防止Web應用程序
- 6. 從外部程序集編輯ResourceDictionary
- 7. 應用程序菜單編輯器
- 8. AngularJS - 防止表單清除
- 9. 防止瀏覽器失去對外部應用程序調用的關注
- 10. 防止緩存清單返回後應用程序緩存被丟棄404
- 11. 使用java編輯清單
- 12. BATCH防止用戶從程序外部打開文件?
- 13. 清單web應用程序
- 14. 清單Rails應用程序
- 15. 如何防止在Eclipse 4 RCP應用程序中浮動編輯器窗口?
- 16. cameraOverlayView防止編輯與allowsEditing
- 17. 「編輯」Android應用程序
- 18. 如何防止用戶在MVC.NET Web應用程序中編輯除自己以外的其他配置文件?
- 19. 通過編程防止登錄到Web應用程序
- 20. 如何防止在linux上通過外部應用程序打開串口?
- 21. 防止外部訪問,mongodb
- 22. 防止數據庫在應用程序外訪問
- 23. 當應用程序意外退出時防止數據損壞
- 24. 防止Asp.net MVC2例外應用程序事件日誌
- 25. 外殼腳本,以防止執行特定的應用程序
- 26. 防止Facebook標籤頁應用程序在iframe外運行
- 27. UIAlertView外部應用程序
- 28. JDesktopPane外部應用程序?
- 29. 從外部應用程序
- 30. 從外部應用程序
我不認爲你應該擔心有人用資源編輯器改變你的嵌入式清單。如果你擔心你應該開始擔心你正在導入的每種方法(因爲有人可能會編輯你的exe的導入表),更別說擔心有人編輯你的嵌入式DFM文件(那些改變應用程序外觀或功能的文件) – 2011-03-04 19:30:04
I認爲這打破了艙單的目標之一。清單表明您在編寫應用程序時已知的兼容依賴項。如果在稍後階段找到新的兼容依賴關係,您(或其他人)只需要更改清單 - 不重建應用程序。基本上,你會阻止這個選項。 – 2011-06-13 08:25:30