質問

いロックを作成Javaクラスの防止decompilation?

っこゲレンデまで少し歩きますが話題のインターネットが、私には至らず、これかを参照します。

多くの人のように示唆するobfuscatorが、日本だけでなく名を変更したい授業方法の分野に強で覚え文字シーケンスを聞いても感度定数値?

例えば、開発した暗号化-復号化成分に基づくパスワードベースの暗号化技術。現在この場合、平均Java人で使用 JAD を逆コンパイルのクラスファイルを簡単にパスワードを回復する値を指標として定)など とにつながるよう期待していますを復号によるデータの書面に小さな独立したプログラム!

またはこのような敏感な部品建ネイティブコード(たとえば、VC++版)を呼び出してください JNI?

役に立ちましたか?

解決

一部のより高度なJavaバイトコードobfuscatorsいから、クラス名の難号化. Zelix KlassMaster, 例えば、スクランブルコードで流れると本当に難し、作品として優れたコードオプティマイザ...

また多くのobfuscatorsることもできるスクランブル文字列定数および削除用のコードです。

することができるソリューション(必ずしものを除くの難読化)を利用 暗号化されたJARファイル およびカスタムクラスローダの暗号解読(好ましくは利用のネイティブ実行時の図書館)

第三に(そしておそらく、最強の保護)でアーカイブにより容量を節約前にコンパイラのように GCC または エクセルシオールジェット, 例えば、コンパイルのJavaコードを直接プラットフォーム固有のネイティブのバイナリ.

の場合においてしまったのを覚えていて、言にエストニア"ロックのための動物".このプロジェクトをコードが利用可能(現在メモリにロードされている間、実行され十分なスキル、意欲、人々ができ、逆コンパイル,unscramble、ハッキングコード...お仕事は、ただのプロセスを不快にしてできるだけのものでした。-

他のヒント

において自らアクセスの両方に暗号化されたデータやソフトウェアのみ復号化であり、基本的にはできるのです。これを解決の前には何らかの形で外部ブラックボックス取扱いを暗号化/復号化、ドングル、リモート認証サーバー等そして、これらのユーザーはフルにアクセスシステム、これだけでも難しいでなければできる提携により直接製品の機能に格納された"ブラックボックス"として、オンラインゲームサーバー

免責事項:私は安全保障。

この音のように悪いこと:使う人の暗号化かに隠れたキーをお願いします。とは思わない動作させることができる。

も左右非対称鍵仕事ができる:

  • コ暗号化されたライセンスで公開鍵を復号する
  • うお客様に新しいライセンスにお送りしますのための暗号化
  • お送りして新しいユーザーライセンスす。

なんなのか、私のコンサルティング/クライアントの実際の暗号化のライセンスキーの公開鍵のやりくりは夫婦で別にされていました。その後復でプライベートキーの再暗号化します。

きし、別の場所に保管しておく公開鍵と秘密鍵のペアを最初にお客様のだと実際に得ているものを右からお客様-現在 責任のキー...

どんなおいでになるので、できるだけdecompiled'.タッチパネルできるため、分解します。やメモリダンプを見つ定数.のコンピュータのニーズを知るようになり、コードが必要です。

どうするかということ。

そうしないと船をキーとして一定のハードコードコード:だしユーザーごとに設定あり。のユーザーの責任についています。

@jatanp:しみいただけるよう、逆コンパイルを取り外してライセンスコード、および再コンパイル.Javaはしないんできないことがあり、ハッキング防こうした問題をクリアできる.な悪少なドングルを回避することがこのJava.

自分のビジネ気のことだと思います。その後、再度売ン向けのアプリケーションを大企業が増加することが大きな要因と規ライセンス条件--一般的に安全な環境のbeanのカウンターや弁護士の法decompilingすることができるため不正な場合には自国の免許証を書きます。

そこで、お願いい 本当に 必要性硬化の保護などでご利用していますか?何があなたの顧客基盤の音も聞こえてきます。(企業?または代のゲーマー質量は、この問題?)

ばんざいライセンスの溶液に、チェックできる TrueLicense API.での使用に基づいた非対称鍵となります。しかしない申請ができなひび割れアプリケーション毎で破られる可能性が十分なのです。何が本当に重要なのは、 Stu回答,コーヒーに飽きたら寿司にどのように強力な保護があります。

とは思わないが存在する有効なオフライン海賊対策方法です。の家庭用ゲームのゲーム業界をリードしたすべく、そのプログラムは常にひび割れの唯一のソリューションでは、プログラムが必要であるオンラインに接続おサーバできるように検証するlincenseキーは、ただひとつの活動connecionライセンシーによります。こうして World of Warcraft または ディアブロ ます。も厳しいが、民間サーバーの開発とバイパスします。

とはいえ、とは思っていない中/大企業使用の違法コピーソフトウェアでのコストのライセンスは最小限のもわかんないいくらいgoigるためのプログラム)に比べコスト試用版公開を開始します。

