問題タブ [obfuscation]
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.
silverlight - Silverlight と難読化
私は Silverlight にかなり慣れていませんが、本当にクールだと思います。クライアント側でコードを実行する方法について質問があります..
たとえば、ユーザーが入力した金額に基づいて特定の金額を計算するサイトがあるとします。もちろん、これはクライアント側でやりたいです。ただし、問題は、計算に使用される式が独自のものであり、企業秘密であることです。この数式を SL を使用してクライアント側に配置すると、安全になりますか? それとも反映できますか?
php - PHP ソースを暗号化またはコンパイルして、他の人が見ることができないようにすることはできますか? そしてどうやって?
公開した PHP ソースを暗号化する必要があります。
これは可能ですか?PHP を「コンパイル」できますか?
.net - .Net DataSet で列名または列インデックスを使用する方が良いですか?
DataRow から値を取得する場合、列名または列インデックスを使用する方が適切ですか?
列名はより読みやすく、維持しやすくなっています。
列インデックスの方が高速ですが(私はそう思います):
データベースを難読化することにした場合、列名を使用すると壊れますか?
javascript - Google が JS API に使用しているものと同じことを行う Javascript ミニファイヤ (cruncher) はどれですか?
私は Google Maps API (javascript) の開発者です。Google は、次の機能を持つ Javascript ミニファイヤを使用していることに気付きました。
- 変数、プロパティ、引数、クラス、関数、メソッドの名前を短くして、コードを難読化します。(例: 関数 1 -> a、関数 2 -> b、関数 3 -> c)
- 一部の変数、クラス、プロパティ、およびメソッドはクランチしないようにマークできるため、その名前は API マニュアルに記載されているものと同じままです。
- ビルド タスクのように、API の各サブバージョンで再実行されます。バージョンごとに名前が変更されているため、名前が変更されていることに気付きました。
インターネット全体で、これらの機能を備えた Javascript ミニファイアを見つけたことがありません。誰でも知っていますか?
c# - .NET コードをリバース エンジニアリングから保護しますか?
難読化は 1 つの方法ですが、アプリケーションの著作権侵害保護セキュリティを破るのを防ぐことはできません。アプリケーションが改ざんされていないことを確認するにはどうすればよいですか? また、登録メカニズムがリバース エンジニアリングできないようにするにはどうすればよいですか?
また、C# アプリケーションをネイティブ コードに変換することも可能であり、Xenocodeはコストがかかりすぎます。
C# は多くの機能を提供し、私のコードにとって理想的な言語であるため、コードベース全体を C++ で書き直すことは問題外です。
安全な証明書は、.NET の署名付きアセンブリから簡単に削除できます。
.net - 難読化されたビルドとデバッグ ビルド間で逆シリアル化の互換性を維持するにはどうすればよいですか?
{smartassembly} .NET 難読化ツールを自分のシステムで動作させようとしています。現在、一連のシリアル化された辞書クラスにユーザー データを格納し、それらのクラスを逆シリアル化してデータを取得しています。私はすでにアセンブリのバージョン情報を無視しています。その方法が面倒だからです。そのコードはMSDN から改作されています:
問題は、難読化されたアプリがバージョン管理情報を無視するようになりましたが、難読化されていないアプリによって保存されたデータを読み取ることができず、その逆も同様です。アプリケーションをデバッグするには、難読化されていないバージョンが必要になるため、これは私たちにとって非常に大きな問題です。この問題を回避する方法はありますか? データクラスを難読化するべきではありませんか? これはかなり大きなセキュリティ ホールのようです。
javascript - 最高のjavascript難読化ツールは何ですか?
JavaScript難読化ツールの使用を検討しています。最も人気のあるものは何ですか?また、パフォーマンスにどのような影響を与えますか?
c# - C#Windowsアプリケーションのソースコードを非表示にする
私はC#.Net 2.0を使用してWindowsアプリケーションを作成しましたが、ソースコードを非表示にする何かを実行したいので、リファクタリングツールを使用するとソースコードが表示されません。dotfuscatorを使用しましたが、関数名が変更されただけで、すべてのソースコードが変更されたわけではありません。
更新:キーを非表示にするためではなく、コードの動作を非表示にするために、ソースコードを非表示にします。
ありがとう、
.net - 難読化はどのくらい効果的ですか?
別の質問、つまりBest .NET obfuscation tools/strategyでは、ツールを使用して難読化を簡単に実装できるかどうかを尋ねます。
私の質問は、難読化は効果的ですか? この回答に返信するコメントで、誰かが「ソースの盗難が心配なら...難読化は本物のクラッカーにとってほとんど些細なことだ」と言っていました。
私は Dotfuscator の Community Edition からの出力を見てきました。難読化されているように見えます。私はそれを維持したくありません!
難読化されたソフトウェアを単純に「クラッキング」するのは比較的簡単かもしれないことを理解しています。なぜなら、クラッキングしたいもの (通常はライセンス保護) を実装しているソフトウェア内の場所を見つけ、それをスキップするジャンプを追加するだけだからです。
しかし、心配がエンドユーザーや「海賊」によるクラッキングだけではない場合: 心配が「ソースの盗難」である場合、つまり、あなたがソフトウェア ベンダーであり、あなたの心配が別のベンダー (潜在的な競合相手) である場合は、逆-ソースをエンジニアリングして、それを自社の製品に使用したり、製品に追加したりできます...単純な難読化は、そのリスクに対する適切または不十分な保護の程度を示していますか?
最初の編集:
問題のコードは、エンド ユーザー マシン (リモート サービスではなくユーザー コントロール) で実行される約 20 KLOC です。
難読化が本当に「本物のクラッカーにとってほとんど些細なこと」である場合、それが効果的でない理由(「どれだけ」効果的でないかだけでなく)についての洞察が欲しいです。
2回目の編集:
私は、誰かがアルゴリズムを逆にすることを心配していません。それよりも、アルゴリズムの実際の実装(つまり、ソース コード) を自分の製品に転用することを心配しています。
20 KLOC の開発に数か月かかると考えた場合、すべての難読化を解除するには、これより (数か月) かかるでしょうか?
何かを「盗む」ために難読化を解除する必要さえありますか? それとも、正気の競合他社が、難読化されたまま製品に大規模に組み込み、メンテナンスの悪夢であることをそのまま受け入れ、メンテナンスがほとんど必要ないことを望んでいるでしょうか? このシナリオが可能である場合、難読化された.Netコードは、コンパイルされたマシンコードよりも脆弱ですか?
難読化の「軍拡競争」のほとんどは、「ソースの盗難」を防ぐことよりも、人々が何かを「クラッキング」することさえ防ぐこと (たとえば、ライセンス保護/強制を実装するコードフラグメントを見つけて削除すること) を主に目的としていますか?
.net-3.5 - MSI に統合される前にアセンブリを難読化する
セットアップ プロジェクトを含む VS.NET 2008 ソリューションがあります。このセットアップ プロジェクトは、(同じソリューション内の) 私の他のプロジェクトの出力を受け取り、MSI を生成します。これまでのところ、とても良いです... MSI に含まれるアセンブリを難読化してほしいと思います。この難読化自体は単純ですが、この前段階 (難読化) を MSI の構築に導入するにはどうすればよいでしょうか? 誰にもアイデアがありますか?
ありがとう!