當前位置:
首頁 >
利用U盘进行软件加密(转)
發布時間:2025/4/16
19
豆豆
生活随笔
收集整理的這篇文章主要介紹了
利用U盘进行软件加密(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
早就想寫一篇關于用U盤代替專用加密狗來加密對加密要求不高的軟件的文章.今天在網上逛的時候偶然看到這篇博文,正好是我想寫的.于是轉載過來:
一般的U盤不具備加密的功能,雖然U盤和加密狗外形有一些相似,但是內部完全不一樣的,U盤只是一個存儲器芯片和簡單的附屬電路,而現在的智能卡加密狗都具有一個單獨的CPU或者加密芯片,可以執行相當復雜的加密算法。
有的軟件開發商有這樣一種需求,就是使用U盤發布軟件的同時,想要節約成本,防止U盤中的軟件被復制,但又不想再購買昂貴的加密狗,因此想要把軟件綁定在U盤上執行,當U盤拔下來的時候,軟件就不能正常運行,和我先前介紹的綁定硬件指紋相似,使用綁定U盤的方式加密軟件。
在對軟件安全不是特別在意的情況下,可以在軟件中采用綁定U盤內部ID的方式來實現這種加密,先使用程序將U盤的ID讀出來,然后根據這個ID生成License文件,當解密者將U盤內的文件復制到其他電腦的時候,軟件執行過程中讀取U盤ID失敗,因此就無法校驗License。
通常情況下兩個U盤的ID是不相同的,因此即使將軟件復制到另外一個U盤,軟件執行的時候,根據U盤ID驗證License,也會出現不匹配的現象,這樣就實現了軟件綁定U盤的加密方式。
需要指出的是,這種U盤加密并不算安全,大多數U盤廠商有內部量產工具,可以修改U盤的內部ID號碼,這就存在了復制U盤的可能性,但對于普通用戶來說,通常沒有修改U盤內部ID的能力,因此也具有一定的加密性。
這個加密方法中,讀取U盤ID號的函數的VB源代碼如下所示:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")
For Each objItem In colItems
a = objItem.DeviceID
If InStr(a, "VID") Then b = Split(a, "\")
USB_ID = b(UBound(b))
Next
轉載自月光博客 [ http://www.williamlong.info/ ]
一般的U盤不具備加密的功能,雖然U盤和加密狗外形有一些相似,但是內部完全不一樣的,U盤只是一個存儲器芯片和簡單的附屬電路,而現在的智能卡加密狗都具有一個單獨的CPU或者加密芯片,可以執行相當復雜的加密算法。
有的軟件開發商有這樣一種需求,就是使用U盤發布軟件的同時,想要節約成本,防止U盤中的軟件被復制,但又不想再購買昂貴的加密狗,因此想要把軟件綁定在U盤上執行,當U盤拔下來的時候,軟件就不能正常運行,和我先前介紹的綁定硬件指紋相似,使用綁定U盤的方式加密軟件。
在對軟件安全不是特別在意的情況下,可以在軟件中采用綁定U盤內部ID的方式來實現這種加密,先使用程序將U盤的ID讀出來,然后根據這個ID生成License文件,當解密者將U盤內的文件復制到其他電腦的時候,軟件執行過程中讀取U盤ID失敗,因此就無法校驗License。
通常情況下兩個U盤的ID是不相同的,因此即使將軟件復制到另外一個U盤,軟件執行的時候,根據U盤ID驗證License,也會出現不匹配的現象,這樣就實現了軟件綁定U盤的加密方式。
需要指出的是,這種U盤加密并不算安全,大多數U盤廠商有內部量產工具,可以修改U盤的內部ID號碼,這就存在了復制U盤的可能性,但對于普通用戶來說,通常沒有修改U盤內部ID的能力,因此也具有一定的加密性。
這個加密方法中,讀取U盤ID號的函數的VB源代碼如下所示:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")
For Each objItem In colItems
a = objItem.DeviceID
If InStr(a, "VID") Then b = Split(a, "\")
USB_ID = b(UBound(b))
Next
轉載自月光博客 [ http://www.williamlong.info/ ]
轉載于:https://www.cnblogs.com/luckeryin/archive/2009/08/25/1553874.html
總結
以上是生活随笔為你收集整理的利用U盘进行软件加密(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GridView的翻页
- 下一篇: C++和操作系统面试问题分类