2013-03-10 23 views
6

Androidプラットフォームのネイティブ共有ライブラリ(.so)を何らかの形で「保護」する方法はありますか? など。誰かが、アプリケーションをリバースエンジニアリングした後にJMP命令をNOPで上書きし、そのライブラリをルートされたデバイスに配布することができます。Android共有ライブラリの完全な保護

何か誰かができますか?

私がここで探しているのは、一連の小切手(暗号化、チェックサムなど)の実装に関するアイデアです。 もちろん、プラットフォームがこれをサポートしているようには見えないので(私が間違っていれば私を修正してください)、すべてのクライアント側でなければなりません。したがって、全体は少し役に立っていますが、少なくともリバースエンジニアリングを妨げるものがあります。

+0

もちろん、独自のチェックサムを計算し、コード自体の一部を暗号化することで、SO保護を実装できます。これは、何年もWindowsで行われていたこととすべて似ています(しかし、より困難です)。しかし、Linuxでモジュールを保護する経験がなければ、起動しない方がいいでしょう。私はあなたの仕事のために予め作成された保護製品が存在するかどうかわかりません。 –

+0

@ EugeneMayevski'EldoSCorpありがとうございます。私は試してみたい - どのように自分のチェックサムを計算するのですか? – AndroidSec

答えて

3

はい、あなたはできることがあり、リバースエンジニアにとって非常に挑戦しますが、停止するものは何でもできるとは思えません。Chris Eagle

修正から保護する最善の方法は、コンパイルした後に.soのSHA-2を取り、実行時に毎回再ハッシュして既知の値と照合することです。この検査はクライアント側で実施されるので、熟練したREは検査を無視するようにバイナリを変更するだけです。それは少し難しくしています。コード全体にチェックを入れ、さまざまなチェック手法を使用すると、REの処理量が増えます。しかし、マイクロソフト社が何百万ドルものアンチRE技術に注ぎ込んでおり、でも、OfficeとWindowsのコピーはのコピーがあることは明らかです。あなたはそれらをすべて止めることはありません。私の個人哲学(今では自分自身でREを勉強したことがあります)は、最終的にはそれらを試して止めるのは大変な痛みです。ちょうど良いアプリを作って安くして、人々は買います。あなたのものを盗む悪者は、とにかくそれを買っていないでしょう。

あなたのアプリが自宅に電話する場合は、確認のためにサーバーにハッシュを送信することもできます。もちろん、REもこれを回避することができますが、これはもう一つのことです。

+0

まさに私が探していたもの。ありがとうございました! – AndroidSec

関連する問題