利用できるバイトコードの暗号化のない恐れおののきました。

それは、上記論文"ひび割れJavaバイトコードの暗号化を含むロジック誤.の請求項の用紙で ランニング前にはすべての授業は暗号解読が行われ、渡される ClassLoader.defineClass(...) 方法.でもそうではないですね。

の仮定の話はこちら いを走る本格、標準のjava実行時の環境.なものではない義務は、保護されたjavaアプリだけでなく打上げにこれらのクラスでも復してい ClassLoader.その場合には、標準のJREできない遮断 defineClass(...) 方法では、標準のjavaなAPIではこの目的のため、ご利用の場合は修正済みのJREとパッチ ClassLoader その他の"ハッカート"ができないので保護されjavaアプリ動作しませんでしまっても遮.とは絶対になる"パッチファインダー"を使用するコツを使による記事を日本語訳したものです。これらの技術の詳細は別の話です。

Q:れば暗号化あるいはmy.クラスファイル用のカスタムクラスローダへの負荷および復号に乗り、この防止decompilation?

A:この問題を防ぐJavaバイトコードdecompilationはほとんどの言語そのものです。ものの範囲の難読化ツールの利用可能な初心者にはJavaプログラマを続けることから新たな味などについて、さまざまな工夫をしています。このJava Q&Aった場合に払拭一部の神話の周辺アイデアを頻繁にrehashedでのディスカッション-フォーラム.

極端に分かりやすくするJava.クラスファイルが復元できるというJava源に近い原多いのJavaのバイトコードの設計目標は、貿易-ロードします。そうするJavaバイトコードされたコンパクト、プラットフォームに依存ネットワークの移動や分析によるバイトコードは、通訳者及びJIT(just in time)/ホットスポットに動的コンパイラでコンパイル.言の取りまとめを行いました。クラスファイルのプログラマのための意思いを明確になっている場合には、そのやすく解析より、オリジナルソースコードです。

複数のものができない場合には予防decompilation完全に、少なくともいます。として用いられているとともに、ポストパ歩きマッサージ。クラスデータのバイトコードのどちらかく時decompiledは難ンジニアリング、逆アセンブルへの有効なJavaコードです。技術などを行法の名称過負荷にも、その一方で、操作制御の流れを制御構造できない表現を通じてJava書式]仕事の後になります。により成功を収め商obfuscators使うこと。

残念ながら、は、両方の実際の変更コードのJVMでは、多くのユーザーが怖い(当然で)この変換を追加新しいバグを願います。さらに、メソッドやフィールド名を変更したいが原因で反射電話を停止作業。変化する実際のクラスのパッケージ名で複数のその他のJava Api(JNDI(Java Naming and Directory Interface)、URLプロバイダなど).ほかに改名の場合、協会とクラスのバイトコード-オフセットやソースの行番号を変更しな回復元の例外をスタックトレースが困難である。

そしてもう一つのオプションのobfuscating、元のJavaソースコードです。だが、根本的にはこれに同様のセットです。暗号化、蓑?

ものがあると考えまる"だけではなく操作するバイトコードを暗号化すべての私の授業後の集大成と復しての内部のJVMできるものとします。についてはカスタムクラスローダ)?そのJVMの実行初のバイトコードがある逆コンパイルやリバースエンジニアリングですよね?"

残念ながら、間違っているのは、ともに考えることだったのにこの考え方や考え方の話をしましょうか。の理由なので暗号化スキームです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top