1

重複の可能性:
.jar ファイルを暗号化する方法

難読化は知っていますが、難読化はコードを理解しにくくするだけです。コードを実際に暗号化するわけではありません。Android コードを暗号化する方法はありますか? または、逆コンパイルしたときにコードをより回復不能にする代替手段はありますか?

私が探しているものが可能かどうかを知るために、この質問をしています。現時点では、コードを暗号化すると Dalvik もコードを理解して実行できなくなるため、コードを暗号化することは不可能であると考えています。しかし、私はそれについてよくわかりません。私が何かを知らなかった可能性があります。

これについてどう思うか、何か提案があれば投稿してください。また、人間が読めるコードにアクセスできるということは、バックエンドで進行中の金融プロセスの流れを理解できることを意味する金融アプリケーションを考えてみてください。ありがとうございました!

4

2 に答える 2

2

コードを非表示にしたり、ダミー命令を挿入したりして、標準の DEX 逆コンパイラ ツールの処理を困難にするさまざまな取り組みがあります。ATM はほとんど研究段階ですが、いくつかのサンプル ツールを使用してオンラインで論文やプレゼンテーションを見つけることができます。

また、ProGuard の作成者によるDexGuard (無料ではありません) もあります。これは、文字列を暗号化して (標準の難読化では暗号化できません)、逆コンパイルされたコード内の検索を困難にします。個人的には使っていませんが、よかったら使ってみてください。

ただし、最終的には、何かを実行できるようにするには、VM にフィードできるように、復号化/デスクランブルなどを行う必要があります。デバイスを完全に制御できる場合 (ルート権限と物理アクセスなど)、メモリをダンプしたり、システム ライブラリにフックを導入したりして、実際に実行可能なコードを取得できます。他の人が示唆しているように、本当に機密性の高いコードがある場合は、サーバー上に置く必要があります。

于 2012-11-06T05:42:31.417 に答える
1

定義上、マシンはコードを読み取れる必要があります。したがって...機械を持っている人なら誰でもあなたのコードを読むことができます。

これに代わる唯一の方法は、たとえば、ユーザーにサードパーティのサイトに連絡して、そこから何らかの方法で情報を取得するように強制することです。

于 2012-11-06T01:57:28.227 に答える