問題タブ [dotfuscator]
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# - アセンブリが難読化されると、JsonConvert.DeserializeObject() が不明なオブジェクトを返す
2 つのプロジェクトを含む C# ソリューションがあります。1 つはメイン アプリケーションで、もう 1 つはライセンス プロジェクトです。プロジェクトは順調に進んでいます。json を使用してライセンスの詳細をシリアル化しました。今度は、ライセンス プロジェクトを難読化して、詐欺やハッカーから保護する必要があります。Dotfuscator
難読化の目的で使用しました。以下の行を使用して、アプリケーションが受け取ったライセンスの詳細を逆シリアル化しました。
xmlDocument.LoadXml(xml);
details = xmlDocument.SelectSingleNode("/license/details");
licenseDetails = JsonConvert.DeserializeObject<LicenseDetails>(details.InnerText);
この行は、難読化後に不明なオブジェクトを返しますI
が、難読化前はうまく機能していました。
難読化前の戻り値
licenseDetails == Shared.Licensing.Client.LicenseDetails
難読化後の戻り値
licenseDetails = I
私のXMLファイルは
<?xml version="1.0" encoding="utf-8"?>
<license>
<details>{"Product":"Outlook Templates","ProductVersion":"1.0.0.0","Username":"Demo","Serial":"1fKxUCJylsm+qVUccjUn8gYNVgDc4pE5OuqYs48vkaQ=","RegistrationDate":"\/Date(1326202832909+0200)\/","ExpirationDate":"\/Date(1330387200000)\/","PayloadEntries":[{"ValueType":2,"EntryName":"MaxNumProviders","Operation":1,"EntryValue":"3"},{"ValueType":2,"EntryName":"MaxNumQuick","Operation":1,"EntryValue":"5"},{"ValueType":2,"EntryName":"ExpirationDaysOffset","Operation":1,"EntryValue":"30"}]}</details>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>c/BK0YOhnW8cXUGxTJx3mpWQj1U=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>gWYcpr3OBhUoiPEFyWskgoRcDw5rO2RWNbMulXSXg2tsKWebEFqgptCUfr7JRvvSjm4kALyvU7mZviJI/peJWmJC69gs7QDMEOWLvrOa0TL1qyO5K5onCBZopJUdrPE0PJCVYRacasI3DvTOSo+IDEOSFVpEWZNcERhB6ZkOFrU=</SignatureValue>
</Signature>
</license>
難読化中に何が問題になるのかわかりません。
wpf - 難読化プロセスの高速化
そのため、Dotfuscator (プロ版 - クライアントがライセンスを持っているもの) を介して出力アセンブリを難読化する必要がある、中程度から非常に複雑な WPF アプリケーションがあります。
3 つの問題:
OutOfMemoryException
難読化プロセスは、約 85% の確率でクラッシュします。- 長い時間がかかります - 平均的な難読化パスが完了するまでに約56分かかります
- リフレクションベースのルックアップからリソースまで、難読化されたアセンブリでアプリがクラッシュする原因となるさまざまな問題が山ほどあります。
最初の問題は、GUI ではなくコマンド ラインから実行することで軽減できました (少なくともクラッシュしません)。3 つ目は、すばやく反復できればそれほど大きな問題にはなりません。 1 営業日あたり 5 回の試行ではなく、オプションの組み合わせ。
私を殺しているのは本当に合計時間です。難読化にかかる時間を劇的に改善するための「クイックフィックス」のアイデアを知っている人はいますか? 私が行った間抜けなことが、プロセス中にある種の「蒸気ロック」を引き起こし、処理時間を増やしている可能性はありますか? 別の難読化ツールを使用するようにクライアントに圧力をかける必要がありますか?
いくつかの詳細:
- 約。アプリケーション内の 38 個のアセンブリ/exe (そのうち 5 ~ 10 個は「アーティファクト」としてマークされたサード パーティの dll であり、難読化されません)
- ボックスは、VM ではなく、やや強力な物理サーバーです。
- 各アセンブリを個別に処理するのではなく、構成ファイルを使用して難読化ツールを駆動しています。
- 生成されたリソースなどのために、上記の構成ファイルですでにいくつかの除外をマークしました
- すべてのアセンブリは「ライブラリ」としてマークされています
どんな考えや SWAG も大歓迎です。
dotfuscator - Dotfuscator Community Edition を使用して WCF プロキシ クラス dll を難読化する方法
Dotfuscator と Analytics Community Edition [Version-5.5.45] を使用しています。dll を難読化したいのですが、その dll 内のすべてのクラスは難読化されていますが、Dotfuscator Community Edition では wcf プロキシ クラスは難読化されていませんか? dotfucator community edition で wcf プロキシ クラスを難読化することは可能ですか? 通常の難読化を試みると、Smart Obfuscation ページで次のように表示されます。Property: mypropertyname::ShouldSerializePrompt は、次の理由により Net30Rule によるメタデータ ストリッピングから除外されました: mypropertynameis は System.Runtime.Serialization.DataContractAttribute で装飾されています。メソッド: mymethodname::void .ctor(string, System.ServiceModel.EndpointAddress) は、次の理由により Net30Rule によって名前変更から除外されました: mymethodname は名前変更から除外されました。ユーザー タイプ: usertypname は、次の理由により Net30Rule によって名前変更から除外されました: usertypename は名前変更から除外されました。
アイデアを得ることができますか?
wpf - WPF アプリケーションでの BAML の Dotfuscating
「またね、
私の Dotfuscation への取り組みは続きます。そのため、私は現在、〜38個のアセンブリで構成されるかなり複雑なWPFアプリケーションの難読化に取り組んでいます。パフォーマンスの問題 (難読化プロセスの高速化) を克服したので、Dotfuscator v4.10 の BAML 難読化機能のテストに進みました。
問題は、それが機能していないことです-生成されるエラー(まあ、警告)はすべて同じ形式であり、それについて議論しているネット上には何も見つかりません:
誰かがこれに出くわし、それが私に何を変えさせたいのかについての洞察を持っていますか?
[編集:] 文句を言うプロパティに手動で除外を設定しても、警告は削除されません...そして、基礎となるBAMLがまったく変更されているようには見えません(少なくともリフレクターによる視覚的なチェックではありません)。
[編集 2:] また、ここでは Dotfuscator が必要条件であることを述べる必要があるため、代替ツールはおそらく役に立たないでしょう。
.net - Microsoft.Bcl.Async を参照するアプリケーションで Dotfuscator を使用できない
XP をサポートするために、私のプロジェクトの 1 つは現在 .NET 4.0 を対象としており、.NET 4.5 の非同期機能に Microsoft.Bcl.Async を使用しています。
問題は、Dotfuscator (プロフェッショナル バージョンまたは VS 2012 に含まれるコミュニティ エディションのいずれか) を使用して、生成されたアプリケーションを難読化することができなくなったことです。
難読化された実行可能ファイルを実行しようとすると、プログラムが次のエラーでクラッシュします。
アセンブリ 'System.Runtime、バージョン = 2.5.19.0 から型 'System.Object' を読み込めませんでした
そのエラーは、次の Microsoft.Bcl.Async に必要な app.config 設定から発生しているようです。
ベンダーによって修正された別の難読化ソフトウェアを使用して、他の誰かが同様の問題に遭遇したようです。
これを修正するためにできることはありますか? または、これは Dotfuscator の問題ですか? (公平を期すために、すべての問題は、Microsoft が XP で .NET 4.5 をサポートしていないことが原因です...)
.net - プリエンプティブ Dotfuscator
次の投稿で簡単な回答をすでに見ました。
「j8」の型初期化子が Visual Studio 2012 の例外をスローしました
私はレジストリの経験があまりないので、誰かが私をもう少し案内してくれますか、別の解決策がある場合は説明してください.
どうもありがとう!!