2017-10-19 2 views
-3

アンドロイドの自己暗号化を使用してアプリケーションを開発しようとしています。根本でないアンドロイドデバイスでの逆アセンブルを回避する自己暗号化アプリケーション

考え方は以下の通りです:(「!世界のHello」表示例用)アプリのコードは、(部分的に)完全に格納されている暗号化

    • アプリは、それが機能し実行する必要がありますが...、すなわち「すべての何が暗号化できるかは暗号化されているべきなので、正しい方法で簡単に逆アセンブルすることで(例えば、AESなどで文字通り暗号化されて)読み込むことができないので、システムにはランダムなコマンド/間違っている)。
    • アプリの「部分」は実行前に復号化する必要があります。
    • アプリの未使用の「パーツ」は、使用後に復号化する必要があります。
    • 上記のすべての操作は、アプリ自体で行う必要があります。

    したがって、コアアイデアは自己暗号化です。

    難読化が何であるか分かりますので、言及しないでください。サイドアプリと同じこと。私はリバースエンジニアリングですべての人生を過ごすつもりはない)))。だから...

    • Android(JAVA)コードを自己暗号化する正しい方法は何ですか?
    • どのように上記のアルゴリズムを実装することができますか?
    • をuは、このようなことを行うことが可能であれば任意のコードスニペットを提供してください、または任意のリンク/情報/記事/擬似コード/アイデア

    私の事アイデアは素晴らしいと本当に面白いです、プラス多くの人々はに喜んでいるでしょう自分のアプリを保護する方法を知っている。

    [編集] カスタムClassLoaderのアイデアについては、@Pace@JimmyBありがとうございます。私はそれを実装しようとします。また、変成エンジンのコンセプトを提案した@xaloにも感謝します。私は、それが私の目標をより大きく満たすと思うので、このテーマを掘り下げます。

  • +0

    に見ることができます。おそらくカスタムクラスローダーを作成したいと思うでしょう。 – Pace

    +0

    クラスがロードされるときにそれらのクラスを復号化するカスタム['ClassLoader'](https://developer.android.com/reference/java/lang/ClassLoader.html)を使用して実装することができます。ただし、*あなたのアプリがコードを「解読」することができれば、どんな攻撃者もハッカーかもしれません。 – JimmyB

    +0

    カスタムClassLoaderのアイデアをありがとうございました。そして、今私は私の質問が本当に広すぎることを理解しています。(( –

    答えて

    1

    あなたのアプリを自己暗号化しようとするべきではありません。それほど多くの保護のために複雑さが増します。

    実際、ハッカーは、アプリケーションの実行後、復号化ルーチンを元に戻すか、メモリをダンプするだけです。

    Java/Androidアプリとしての逆転を防ぐ最も良い方法は難読化です。

    また、この質問は、このサイトのために広すぎるリモート変成エンジンコンセプトhttps://media.defcon.org/DEF%20CON%2024/DEF%20CON%2024%20presentations/DEFCON-24-Amro-Abdelgawad-The-Remote-Metamorphic-Engine.pdf

    +0

    そうです、ハッカーはアプリが動くたびにメモリをダンプすることができます。私は、ユーザーにはルーティングされていないデバイスがあり、許可なく暗号化されたアプリケーションを実行する方法がないと考えられていたことを忘れていました。したがって、暗号化は、コピーされたファイルを逆アセンブルから保護するために状況を保存する必要があります。私は正しい? –

    関連する問題