2017-02-13 15 views
0

私はVisual Studio 2015 Update 3 Post BuildイベントコマンドでDotfuscatorCLIを使用して.Net DLLを難読化しました。このコマンドの後にエラーが表示されないので、正常に難読化されたようです。ここで難読化されたDLLの参照

はコマンドです:

dotfuscatorcli.exe/Q /P = SourceDirectory = "$(TARGETDIR)\"、SOURCEFILE = $(TargetFileNa私) 「$(PROJECTDIR)Dotfuscator。私は別のプロジェクトでそのDLLを参照し、アクセスしようとすると、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で定義されていない/公にされていないかのようであり、intellisenseでも利用できません。

このDLLをオブジェクトブラウザで表示すると、いくつかの奇妙な名前のクラスが表示されます。 h、I、m、nなど

このDLLを使用するには、ここで何か不足していますか?

すべての応答、ヒント、または解決方法があります。

+3

パブリックタイプとメンバーを難読化しないでください。通常、難読化者はそれを知っています...あなたは何を使用していますか? –

+0

また、別の投稿にリンクして私たちにそれを理解させるようにしてはいけません....リンクはOKですが、あなたの質問の本文にも実質的な詳細*を載せてください。 –

+0

質問を更新し、使用しているコマンドを書きました。他の情報が必要な場合はお知らせください。 –

答えて

0

@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のアプローチを選択してください。 1つのプロジェクトで参照されている35以上のDLLに自動化して汎用的なソリューションを提供したいと思います。 このアプローチでは、難読化のプロセスを自動化するだけでなく、ポストビルドのイベントコマンドアプローチなので、スピードアップすることを願っています。要するに、私がする必要があるのは、プレスビルドソリューションボタンとその完了です。

これは他の人に役立つことを願っています。あいまいさや懸念がある場合、または他の提案がある場合はお知らせください。

0

おそらくが無効になっているようです。このアセンブリではLibrary Modeです。再度有効にしてください。これにより、Dotfuscatorはパブリックタイプとメンバーの名前の変更を自動的に除外します。

+0

ありがとう@Nathan。質問を更新しました。そこにXMLファイルが表示されます。私は明示的にモードを無効にしませんでした。 –

+1

@AzazulHaq、問題はconfigファイルレベルで*ライブラリモードを有効にする必要があることです。 UIを使用して設定ファイルを生成すると、デフォルトで有効になります。そのブログ記事の設定ファイルにはそれがないので、それが混乱の原因です。 XMLを手動で編集する方法については、[ユーザーガイドの関連セクション](https://www.preemptive.com/images/stories/Dotfuscator/webframe.html#)を参照してください。 Library_Mode_By_Assembly.html)。 –

関連する問題