原文:使用IntelliLock加密授权你的.Net程序

转自:http://www.nsoff.com/post/2012/05/23/%E4%BD%BF%E7%94%A8IntelliLock%E5%8A%A0%E5%AF%86%E6%8E%88%E6%9D%83%E4%BD%A0%E7%9A%84Net%E7%A8%8B%E5%BA%8F.aspx 

记录在这里,以便学习使用!

一 加密混淆.Net程序

打开Intellilock进处此界面

点击add按钮加入你要操作的程序集,

Merge Assemblie 可以合并当前程序集列表中的程序集为一个文件。默认合成后的文件名为列表中第一位的程序集。

点击Protection Settings标签进入保护设置界面

左侧是混淆界面,右侧是高级选项

Use Unprintable Characters 使用不可打印字符

Generate Short Strings 使用短字符串,可以减小程序集大小

Incremental Obfuscation 增量混淆处理

Create  Mapping File 创建混淆映身文件。选中此选项会产生一个limap文件

Exclusions 排除以下程序关键字或类型不混淆

枚举,事件,命名空间,类型,字段,方法

String

Advanced 高级

String Encryptio 加密字符串

Advanced String Encryption

Code Path Protection     代码补丁保护

Suppress ILDASM  禁用ILDASM反汇编

String Name Removal Protection  禁止移除强命名保护

Encrypt Il Code  加密IL代码,选中此选项IL代码将在运行时进行解密

Inject Invalid Metadata 注入无效元数据

Control Flow Obfusction 控制流程混淆级别,越高越安全。

以上选项设定后,点击工具栏的Finalize或点击TAB标签Finalization,点击GO按钮生成加密后的程序

二 制作授权试用版软件

(1) 试用版软件

在Lock Setting面板中,

Expiration Days  过期天数,可设定程序从安装后运行某天数后试用版过期。

Expiration Date  过期时间,可设定程序从安装后运行到某时间后试用版过期。

Executions  运行次数,可设定程序从安装后运行到第几次启试用版过期

Runtime   运时时间,可设定程序从安装后运行时间后试用版过期

Global Time  全局时间,可设定程序从安装后总的运行时间后试用版过期

Instances  程序运行实例个数

Custom  自定义

Advanced Settings 高级设置

Run Without Valid License 必选中

Shutdown Process After Expiration 重启程序后过期

Search In Embedded Resources 在资源文件中查找License

Search ON Hdd 在硬盘中查找License

License Name 设定程序由试用版转正版所使用的License文件名称。

Master Key license的KEY文件,发布的程序的MasterKey和License的masterKey必须对应,否则License授权失效!

-------------------------------------------

经过以上的设置你发布出去的程序就会按你的过期设置到时过期了。

但是这样有一个弊病,可以一个授权文件(License),复制到任意PC上后即完成了授权。

这里IntelLilock支持license绑定硬件ID进行授权

(2) License绑定硬件ID进行一机一License授权。

流程是这样的。程序发给用户(按上一步的设置),满足过期条件后试用过期,

让用户去程序文件夹寻找(硬件ID.txt) 里面放着当前电脑的硬件ID信息

此硬件ID信息从哪来的呢,这里IntelLiLock Sdk 提供的方法

项目引用IntelliLock.Licensing.dll 在IntelLiLock安装后的文件夹\SDK\Bin下

调用此方法读取当前PC的硬件ID信息

1
IntelliLock.Licensing.HardwareID.GetHardwareID(true, true, true, true, true,false);<br><br>

参数 BIOS,CPU,HDD,MAC,Mainboard,OS 为True即生成硬件信息ID时加入此硬件的算法

这里你调用此方法调试程序时显示"####-#####-#####-####"类似字符串,不是硬件ID信息。

因为程序需要使用IntelLilock加密后。此方法才生效(应该是IntelLilock加密时动态的把此方法的算法加了进去)

用IntelLilock加密后运行程序。成功显示了硬件ID信息

 下面是用IntelLiLock发布授权License

把用户发来的硬件ID粘贴入上面文档框中,把BIOS,CPU,HDD,MAC,Mainboard复选框选中

这里为什么不把OS也选中呢。因为

1
IntelliLock.Licensing.HardwareID.GetHardwareID(true, true, true, true, true,false);

此方法的最后一个OS参数为false,所以这里不用选中。要和上面方法保持一致! 这样把你的license发给用户。放到程序根目录下。即完成了试用版到正式版的授权。   以上这些只是IntelLiLock的Task标签内的内容 还有License 管理,TOOLS工具,help等 License management 针对客户,产品进行信息维护,自带SQLITE数据库 tools工具中有License Check 和hardware check

IntelliLock.Licensing.EvaluationMonitor.CurrentLicense.LicenseStatus == IntelliLock.Licensing.LicenseStatus.Licensed 判断当前License是否已授权

