# [工具下载](https://clienttool.dun.163.com/api/v1/client/jarTool/download)

## 功能介绍

### 高性能保护壳

易盾提供了一种高性能的 PE保护壳，对游戏启动 时间影响极小，且在保证保护壳强度的基础上，不影响游戏实际的运行性能。被保护PE 中的代码将无法被静态反编译，即使攻击者绕过了加固中包含的反调 试等手段，也无法在内存中找到完整连续的真实指令，大大提高攻击者的破解分析成本。

### **VMP代码虚拟化保护壳**

易盾提供对于引擎中或者单独sdk的虚拟化保护功能，在保护强度和游戏性能之间寻找一个极致的平衡，在不牺牲性能的前提下，大大提高了保护强度。

### **unity DLL加密保护**

易盾安全加固方案提供对游戏脚本的加密功能，目前独家提供 Unity3D 函数级加密、Mono DLL 自定义格式加密功能，将粒度细化到 IL 指令以及 Mono 加载的运行时中，使用自定义 的加载逻辑替换解释器原有加载逻辑，大大提高了破解者的分析门槛。

### **unity-il2cpp global-metadata.dat保护方案**

易盾端游加固方案默认加密global-metadata.dat，且会对unity-il2cpp导出函数隐藏防止Il2cppDumper等破解工具。

### **资源文件加密**

ab资源以及静态资源作为游戏引擎游戏中的核心资产，易盾端游保护同时支持对 Unity3D AssetBundle 资源进行加密，以及热更资源加密。 防止因为资源被破解、被泄露等造成的损失。

## 使用说明

该加固工具为jar包文件，适用于Windows、Linux以及Mac系统，以下均以Windows环境下描述，其他系统环境使用方法类似。下载地址[点击下载](https://clienttool.dun.163.com/api/v1/client/jarTool/download)。



**注意事项：加固后的pe 文件，例如 exe 或者 dll 等，请用您的企业签名对其进行签名处理，否则可能会触发一些安全软件的误报。**

### 使用方式

注意：加固项由易盾后台进行配置，请联系易盾技术支持人员。

命令行模式（注意，第一次使用需要配置config.ini文件）

### **设置appkey**

用户需要将appkey填写在该配置文件中，格式如下所示。appkey请在官网登录账号后加固服务-服务管理获取。

\[appkey\]

key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

### **注入nep2.dll智能风控**

配置方法
``````
java -jar NHPProtect.jar -WinEnc -yunconfig -input /xxx/test.exe
``````
### **unity引擎整包加固**
``````
java -jar NHPProtect.jar -WinEnc -yunconfig -enginetype u3d_il2cpp -u3dastenc -target game.exe -input %path/to/il2cpp/game/zip%
``````
| 参数 	| 说明 	|
|---	|---	|
| -yunconfig 	| 必填项，表示自动从易盾后台获取加固参数,加固配置已经在后台部署，可以根据实际情况调整 。 	|
| -target [pe_filename] 	| 指定zip 内的 pe 文件名，示例：-target    test.exe 	|
| -enginetype [type] 	| type值可选 u3d_mono, u3d_il2cpp, 不填该参数时默认为DEFAULT，表示常规应用，不接入游戏引擎保护功能 	|
| -u3dastenc 	| 加密Unity3D的Asset Bundle，仅在enginetype为u3d_mono或u3d_il2cpp时生效 	|
| -dll [mono_dll_list....] 	| 指定需要加密的mono dll文件名，可跟多个文件，仅支持用户自定义代码的dll，如Assembly-CSharp.dll和Assembly-CSharp-firstpass.dll和一些插件dll，仅在enginetype为u3d_mono时生效 	|
| -winVmpList a.dll,b.dll  	| 对指定 dll 做 vmp 处理，-winVmpList a.dll,b.dll  ，适用于il2cpp的 dll 	|

### **单独 ab 资源加密**
``````
java -jar NHPProtect.jar -WinEnc -SingleAstEnc -input xxx.zip
``````
ps：单独加密的 ab 资源需要带-u3dastenc加固包加固后才可以解密加载。

为了避免ab资源文件过大，导致的整体加固流程偏长，端游支持ab资源本地加固的功能。

1：将ab资源的文件夹迁移出原有文件夹，即 xx_Data/StreamingAssets 下的文件。

2：对迁移后的原文件夹进行zip打包，走正常的Unity加固逻辑。

3：将迁移的文件夹进行命令执行，走本地资源加固，加固直接会覆盖本地的文件，请注意备份原始文件。
``````
java -jar NHPProtect-exe.jar -WinEnc -winClipping -SingleAstEnc -input %path/to/asset/file%
``````
### **单独pe处理**

若需要单独对pe 文件处理，以testdll.dll为例：

需要在与testdll.dll为同⼀层级内添加testdll.dll.nvmp⽂件，nvmp⽂件格式如下：
``````
<?xml version="1.0" encoding="UTF-8"?>
<NVMP>
    <NProcedure Address="" Type=""/>
    <NProcedure Address="" Type=""/>
</NVMP>
``````
Address内填写10进制的虚拟地址或者相对虚拟地址。

Type只能输⼊固定的值：

当为1时，表⽰开启混淆。

当为2时，表⽰开启虚拟。
``````
java -jar NHPProtect.jar -WinEnc -SingleStaticVM -useVMP -input 存放testdll.dll与testdll.dll.nvmp的⽂件夹
``````