黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統 2013 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條評論