簡體   English   中英

引用混淆的DLL

[英]Referencing an Obfuscated DLL

我已將DotfuscatorCLI與Visual Studio 2015 Update 3生成后事件命令結合使用.Net DLL。 由於該命令后沒有出現錯誤,因此似乎已成功混淆。

這是命令:

dotfuscatorcli.exe / q / p = SourceDirectory =“ $(TargetDir)\\”,SourceFile = $(TargetFileName)“ $(ProjectDir)Dotfuscator.xml”

這是Obfuscator.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v1.1.dtd">
<dotfuscator version="1.1">
   <propertylist>
      <property name="SourceDirectory" value="This Path Will Be Replaced By Visual Studio" />
      <property name="SourceFile" value="This Filename Will Be Replaced By Visual Studio" />
   </propertylist>
   <trigger>
      <filelist>
         <file dir="${SourceDirectory}\" name="${SourceFile}" />
      </filelist>
   </trigger>
   <output>
      <file dir="${SourceDirectory}\Dotfuscator\" />
   </output>
</dotfuscator>

現在,當我在另一個項目中引用該DLL並嘗試訪問其公共成員時; 我無法再訪問它們。 好像它們沒有在該DLL中定義/公開,並且在intellisense中也不可用。

如果我在對象瀏覽器中查看該DLL,它將顯示帶有一些奇怪名稱的類,例如h,I,m,n等。

為了使用該DLL,我是否在這里缺少某些東西?

任何回應,提示或解決方案將不勝感激。

聽起來您可能已為該程序集禁用了“ 庫模式 ”。 嘗試重新啟用它,這將告訴Dotfuscator自動排除公共類型和成員的重命名。

在@Nathan的幫助下,我能夠解決我遇到的問題。 這是更新的Obfuscator.xml文件中的內容。

<?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v2.3.dtd">
    <dotfuscator version="2.3">
       <propertylist>
          <property name="SourceDirectory" value="This Path Will Be Replaced By Visual Studio" />
          <property name="SourceFile" value="This Filename Will Be Replaced By Visual Studio" />
       </propertylist>
        <input>
        <asmlist>
          <inputassembly>
           <option>library</option>
             <file dir="${SourceDirectory}\" name="${SourceFile}" />
          </inputassembly>
       </asmlist>
      </input>
       <output>
          <file dir="${SourceDirectory}\Dotfuscator\" />
       </output>
    </dotfuscator>

我知道如果我使用dotfuscator UI,它將自動啟用庫模式,但是我故意選擇了CLI方法。 我想對一個項目中引用的35個以上的DLL進行自動化處理並提供通用解決方案。 因此,現在希望采用這種方法,因為它是構建后事件命令方法,所以不僅可以使我的混淆過程自動化,而且可以加快處理速度。 簡而言之,我需要做的就是按“構建解決方案”按鈕,然后完成。

希望這對其他人有幫助。 如果有任何歧義或疑慮,或者您有其他建議,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM