国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在.NET下獲取硬盤序列號的問題

2024-07-10 12:59:06
字體:
來源:轉載
供稿:網友
一般軟件的注冊機制可以通過獲取硬件序列號,然后用非對稱加密算法生成相應的公鑰和私鑰。但是用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程序的保護問題,找出最好的解決方案!



收集最實用的網頁特效代碼!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建始县| 外汇| 桦川县| 云梦县| 斗六市| 江口县| 永寿县| 嘉定区| 禄丰县| 呼玛县| 闵行区| 佳木斯市| 承德市| 霍城县| 高清| 仁布县| 金塔县| 衡东县| 博兴县| 林甸县| 贡嘎县| 樟树市| 久治县| 卢湾区| 汉寿县| 叙永县| 富阳市| 商丘市| 奇台县| 和硕县| 健康| 隆德县| 镇宁| 泸定县| 绥宁县| 永昌县| 海原县| 山阴县| 宜阳县| 沈丘县| 张家界市|