web-dev-qa-db-ja.com

ConfuserExの使用方法

このプログラムを試してみたいのですが、使用方法がわかりませんでした。

私は著者のサイトで検索しました https://github.com/yck1509/ConfuserEx ですが、このサイトの例は私のようなプログラミングの初心者にとっては十分に明確ではありません。

だから私はここに質問を投稿して、誰かがそれを平易な英語といくつかの例で使用する方法を教えてくれることを期待しています。それはとても素晴らしく、とても感謝しています。

31
andrewfam

ここから最新のバイナリバージョンを取得します。 https://github.com/yck1509/ConfuserEx/releases

コマンドライン(Confuser.CLI.exe)で使用する場合:

Confuser.CLI.exe  myProjectFile.crproj

プロジェクトファイルの例:

<?xml version="1.0" encoding="utf-8"?>
<project baseDir="c:\" outputDir="c:\Confused" xmlns="http://confuser.codeplex.com">
    <rule preset="none" pattern="true">
        <protection id="anti debug" />
        <protection id="anti dump" />
        <protection id="anti ildasm" />
        <protection id="anti tamper" />
        <protection id="constants" />
        <protection id="ctrl flow" />
        <protection id="invalid metadata" />
        <protection id="ref proxy" />
        <protection id="rename" />
        <protection id="resources" />
    </rule>
    <module path="ICSharpCode.AvalonEdit.dll" />
    <module path="ICSharpCode.Decompiler.dll" />
    <module path="ICSharpCode.NRefactory.dll" />
    <module path="ICSharpCode.NRefactory.CSharp.dll" />
    <module path="ICSharpCode.NRefactory.VB.dll" />
    <module path="ICSharpCode.TreeView.dll" />
    <module path="ILSpy.BamlDecompiler.Plugin.dll" />
    <module path="ILSpy.exe" />
    <module path="ILSpy.SharpDevelop.LGPL.dll" />
    <module path="Mono.Cecil.dll" />
    <module path="Mono.Cecil.Pdb.dll" />
</project>

cmd line

構成ファイル形式: https://github.com/yck1509/ConfuserEx/blob/master/docs/ProjectFormat.md

GUI(ConfuserEx.exe)で使用する場合:

gui

  1. [プロジェクト]タブ
    1. ベースディレクトリを選択する
    2. +ボタンをクリックしてDLL(モジュール)を追加します
  2. [設定]タブで
    1. <グローバル設定>をクリックします
    2. [+]ボタンをクリックします。新しいルールが追加されます。パターンが一致すると、ルールが実行されるため、「True」はルールが常に実行されることを意味します。
    3. [編集]ボタンをクリックします。
    4. プリセット「最大」を選択して閉じます
  3. [保護]タブ
    1. 保護をクリックしてください!
62
Naster

この回答は、(A)相互に参照する可能性のある複数のプロジェクト、および(B)Visual Studioセットアッププロジェクトでの難読化の自動化を検討しているソリューションがある場合を対象としています。

1)各プロジェクトで、Confuser.crprojテキストファイルをプロジェクトのフォルダーに直接追加します。このフォルダーには、「bin」、「ob」、「resources」などのフォルダー内が表示されます。 no Visual Studioでこれらのファイルをソリューションに添付する必要があります。テキストファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<project baseDir="obj\Release" outputDir="..\Release" xmlns="http://confuser.codeplex.com">
    <rule preset="none" pattern="true">
        <protection id="anti debug" />
        <protection id="anti dump" />
        <protection id="anti ildasm" />
        <protection id="anti tamper" />
        <protection id="constants" />
        <protection id="ctrl flow" />
        <protection id="invalid metadata" />
        <protection id="ref proxy" />
        <protection id="resources" />
    </rule>
    <module path="MyLibrary.dll" />
    <probePath>..\..\bin\Release</probePath>
</project>

MyLibrary.dllをプロジェクトの出力に置き換えます。 (実行可能ファイルの場合は、.exeを.dllに置き換えます。)

ConfuserEXは相対パスに異なる開始点を選択するため、ファイル内のパスが奇妙に見えるのはこのためです。

このステップの重要な要素は、各プロジェクトの「obj」出力を難読化することです。これは、Windowsセットアッププロジェクトが難読化されたバージョンを取得できるようにするためです。

2)各プロジェクトのビルド後イベントに、次のようなビルド後イベントを追加します。

if "$(ConfigurationName)" == "Release" $(SolutionDir)..\ConfuserEX\Confuser.CLI.exe $(ProjectDir)Confuser.crproj

最初の条件は、Releaseでビルドするときにのみ難読化することです。ここで、Confuser.CLI.exeのパスに一致するようにパスを調整する必要があります。ソリューションのルートフォルダーと一緒にConfuserEXフォルダーがあります。

3)セットアッププロジェクトで対処する必要がある問題は、パッケージが難読化されたバージョンを確実にピックアップするようにすることです。セットアップには、各アセンブリをどのフォルダーから取得するかを決定するためのあいまいなロジックがあります。適切なものをピックアップするように強制します。このためには、次のことが必要です。

(3a)すべてのプロジェクトを「プロジェクト出力」として追加します。これにより、「obj」フォルダー内の難読化されたファイルがパッケージに含まれるようになります。

(3b)セットアッププロジェクトの「検出された依存関係」セクションを確認します。プロジェクトの1つによって生成された依存関係が表示されたら、そのプロパティに移動し、Exclude = Trueとしてマークします。これにより、パッケージ内の難読化されたバージョンが、推論プロセスのために難読化されていないバージョンに置き換えられないようにします。

2
integrative.io

問題に苦しんでいる他の人のために:私はそれをダウンロードしたが、マスターはdnlibを失っている。 dnlibを個別にダウンロードして、dnlibフォルダーにコピーしてからコンパイルできます。

それはほとんどの場合に機能するはずですが、私のexeに対しては、どのexeでも「不適切なdos形式」エラーが発生しました。 vs2015と4.5.3(.net 5または6、または今すぐ呼びたいものは何でも)に更新してからだと思います。多分それだけだと思った。しかし、そうではありませんでした(最高のコンパイルは4.5でした)。

グーグルを見ると、私の仮定では、ファイルを更新できなかったため、1時間を費やし、クラスからタプルを.net 4タプルに変換しました。すべてのプロジェクトを4.5に更新します。

可能であれば、GitHubのフォークを確認し、ダウンロードしてからコンパイルする必要があります。サイトからコンパイルする必要がありますが、コンパイルはしません。これは素晴らしい製品だと思います。ジュニア向けに作られていないため、少し荒いです。たぶん、あなたはEXEへのリンクを持っているだけでしょうか?これは、人々がコンパイルの問題に対処しないようにするのに役立つかもしれません。

ところで、本当に良いものは、これは多くのことをしているように見えます。有料のものでも、学習に少しのカーブはありません。

別のメモは、そこにRuntimeEnvironment.GetSystemVersion()[1] == 4があるように見えますが、おそらく(いくつかの解析を行うと)RuntimeEnvironment.GetSystemVersion()[1] > 3.9になるはずなので、4と4.5を取得します

**更新。 4.5に更新され、ドラッグアンドドロップが機能しなくなりましたが、上記のように機能します。 4.5.3を使用していましたが、新しい機能は使用していません。

結局、編集して、動作するかどうかを説明します。 https://OneDrive.live.com/redir?resid=88D92E4D40C0593C%21105

上記で行く。

2
Mark Rowe