2008-09-19 93 views

回答

5

一對夫婦的事情,你可能要考慮:

校驗和的DLL。使用cryptographic hash function,您可以將其存儲在許可證文件中或DLL內部。這提供了一個驗證方法來確定我的原始DLL文件是否未被打開,或者它是否是此DLL的許可證文件。一些簡單的字節交換技術可以快速將你的散列函數帶離繁瑣的軌道(因此不容易重現)。

不要存放你哈希爲一個字符串,它拆分成不同的地方無符號的短褲。

正如拉里說,MAC地址是相當普遍的。在The Code Project上有很多如何獲得這些信息的例子,但請注意這些日子很容易造假。

我的建議,應該使用private/public鍵生成許可證。

總之,攻擊的模式將是二進制(修改DLL文件的說明),所以防止這一點,或密鑰生成,從而使每個許可證用戶,機器,甚至安裝特定。

4

您可以檢查的DllMain的內部許可證()和死,如果它沒有找到。

+0

請仔細閱讀您允許在DllMain中執行的操作,但並不多! – MSalters 2008-09-21 23:11:15

1

這也取決於你的許可的算法是如何工作的。我建議你考慮使用類似Diffie–Hellman key exchange(或甚至RSA)的東西,根據一些信息生成某種可以傳遞給用戶的公鑰/私鑰。 (根據應用程序的不同,我知道我在一家公司的合同中編寫了許可證代碼的案例,他們使用了MAC address和其他一些數據,對它進行了散列處理,並對散列進行了加密,併爲它們提供了「密鑰值「,如果註冊號碼是正確的)。這確保密鑰文件不能被移動(或給定)到另一臺機器,從而'竊取'軟件。

如果您想更深入和避免黑客,這是一個整體「諾特爾話題....