保护 .NET 程序集源代码

 
 S+S Deep Dive Training

 

Hands-On Lab
Session 4.1 - Lab
SLPS
 

Step 1.保护 .NET 程序集源代码  
 目标
识别并标记核心知识产权,以帮助这些元素免被反编译。

 保护.Net源代码中选定的方法
1. 打开安装完成的 SLP Code Protector。这时会要求您输入您的 User Name和 Password。将其默认的登录界面取消。

2. 选择 SLP Code Protector 中的 Permutations 选项卡,选定已安装的 SLP 置换码eb2d0ae6-24ea-4091-bdb9-185a5d408a94, 右键单击它并选择 Set As Active.

 

 


 

 

3. 选中菜单项Tools ,左键单击其下拉菜单Server Settings。将会重新弹出登录窗口,录入
User Name : xiawa@microsoft.com
Password: admin
 

 
4. 连接成功后,选定 SLP Code Protector 中的Project 选项卡。
5. 分别设置Projtect选项卡右侧的属性值。
   (1) Target Framework : v2.0.50727
   (2) Permutation : eb2d0a – Contoso Corperation

 

6. 单击Projgect选项卡页面左下角的 Add Modules,                                   
从C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release目录下选取MedicalImage.exe 文件。
7. 逐层展开Project节点下指定路径的方法(如下),然后 钩选 每个方法右侧的 复选框。
   get_DBConnection() :  Project -> MedicalImage,Version...-> MedicalImage -> MedicalImage.DatabaseServices -> MedicalImage.DatabaseServices:get_DBConnection();
 

Rotate():  Project -> MedicalImage,Version...-> MedicalImage ->MedicalImage.Window1 -> MedicalImage.Window1:Rotate()

 

 
Crop():  Project -> MedicalImage,Version...-> MedicalImage ->MedicalImage.Window1 -> MedicalImage.Window1:Crop()

8. 在每个方法的复选框打钩后,单击Project选项卡页面左下角的 Protect按钮。
SLP Code Protector 现在正转换选定的方法,保护它们免被反编译。 SLP Code Protector 的左下角的 Message 窗格中会出现几条消息。保护完成时,会看到 Protection succeeded 消息。
 

9. 滚动到 Project 选项卡的顶部并选定。然后单击 Remove Modules 将 MedicalImage.exe 程序集从 SLP Code Protector 上删除。

10. 关闭 SLP Code Protector。

 

 

 

 

 

 

 

 

 


Step 2打包、许可与激活演示应用程序

1. 构建产品配置

 目标
将医疗图像系统打包以按功能启用许可并激活。
 创建两个新功能集
