問題タブ [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.
obfuscation - ProGuard で OSGi バンドルを難読化する方法は?
現在、ProGuard を使用して Eclipse RCP アプリケーションを難読化しようとしています。問題は、パッケージ名を難読化する (クラス My.Package.Class が abc のようなものに変わる) ことですが、パッケージ名は MANIFEST.MF の Export-Package セクションに保持されます。
これは、MANIFEST.MFs の Export-Package セクションで指定されたパッケージ名を解決できないため、アプリケーション (実際には OSGi バンドルのセット) を実行できないという事実につながります。
ProGuard による OSGi ベースの RCP アプリケーションの難読化に成功した人はいますか? 基本的に、パッケージ名の難読化を完全に無効にするか、MANIFEST.MF の Export-Package セクションを難読化するかの 2 つの選択肢がありますが、いずれも実装する方法が見つかりません。Proguard は、MANIFEST.MF の Bundle-Activator クラス名のみを難読化し、他のすべてのセクションをスキップしているようです。前もって感謝します!
silverlight - Silverlightコードの難読化
Silverlightコードの難読化に利用できる無料のツールの推奨事項を探しています。プロフェッショナルバージョンの難読化ツールはSilverlightをサポートしていますが、コミュニティエディションの難読化ツールはサポートしていません。
Google CodeのObfuscarでは、難読化してはならないすべてのアイテムを手動で指定する必要があるため、XAMLで参照されるすべてのコントロールとプロパティを手動で一覧表示する必要があります。パブリックタイプとメンバーの名前を難読化しないオプションはありません。すべてのパブリッククラスとメンバーを手動で指定しても、他にSilverlightの問題が潜んでいるかどうかはまだわかりません。
コードの難読化の知恵やその欠如について、別の議論を始めることに興味はありません。
java - 難読化されたコードを単体テストできますか?
既存の Ant ビルド スクリプト内で Java Web アプリ コードを難読化しようとしていますが、単体テストに関する問題が発生しています。コードがコンパイルされた直後、jar される前、および単体テストが実行される前に、コードを難読化しています。
ただし、テスト コードではなく実稼働コードを難読化すると、難読化ツールによって名前が変更されたために存在しなくなったメソッドを呼び出そうとするため、すべてのテストが失敗します。特定のメソッドを難読化しないようにマークして、テスト スイートなどの外部システムで使用できるようにすることができます。
テスト クラスも難読化すると、次の 2 つの問題が発生します。
1: 本番クラスとテスト クラスが同じ出力ディレクトリにマージされ、本番 .jar ファイルからテスト クラスを除外できません。
2: 通常の Ant バッチテスト コールを実行できません。
難読化ツールがテストの名前を変更したためです。
結果の .war/.ear ファイルに対して難読化ツールを実行することもできますが、難読化ツールによって引き起こされたバグを排除するために、変更されたコードに対して単体テストを実行したいと考えています。
私は現在、Zelix KlassMaster を使用していますが、まだ評価段階にあるので、他のオプションがより適切に機能する場合は、それを受け入れます。
.net - .NET Microsoft Office アドインを難読化するツール
私は、.NET Microsoft Office アドインを開発するチームで働いています。私たちは、ライセンス手続きを保護するのに役立つ難読化ソリューションを検討しています。主に、Dotfuscator Professional や smartassembly などのツールを検討しています。
私の最初の質問は、Office アドインで smartassembly を使用した経験があるかどうかです。Dotfuscator Community Edition はこれらで動作しないため、Professional を検討していますが、smartassembly の販売資料にはこの問題についての言及はありません。その点での経験はありますか?
2 つ目は、MSBuild を使用して smartassembly の使用を自動化した人がいるかどうか、つまり、Visual Studio をインストールするメリットがないかどうかです。
難読化の相対的なメリットについてコメントするのに時間を無駄にしないようにレスポンダーに知らせたいと思います。私はその問題に関する最新のスレッドを最新の状態にしています。昔、王様は城を建てましたが、時には崩れ落ちました。私は今でも毎朝出勤するときは玄関に鍵をかけています。
.net - .Net OnSerializingAttribute を使用して変数名を変更しますか?
アプリケーション コードを難読化しながら、シリアル化を使用してアプリケーション データを保存できるようにするために、シリアル化されたすべてのメンバーの名前をカスタムのシリアル化名にマップしたいと考えています。ISerizableInterface を実装することでこれを実現できることはわかっていますが、MSDN では、シリアル化に OnDeserializedAttribute、OnSerializingAttribute、OnSerializedAttribute、および OnDeserializingAttribute を使用することを提案しています。そのため、OnSerializingAttribute を使用してメンバーの名前を変更したいと思います。問題は、メンバーがシリアル化される名前を明示的に決定する方法が見つからないことです。
OnSerializingAttribute を使用してシリアル化の名前を明示的に定義することは可能ですか?
javascript - 邪魔にならないアンチスパム電子メールの難読化ツールはありますか?
Web サイトにリストされている電子メールでスパムの可能性を減らすために、JavaScript 電子メール難読化ツールを考え出そうとしています。現在、HTMLエンコーディングとJavaScriptの組み合わせを使用して、難読化された電子メールを通常の電子メールに透過的に変換するJavaScriptベースの難読化ツールを入手しました。
私がすることはこれです:
リンク内の href の「mailto:」部分を次のように HTML エンコードされるようにフォーマットします。
また、メールをエンコードし、@
記号をに置き換え(a)
て、メールが次のようになるようにします。
(a)
次に、いくつかの JavaScript を使用して、電子メールにこのサインがあるすべての mailto リンクを解読し@
、ページの読み込み時に変換します。
これはかなりうまく機能します。JavaScript が有効になっているブラウザーを使用している場合、すべてが正常に機能していることがわかります。JavaScript が有効になっていない場合、私が知っているすべてのメール クライアントは電子メール アドレスを無効と見なしますが、ユーザーは記号を修正するために何が必要かを推測できるはずです。
Web ページ上の電子メールを難読化するためのより良い (邪魔にならない (またはせいぜい、あまり邪魔にならない) が、よりスパマーに強い) 方法があるかどうか疑問に思っていました。
あらゆるタイプの難読化と同様に、人間またはコンピューターが難読化を簡単に解除できる場合、スパマーも同じことを簡単に行うことができます。このため、誰にでもできる難読化は期待していませんが、他にどんな提案があるのか知りたいと思っていました。Google で検索しても、現在のソリューションより優れていると思われるソリューションは見つかりませんでした。他に良い代替品はないかと考えていました。
c# - 多くの文字列を置き換えるより良い方法 - C# での難読化
大量のデータを難読化しようとしています。置き換えたい単語 (トークン) のリストを作成しました。次のように、StringBuilder クラスを使用して単語を 1 つずつ置き換えています。
かなり遅いです!スピードアップするためにできる簡単なことはありますか?
tokensは、それぞれ 5 ~ 15 文字の長さの約 1,000 個の文字列のリストです。
ruby - このコードが冗談ではない場合、一体どのように機能しますか?
誰かがこれが何をするのかを説明するのに挑戦したいですか?それは私があまりにも賢いコードについて尋ねた質問の答えとして現れました。しかし、それが単なる冗談であるかどうかを判断するのは賢すぎます。そうでない場合は、誰かが説明したいと思ったら、それがどのように機能するかを知りたいと思います。
c - メインへの3つの議論、および他の難解なトリック
次の難読化されたCコードは、「12日間のクリスマス」に単語を出力します。
私はそれがどのように機能するかをパズルで解こうとしていました。私は基本的に完全に失われています。最初の呼び出しでのmainへの3つの型指定されていない引数、最初の戻り後の一連の文字、mainへの呼び出しへの負の数値引数の重要性は何ですか?えっ!
私は主にこの考えを行っています。多分私はC言語のいくつかの興味深いコーナーを学ぶでしょう、それでその静脈での返事は大歓迎です。