我用C開發一個小的Windows應用程序++,我想獲得某種形式的軟件/硬件的指紋在電腦上,這樣我可以讓應用程序只在某些電腦上運行。如何從在C Windows PC上獲得獨特的硬件/軟件簽名/ C++
我知道,應用程序可以被破解,但我在實施這樣的事情很感興趣。
任何想法我怎麼能實現這一點?
我用C開發一個小的Windows應用程序++,我想獲得某種形式的軟件/硬件的指紋在電腦上,這樣我可以讓應用程序只在某些電腦上運行。如何從在C Windows PC上獲得獨特的硬件/軟件簽名/ C++
我知道,應用程序可以被破解,但我在實施這樣的事情很感興趣。
任何想法我怎麼能實現這一點?
這主要取決於你想夫婦軟件底層硬件有多緊張。例如,您可以從註冊表獲取一些硬件信息,從LAN卡讀取MAC地址,檢索gfx製造商,CPU ID等,並散列所有這些數據。
然後,您可以使用此散列作爲發送給貴公司的challenge代碼。然後客戶會收到簽名(使用您的私鑰)此散列的版本。
啓動後,您的應用程序可以檢查散列的簽名是好還是不好(即已由您的公司簽名)。
這不僅會將您的軟件綁定到特定的硬件配置,還會迫使破解者修補您的應用程序(因爲他們需要從您的可執行文件中修補公鑰並將其替換以編寫keygen)。許多人會考慮從安裝一個從各種來源獲得的裂縫,而不是從一個keygen複製一個有效的序列。
編輯:
爲了在DSA從RSA檢查散列的簽名,什麼ECC可以使用。我可以推薦Crypto++或libTomCrypt。
有沒有可靠的方法已知這樣做在香草個人電腦;人們一直在努力多年。問題是您可能隨時更改任何組件,包括CPU和BIOS ROM。最近的人來使用加密保護的「dongle」,但這已被證明在操作中不令人滿意,並且不是很安全。
如果你想出點什麼,請給它專利;這將是非常有價值的。
正如其他人所說,沒有什麼完美的你想要什麼。我對一個類似的問題做了一個半心半意的嘗試,最後混合了驅動器卷ID(不好,因爲它可以重新格式化)和操作系統密鑰(從Windows)。
最終我沒有在這上面花太多的時間,就好像人們真的想破解你的軟件,他們很可能會能夠做到這一點。我離開了這個微不足道的許可「保護」,但它很差。
花上使他們想通過它出色的購買它的時間/精力。
注意:添加防複製標籤 – newgre 2009-02-10 21:49:00