問題タブ [smartassembly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ILMerge や SmartAssembly などのツールとマージすると、内部クラスはプライベートになりますか?
最近、Windows アプリケーション内で .Net ライブラリをマージできるツールをいくつか見つけました。
本当の問題は、ライブラリの動作がどのように変化するかです。
- 内部クラスはライブラリの内部のままですか? それとも、マージされたアプリケーションの内部になりますか?
- ライブラリが誤動作する可能性はありますか?
拡張質問:
- 内部のアセンブリをマージするときは、それらがマージされるアプリケーションで使用できないようにプライベートにする方がよいのではないでしょうか?
vb.net - 難読化中のエラー
内部目的で vb.net を使用してプロジェクトを開発し、それを難読化しました。以下のようにエラーを投げています。
「タイプ 'e' のパブリック メンバー 'Var1' が見つかりません。」</p>
コード:
フォーム (FrmMain という名前) は、呼び出し元のプロシージャからこのサブルーチンへのパラメーター 'frm' に渡されます。Var1 などは、その形式のパブリック変数です。
私たちが試した難読化ツールは –
スマートアセンブリ 6
PreEmptive Dotfuscator および Analytics CE (Visual Studio 2012 に付属)
難読化なしでexeは正常に動作しています。
サブルーチンで変数 'Var1' を割り当てているときにエラーがスローされます。コード行を次のように変更すると、難読化された exe が正常に動作します。
FrmMain.Var1= Row("ChangesDbName").ToString
難読化には遅延バインディングが欠けていると考え、小さなサンプル プロジェクトで同様のタイプのコードを試しました。しかし、それにはエラーはありませんでした。この小さなコードを添付しました。しかし、その大きさのため、オリジナルのプロジェクトをアップロードすることはできません。
どうすればエラーを追跡できますか?
私のサンプル アプリケーションのソース コードは、ここにあります。
.net - Smart Assembly で PostSharp アスペクトを含むアセンブリをマージする方法
PostSharp アスペクトを含むアセンブリを SmartAssembly を介してプロジェクトにマージする際に問題が発生し、誰か助けてくれるかどうか疑問に思っていました。
メイン アセンブリはかなり単純で、次のようになります。
MethodDebugLogging アスペクトは、同じアセンブリ内にある場合は正常に機能しますが、それを独自のアセンブリに追加し、SmartAssembly を介してマージすると、次のようになります。
そして、アスペクト自体はかなり単純です:-
例外から、アスペクトを含むアセンブリをマージすると、Postsharp Distributable のアスペクト名前空間が取り除かれるように見えますが、誰かがこれに光を当てることができますか?
ありがとう
ポール
obfuscation - エラーを自動的にログに記録し、SmartAssembly でアプリケーションを終了します
一般的なコードの難読化と、アプリケーションでのエラー報告の両方にSmartAssemblyを使用しています。
アプリケーションで未処理の例外が発生した場合、例外をログに記録し、ユーザーの操作なしでアプリケーションを終了したいと考えています。これを可能にする SmartAssembly プロジェクトを作成することは可能ですか?
SmartAssembly GUI とコマンドラインでプロジェクトを設定しようとしましたが、うまくいきませんでした。以下は私が試したコマンドと引数ですが、これまでのところ、ユーザー入力なしでアプリを終了し、エラーをログに記録する方法を特定できません。
SA プロジェクトを作成します。
プロジェクトをビルドします。
obfuscation - SmartAssembly でのポータブル クラス ライブラリの難読化
次の構成でポータブル クラス ライブラリを作成しました。
この後、ライブラリを SmartAssebly 6.8 に追加してビルドしようとしましたが、次のエラーが発生しました。
これを回避する方法は?SA は正しい mscorelib.dll を見つけましたが、なぜ System.Console が必要なのですか?
c# - MahApps.Metro を単一の exe にバンドルする方法
MahApps.Metro が原因で、SmartAssembly 6 (評価/トライアル) を使用して、C# WPF プロジェクトのすべての依存関係を単一の exe にバンドルするのに非常に苦労しています。
この結論は、MahApps.Metro だけで完全に空のプロジェクトを作成し、それでもバンドルできない場合に導き出されました。
内部例外で例外をスローしますSystem.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
私はこれを解決するために1日半を費やし、エラーをグーグルで調べ、見つけることができるすべての提案を試し、公式のMahApps.Metroチャット(https://gitter.im/MahApps/MahApps.Metro)に投稿しました。System.Windows.Interactivity dll を削除、追加、別のパスに移動するなど、あらゆる種類のバリエーションを試しました。
NuGet の最新の MahApps.Metro パッケージと .NET 4.5 を使用します。プログラムは、Visual Studio 2012 から実行した場合、またはアプリケーションをデバッグ/リリースから実行した場合に機能します。
以前にこの問題に遭遇した人はいますか? どのように解決しましたか?問題はバンドル アプリケーション (SmartAssembly 6) または MahApps.Metro にありますか? 他に、MahApps.Metro で動作することを知っている、または考えているバンドル プログラムはありますか?
c# - SmartAssembly は public 型を難読化します
このフォームを難読化して「デバッグ」すると
出力は次のようになります。
名前: Form1
フルネーム: #Yab.#Zab
質問
なぜFullName
難読化されているのですか?
Form1
public であるため、SmartAssembly はそれを無視すると思います。
追加情報
Form1
はpublic partial
、designer.cs です。
私の SmartAssembly セットアップは次のようになります。
vb.net - .NET難読化 [SmartAssembly]
SmartAssembly と .NET アプリケーションに関する簡単な質問です。- 現在、このソフトウェアを試していますが、コードが難読化されているようですが、My.Settings はまだプレーン テキストで表示されていますか?
そのため、(.NET リフレクターを使用して) コードを難読化する前は、文字通りほとんどすべてを見ることができました。パスワード、IP、MySQL 接続文字列などの多くの情報を含む My.Settings クラスを含みます。
そこで、RedGate の SmartAssembly を使用してコードを難読化し、すべてのクラス/関数などがランダムなシンボルで表示されるようにしましたが、いくつかの項目 (ここでも My.Settings を含む) は変更されていませんか?
SmartAssembly スクリーンショット
難読化された .NET リフレクターの結果
msbuild - ビルドと公開の間の MSBuild カスタム (難読化) ステップ
CI サーバー上に構築している Web アプリケーション (WebAPI Web サービス) があります。VS2013、ファイル システムへの公開プロファイル (*.pubxml)、および CI サーバー タスクからの以下のコマンドを使用して、正常にビルドおよび公開します。
ただし、ソフトウェアを難読化する必要もあります。難読化ツール (Red Gate Smart Assembly) は、csproj ファイル内に配置された以下の xml を介して呼び出されます。
これは正常にビルドおよび公開されているように見えますが、コマンド ライン出力を調べたところ、難読化の前に公開が行われていることがわかりました。
明らかに難読化はビルド後に行う必要がありますが、公開前に行うことは可能ですか?
「BuildDependsOn」ノードを介して難読化を呼び出すように *.pub.xml ファイルを編集するなど、いくつかのことを試しましたが、これによりビルドの前に難読化が実行されます。
ビルドをパブリッシュから分離することは不可能に思えます。現時点で私が持っている唯一のオプションは、2 回ビルドすることです。2 回目のパブリッシュでは、最初のビルドから難読化されたファイルが取得されます。
asp.net - Smart Assembly - プロジェクトの作業を妨げるものは何ですか?
多くのプロジェクトを再利用するいくつかの ASP.NET アプリケーションがあります。まあ言ってみれば
ソリューション/アプリ A にはプロジェクト p1、p2、p3 が含まれ、ソリューション/アプリ B にはプロジェクト p2、p3、p4 が含まれます
両方のアプリケーションですべてのプロジェクトを難読化しようとしましたが、どちらも機能しません。アプリケーション A で p1、p2 を難読化すると、機能します。しかし、アプリ B で p3 と p4 を喜んで難読化することができ、それも機能します。
そのため、p3 を難読化できる場合とできない場合があります。これはソリューション レベルの問題ですが、私たちの質問は、なぜですか? より一貫性のある難読化動作を実現するために、何を回避または確認する必要がありますか?
ありがとう
編集 1
「プロジェクトが機能していないと定義するものは何ですか?」通常、何らかの DLL の問題が発生します。これは、どこかで参照が適切に理解されなくなったことを示唆しています (多くの場合、マージおよび難読化の代わりに埋め込まれている外部 DLL)。そのため、通常の起動時にエラーが発生します。