6

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

誰かができることはあります

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

4

1 に答える 1

4

はい、できることがあります。リバースエンジニアにとっては非常に困難ですが、ChrisEagleを止めるようなことは何でもできるとは思えませ

変更から保護する最善の方法は、コンパイル後に.soのSHA-2を取得し、実行時に毎回再ハッシュして、既知の値と照合することです。このチェックはクライアント側で実施されるため、熟練したREは、チェックを無視するようにバイナリを変更するだけで済みます。しかし、それは少し難しくなります。コード全体にチェックを入れ、さまざまなチェック手法を使用すると、REが実行する必要のある作業量が増えます。ただし、Microsoftが反RE技術に数百万ドルを注ぎ込んでおり、まだそこにあるOfficeとWindowsの海賊版。あなたはそれらすべてを止めることは決してないだろう。私の個人的な哲学(今では自分でREを勉強しました)は、それらを止めようとするのは最終的には非常に苦痛であるということです。良いアプリを作って安くすれば、人々は買うでしょう。あなたのものを盗む悪党はとにかくそれを買わなかっただろう。

アプリがホームに電話をかけた場合は、検証のためにハッシュをサーバーに送信することもできます。もちろん、REはこれを回避できますが、もう1つ行う必要があります。

于 2013-03-12T21:33:46.017 に答える