就写这些了。。。还有更多的功能等待你的挖掘!

使用IntelliLock加密授权你的.Net程序的更多相关文章

  1. [WCF安全2]使用wsHttpBinding构建UserName授权的WCF应用程序,非SSL

    上一篇文章中介绍了如何使用basicHttpBinding构建UserName授权的WCF应用程序,本文将为您介绍如何使用wsHttpBinding构建非SSL的UserName安全授权的WCF应用程 ...

  2. [WCF安全3]使用wsHttpBinding构建基于SSL与UserName授权的WCF应用程序

    上一篇文章中介绍了如何使用wsHttpBinding构建UserName授权的WCF应用程序,本文将为您介绍如何使用wsHttpBinding构建基于SSL的UserName安全授权的WCF应用程序. ...

  3. [WCF安全1]使用basicHttpBinding构建UserName授权的WCF应用程序

    最近到了新公司,leader让我研究一下WCF的传输安全机制.以前也做过WCF的应用,但是很少涉及安全方面的东西.所以,花了三天的时间研究了一下如何在WCF的应用程序中配置安全.在这个系列文章中,我会 ...

  4. 看雪加密解密第一个traceme程序破解

    工具:ollydbg(吾爱破解2.10版) 工具设置:因为traceme是一个win32图形用户程序,所以其程序入口点在WinMain()函数处,设置ollydbg的调试设置的事件选项,选中在WinM ...

  5. 使用.net5 创建具有身份验证和授权的Blazor应用程序

     

  6. 加密混淆.Net程序

    记录在这里,以便学习使用! 一 加密混淆.Net程序 打开Intellilock进处此界面 点击add按钮加入你要操作的程序集, Merge Assemblie 可以合并当前程序集列表中的程序集为一个 ...

  7. UE4程序及资源加密保护方案

    UnrealEngine4外壳加密 . Virbox Protector 解决代码反汇编和反dump代码,解决软件盗版与算法抄袭. 虚幻引擎4是由游戏开发者为开发游戏而制作的.完整的游戏开发工具套件. ...

  8. 一个很奇怪的问题,程序没有改动加密参数应该也没有变化.但是两次的加密结果却不一致.md5加密问题

    从图上我们看出20160803的加密结果是AAEBA9C578EA522215EAE76AFCAF250.时间是9.4分 现在我们再看这个同样的加密地址与时间结果却是另一种 31672B16..... ...

  9. Encrypting bootloader (程序BIN文件加密及在线升级)

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 在上一个博客随笔,我介 ...

随机推荐

  1. 交互式命令 expect

    shell尽管很强大.但是貌似无法完成交互式命令的操作,实例 ssh host 如果host而且该机没有加入信任.手动输入的时间需要password. 这样的情况下可以使用expect支持. 下面举个 ...

  2. 简单介绍如何使用PowerMock和Mockito来mock 1. 构造函数 2. 静态函数 3. 枚举实现的单例 4. 选择参数值做为函数的返回值(转)

    本文将简单介绍如何使用PowerMock和Mockito来mock1. 构造函数2. 静态函数3. 枚举实现的单例4. 选择参数值做为函数的返回值5. 在调用mock出来的方法中,改变方法参数的值 一 ...

  3. STL 清除模板容器 clear.h

    #pragma once #include "GeometricMacro.h" #include "GeometricEnum.h" #include &qu ...

  4. 快讯:埃博拉患者Martin Salia去天堂了

    下面是Martin Salia外科医生的遗像: 11月17日,埃博拉重病患者Martin Salia外科医生死了.请见:Ebola patient Dr. Martin Salia dies in O ...

  5. head first c&lt;11&gt;在根据网络编程

    博文可以在一个大的网络通信实现,但是,一个人只能起到,我们能够给每个clientfork()子进程,实现诸多的服务. 方法: client连到server以后,server启动一个新创建的套接字对话. ...

  6. Android高级编程笔记(四)深入探讨Activity(转)

    在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕.这个主界面一般由多个Fragment组成,并由一组次要Activity支持.要在屏幕之间切换,就必须要启动一个新的Activity.一 ...

  7. Hadoop0.20.2 Bloom filter应用演示样例

    1. 简单介绍 參见<Hadoop in Action>P102 以及 <Hadoop实战(第2版)>(陆嘉恒)P69 2. 案例 网上大部分的说明不过依照<Hadoop ...

  8. EnumMap demo

    优点:常量做为Key,在编译期就确定了.Enum做为key,在运行时也可以改变 package enumdemo; import java.util.EnumMap; import java.util ...

  9. 十天学Linux内核之第三天---内存管理方式

    原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...

  10. OOP 创建对象的7种方式

    JavaScript OOP 创建对象的7种方式   我写JS代码,可以说一直都是面向过程的写法,除了一些用来封装数据的对象或者jQuery插件,可以说对原生对象了解的是少之又少.所以我拿着<J ...