簡體   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