繁体   English   中英

如何查看反编译代码的内容

[英]How to See the content of Decompiled code

我试图混淆我的项目。 我使用了 Unity Asset Store 中的 Obfuscator 插件。 我想看看我的混淆代码是什么样子的。 所以我做了逆向工程,得到了 Assembly-CSharp.dll 文件。 当我在 DNspy 上打开它时,我会检查我的类名,它只显示方法名而不是方法的内容。 我怎么知道我的代码是否被混淆了。 我正在使用 IL2CPP 和 .net 4。有什么方法可以查看方法的内容。 在此处输入图像描述

我建议您考虑改用 Telerik JustDecompile 程序集浏览器和 Skater .Net Obfuscator 来满足您的特定目的。 它使您能够仅对您的Assembly-CSharp.dll的某些特定类进行混淆。 通过使用 Skater .Net Obfuscator,您不需要混淆整个 dll 文件。 然后您将能够在 Telerik JustDecompile 界面中浏览受保护的类。 假设您的Assembly-CSharp.dll 包含几个类,如下所示。 在此处输入图像描述 My_Class_1类的成员很少。 让我们只使用 Skater Obfuscator 来混淆该类。 混淆器有几个界面选项卡,允许用户选择应该保护哪些元素和修饰符。 有“私人成员”、“公共成员”、“字符串”等选项卡。 在此处输入图像描述 转到大多数选项卡并选择与My_Class_1类关联的复选框,如上所示的“字符串”。 Assembly-CSharp.dll的混淆过程完成后,在 Telerik JustDecompile 中打开生成的程序集。 选择My_Class_1类进行浏览。 实际上,我们无法通过其名称找到该类,因为它被混淆了。 我们可以建议那是那个类。 在此处输入图像描述

IL2CPP 基本上是将 c# 代码转换为 c++ 代码以提高效率并获得更好的性能,因此您使用 DNSpy 检查的 dll 是 c++ DLL,反转 c++ 代码并非不可能,但非常困难,您只能使用转储函数名称

IL2CPP 翻斗车

使用此工具的唯一好处是获取内存中的偏移量,因此玩家可以通过更改该偏移量的值在游戏中作弊

您正在使用 Unity 的“Obfuscator”插件,但不知道代码是否正确。 您可以尝试以下方法:

  1. 导入混淆器的Unity包。
  2. 单击该文件以配置混淆选项。

在此处输入图像描述

  1. 启用混淆代码。

在此处输入图像描述

  1. 混淆所有程序集。
  2. 需要混淆的程序集文件名。
  3. 代码中需要混淆的部分,比如类名、方法名、参数等。
  4. 打包apk。
  5. 把apk的后缀改成rar或者其他电脑可以打开解压的压缩文件格式。
  6. 打开相应的文件夹“asset>bin>data>managed”找到你的混淆dll文件。 将其拖入 .NET Reflector 以查看混淆代码。

在此处输入图像描述

在此处输入图像描述

预防措施:

  1. 拖拽赋值的点击事件需要标记[SkipRename]或者不设置混淆方法名,因为方法名会改变。 当你点击按钮时,你自然不会找到你拖上去的方法。
  2. 所有数据类都需要用[Skip]标记,否则里面的属性不能调用。 名称与拖动事件不同。 自然是不能调用的。
  3. 如果第三方插件出现故障,看看是不是放在Plugins文件夹下。 该插件不会混淆 Plugins 文件夹中的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM