[Unity] Obfuscator(3.9.x)最佳实践[1]

RuntimeMapMaker3D-Pro在这里插入图片描述


该文章为Obfuscator插件中文文档


Buttons

对于更强的混淆,考虑以编程方式分配按钮点击:

using UnityEngine;
using UnityEngine.UI;
using Beebyte.Obfuscator;
public class Buds : MonoBehaviour
{
	public Button Button;
	public void Start()
	{
		Button.onClick.AddListener(CodedClick);
	}
	//Assigned in the Start() method
	private void CodedClick() //This gets obfuscated
	{
		Debug.Log("Coded Click");
	}
	// Assigned through the inspector within On Click () +
	// so requires [SkipRename] when obfuscating public mono methods
	[SkipRename]
	public void InspectorClick() //Visible
	{
		Debug.Log("Inspector click");
	}
 }

在此示例中,“CodedClick”将被混淆


Animation Clips

  以与按钮相同的方式,考虑以编程方式添加这些使用AnimationClip.AddEvent(AnimationEvent evt)。

  否则,如果通过 Unity Inspector 分配,请记住使用 [SkipRename] 注释方法


方法

  更多的方法会导致更好的混淆。 遵循良好的软件实践,例如 S.O.L.I.D. 不仅会提高代码的可维护性,而且更难进行逆向工程。


检查您的保护

  使用assembly检查器来验证混淆和/或调整混淆器选项以提高其质量非常重要

  有许多不同的assembly检查员可用。 示例包括 DotPeek(由 JetBrains 提供且免费)和 ILSpy(开源)。

  您可能需要先从最终版本中提取 DLL,您可以在线查找资源来帮助解决此问题。


IL2CPP

  • 查看混淆效果的一种简单方法是在文本编辑器中查看 global-metadata.dat 文件并搜索方法名称
  • 指示混淆器混淆 IL2CPP 构建不需要额外的步骤
  • 请注意,根据 Unity 版本和构建目标,Library/ScriptAssemblies/ 中的程序集不会被混淆。 要查看混淆的表格,请查看 Library/PlayerDataCache/Data/Managed/ 中的表格,或者
  • 您还可以查看 Classes/Native/Bulk_Assembly-CSharp_0.cpp 以查看实际的混淆。

Asset Store 发布/创建库

  如果您打算混淆一个库以供其他人在他们的项目中使用,那么为了避免给您的用户带来麻烦(并可能有助于您的项目层次结构),最好在您创建自己的 [Skip]、[SkipRename] 等版本时 需要他们。

  为此,您应该创建一个类,例如:

using System;
namespace MyCompany.Obfuscator {
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct |
	AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Parameter |
	AttributeTargets.Event | AttributeTargets.Enum | AttributeTargets.Property |
	AttributeTargets.Delegate)]
	public class SkipAttribute : System.Attribute {
		public SkipAttribute() {
		}
	 }
 }

  然后将此属性指定为等效属性,就像使用 Beebyte.Obfuscator.SkipAttribute 一样:
在这里插入图片描述
然后将它们排除在混淆之外:
在这里插入图片描述


混淆器版本

  建议始终使用最新的可用混淆器版本。 向后兼容性始终是鼓励用户经常更新的优先事项。 混淆器对其版本号使用一种语义版本控制:

Obfuscator v[Major].[Minor].[Patch]

  • [Major]
    升级到新的主要版本可能需要额外的配置步骤才能使您的构建成功。 然而,这可能仅在使用某些可选功能时才需要。 主要构建不一定向后兼容。

  • [Minor]
    此版本包含新功能和可能的错误修复

  • [Patch]
    此版本包含错误修复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值