使用您创建的用户名和密码登录到SLP Server ( https://SLPSTEST/LicenseIssueWeb)站点 。
1. 在导航窗格内选定 Products,然后单击 Add Product按钮。
2. 在 Product Name 字段输入“Medical Image System”,在 Version 字段输入1.0。如果需要,添加产品描述。
注意:一定要按照指导正确地输入产品名称及版本号,因为后面的方案会引用这些字符串。

 

3. 单击 OK。该产品将出现在 Products 页面的一个新行内。
 

4. 选中Medical Image System 产品项,单击 Edit 按钮。
5. 出现 Features 选项卡,单击 Add Feature。在相应的 Name 字段中录入下列名称。
 Max # of Patients
 Rotate
 Load to Server
这三项功能将出现在 Features 选项卡上。
 
6. 单击 Feature Sets 选项卡。一个 Default 功能集已经存在了(不用管它)。
7. 单击 Add Feature Set 按钮,并添加名为 Standard 的功能集。 如果需要可添加进描述文字。
8. 单击 Available Features 下拉框上的向下箭头,单击 Add Feature,向 Standard 功能集内添加 Max # of patients 和 Rotate 两个功能项。
 

9. 单击 OK,结束 Standard 功能集的创建。
10. 现在再次单击 Add Feature Set,添加名为 Enterprise 功能集。如果需要添加进描述文字。单击 Add All Features将Max # of Patients 、Rotate和Load to Server三个功能项都添加进去。
 

11. 单击 OK 完成 Enterprise 功能集的创建。现在 Standard 和 Enterprise 两个功能集都出现在Feature Sets 选项卡上了。

 

 


2. 准备一个基本的打包方案

 目标
测试基于Standard和Enterprise两个功能集的应用程序打包和许可

 分别将两个功能集特性映射到方法并进行保护
1.  打开 SLP Code Protector 工具, 将C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release 目录下的 MedicalImage.exe 应用程序加载到 SLP Code Protector 中。
2.  分别设置Project选项卡右侧的属性值。
 Target Framework :  v2.0.50727
 Project Name:  Medical Image System 1.0
 Permutation :  eb2d0a – Contoso Corperation
 
     

3. 单击Projgect选项卡页面左下角的 Add Modules,                                   
从C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release目录下选取MedicalImage.exe 文件。
4.  逐层展开Project节点下指定路径的方法(如下),然后 钩选 每个方法右侧的 复选框。
 get_DBConnection() :  Project -> MedicalImage,Version...-> MedicalImage -> MedicalImage.DatabaseServices -> MedicalImage.DatabaseServices:get_DBConnection();

 AddPatient(string…string) :  Project -> MedicalImage,Version...-> MedicalImage -> MedicalImage.DatabaseServices -> MedicalImage.DatabaseServices:AddPatient(string…string)

 Rotate():  Project -> MedicalImage,Version...-> MedicalImage ->MedicalImage.Window1 -> MedicalImage.Window1:Rotate()

 WindowLoaded(object,System.EventArges):  Project -> MedicalImage,Version...-> MedicalImage ->MedicalImage.Window1 -> MedicalImage.Window1:WindowLoaded(object,Sysetm.EventArgs)

 LoadToServer():  Project -> MedicalImage,Version...-> MedicalImage  ->MedicalImage.Window1 -> MedicalImage.Window1:LoadToServer() (仅针对LoadToServer方法)钩选后,在此对应方法的右侧页面的Licensing 窗格中,从下拉框中选择LoadToServer
 
5.  单击 Protect 按钮,确认 Protection Succeeded 消息显示在 Messages 窗格中。至此,该应用程序已得到保护并准备得到许可。

 

 

 


3. 为 Standard 功能集发布许可
1.  返回到SLP Server站点,单击导航窗格 License 区中的 New License。这时会显示 New License 页面。
2.  在New License页面中分别设置以下各值。将下表所示的值添加到适当的字段。
 Customer : 单击右侧的 Look Up 按钮并选择 Default 客户。
 Product : 从下拉框中选择 Medical Image System 1.0
 Feature Set : Standard
 


3.  单击该 New License 页面左下角的 Issue License 按钮。下一个页面将显示内容为Licenses issued successfully 的消息及一个 Activation Key。
 
 
4.  单击 Copy to Clipboard,复制 Activation Key 用于下一步骤。
5.  执行C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release.Protected文件夹中 MedicalImage.exe的应用程序,之后将会弹出激活窗口。选择 I want to activate the software over the Internet 选项(单选按钮)。这时将打开 Activation Wizard。按照向导进行操作。
6.  注意:您必须连接到 服务器才能完成此操作。
 

7.  当向导需要激活密钥时,右键单击文本框并单击 Paste,继续按照向导进行操作。Activation Wizard 将显示一条License installed 消息。许可完成安装后会显示 Activation complete。
 

8.  单击 Finish,就会打开该应用程序。它拥有一个 Standard 许可。
 


9.  验证该功能的运行是否正常。记住,Standard 许可应包括仅针对 Max # of Patients 和 Rotate 的许可。单击 Rotate 将旋转当前的医疗图像。但是,单击 Load to Server 将引发下列错误消息:There’s-no-license-to-execute-method (Load to Server).
 

10.  关闭该示例应用程序。

4. 删除许可
1. 利用 Client License Administrator 删除 Standard 许可。打开C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release.Protected 目录下的Microsoft.Licensing.LicAdmin.exe 文件。
2. 选定许可所在的行。
3. 右键单击,并单击 Remove。您将收到一条消息,说明该许可已被成功删除。而该许可所在的行也将从 Client License Administrator 上删除。

 


5. 为Enterprise 功能集发布许可
1. 重新返回到SLP Server站点,单击导航窗格 License 区中的 New License。这时会显示 New License 页面。
2. 在 New License 页面中分别设置以下各值。将下表所示的值添加到适当的字段。
 Customer : 单击右侧的 Look Up 按钮并选择 Default 客户。
 Product : 从下拉框中选择 Medical Image System 1.0
 Feature Set : Enterprise

 

3. 单击页面左下角的 Issue License。
4. 下一页面将显示内容为Licenses issued successfully 的消息及一个 Activation Key。单击 Copy to Clipboard,复制 Activation Key 用于下一步骤。
5. 执行 C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release.Protected 目录下 MedicalImage.exe 的应用程序,并按照 Activation Wizard 的要求提供 Activation Key (右键单击,然后选择 Paste)。Activation Wizard 将显示内容为License installed。Activation complete 的消息。
6. 单击 Finish 打开该应用程序,它拥有一个 Enterprise 许可。
7. 记住,该企业许可包括所有的功能。测试 Rotate 和 Load to Server,以确认这些功能运行正常。
8. 利用 Client License Administrator删除 Enterprise 许可, 之后关闭该示例应用程序(参见删除许可。)

 

 

 


6. 测试基于使用次数的功能限制
 目标:
验证基于使用次数功能限制的许可限制

 该方案将发布一个针对 LoadToServer 功能指定使用次数的许可。当使用次数用完后,将无法再使用该功能,需要再次发布许可。
1. 为 Enterprise 功能集发布一个新的商业许可(参见为Enterprise 发布许可)。设立许可时进行如下操作:
a. 单击选中 New Licence 页面中 Features in License 列表中的 Load to Server 特性,然后单击 Edit。
b. 将 Total Usage Limit 字段的值 Unlimited 更改为 3。
c. 单击选中 Gather Usage Count 复选框,然后选定 OK。

 

 


 
 

2. 执行 C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release.Protected 目录下的MedicalImage.exe,并针对上述许可激活该应用程序。
3. 单击三次该应用程序中的 Load to Server 以便确认其运行正常。
4. 单击第四次以确认这次尝试加载到服务器时会出现错误消息,表明您没有执行该功能的有效许可。


 

5. 返回到 SLP Server 站点,并单击导航窗格 License 区中的 Reissue License 项。选定刚被创建的许可,并单击 Next。单击 Reissue License 页面左下角的 Issue License,然后复制 Activation Key。


 

 

6. 打开 C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release.Protected 目录下的 Client License Administrator,选择该许可,右键选中 Reactivate,粘贴激活码,完成再次激活过程。
7. 现在再次执行C:/SLPS/MedicalDemo/SourceCode/CSharp/bin/Release.Protected 目录下的MedicalImage.exe 应用程序,再次确认可以使用 Load to Server 功能。您将可以再进行三次加载到服务器的操作。
8. 从 Client License Administrator 中删除所有许可,并退出应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值