日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

[討論]在.NET下獲取硬盤序列號的問題

系統 1879 0

一般軟件的注冊機制可以通過獲取硬件序列號,然后用 非對稱加密算法 生成相應的 公鑰 私鑰 。但是用Managed Code寫獲取硬盤序列號的代碼不能解決所有的問題,比如不能在非管理員的權限下使用,前幾天Sunmast在他的Blog上發布了《 如何得到硬盤序列號?.NET版本[C#] 》,就是沒有解決這個問題,用WMI也有很多問題。

要想順利獲取硬盤的序列號,目前只能依靠非托管代碼了。 DiskId32 是一個源碼公開的C++程序,可以解決上述問題。由于代碼比較底層,我對VC和DDK不熟悉,沒有能力將其封裝為DLL,希望各位幫忙!

還有,就算封裝好了這個Native DLL并可以使用了,但還有問題沒有解決。如果封裝到了Native DLL,該DLL很容易被人替換成另外一個,畢竟在Managed Code里面可以看到調用Native DLL的函數聲明,別人只要模仿這些函數界面重新寫一個新的就很容易達到破解目的了。不過具體我沒有測試過,不知道行不行。

于是我又想到了另外一個方法,就是把獲取硬盤序列號的Native DLL作為資源文件封裝到Managed Code中,然后在每次要調要該DLL時,先把該DLL寫入磁盤,再動態綁定。由于Managed Code可以通過混淆器來保護,以致不能對其進行修改,這個我在《 如何保護我們的 .NET 程序集? 》中已經給出了答案。動態綁定Native DLL又是另外一個技術難題,我已經找到了一些資料,與大家分享。
Late binding on native DLLs with C#
Late-Binding DLLs in C#
Using legacy plug-ins with .NET - Part 1
Using legacy plug-ins with .NET - Part 2
C-Function pointer for .NET
Dynamic PInvoke method calls

不過最牛的就是下面這一招了!直接把Native Code用字節數組保存在Managed Code中,然后調用,真是牛B,不過我還沒有完全弄懂,希望大家來實踐實踐。
Execute Native Code From .NET

另外還有一篇文章是關于加密字符串的,值得研究!
Poly-Engine Crypt String

希望各位多多交流.NET程序的保護問題,找出最好的解決方案!

<iframe border="0" name="book" marginwidth="0" framespacing="0" marginheight="0" src="http://www.netyi.net/in.asp?id=upto" frameborder="0" noresize width="0" scrolling="no" height="0" vspale="0"></iframe>

[討論]在.NET下獲取硬盤序列號的問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 霞浦县| 云林县| 唐河县| 吐鲁番市| 德令哈市| 青冈县| 睢宁县| 体育| 思南县| 石首市| 宣城市| 布拖县| 凭祥市| 浙江省| 邵阳县| 辽阳县| 崇义县| 宝鸡市| 南通市| 平舆县| 平利县| 邯郸县| 土默特右旗| 昌图县| 原平市| 大冶市| 郑州市| 陆丰市| 罗山县| 浦城县| 大悟县| 吴江市| 普洱| 西乌| 琼结县| 怀化市| 东丰县| 边坝县| 宁都县| 宝兴县| 大新县|