上一篇:对使用net程序架构开发的一点点儿 >>
在.NET下获取硬盘序列号的问题
要想顺利获取硬盘的序列号,目前只能依靠非托管代码了。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程序的保护问题,找出最好的解决方案!
下一篇:在.net中Oracle日期类型的处理 >>
相关文章:
- · .Net框架下的XSLT转换技术简介
- · NET Framework 工具
- · 充分利用 .NET 框架的 PropertyGrid 控件
- · 把.NET程序部署到没有安装.NET Framwork的机器上
- · ADO连接数据库字符串大全
- · 在 Visual C# .NET 中建立一个平滑的进度条
- · FlyTreeView for ASP.NET 3.1 破解手记
- · 如何检测电脑是否安装了.net framework
- · .Net平台下开发英文语音应用程序
- · 按照指定大小,生成缩略图
- · .net探针
- · .net分布式事务例子
- · 在 普通的文本框 里加入图片背景
- · 架构设计之首部曲
- · 实例讲解.NET中资源文件的创建与使用
- · NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现(二)
- · .net入门常见问题
- · 简单代码的性能差异
- · .net中设置系统时间
- · 用.net操作word
- · 使用 Visual Studio .NET 重新分发 .NET 框架
- · .NET :消息与AOP(二)
- · .NET :消息与AOP(一)
- · 鼠标移动,改变datagrid颜色
- · .NET 三种 序列化方式
- · 关于日期转换的心得
- · net中交易处理的解决方案
- · 利用Jmail发送和接收邮件(C#)
- · Community中的程序配置
- · 常用的读写ini文件的类
- · 利用反射,实现动态调用winform窗体!!
- · 取得本机IP地址的方法两则
- · 反射应用之一:根据控件名、属性名进行取值和赋值
- · Whidbey 初体验之局部类型 ( partial 类型)
- · 结构和类
- · 关于微软的.NET Framework是一个半成品的言论!
- · ASP.NET实现用户在线检测的类源码
- · 在ASP.NET下实现数字和字符相混合的验证码
