7

そこで、Android アプリを公開し、プロガードし、LVL を適用し、LVL コードの一部を変更しましたが、Lucky Patcher というツールを使用して、どこかでクラックが発生していることに気付きました。そのような 1 クリック ツールから保護するにはどうすればよいかを尋ねるつもりはありません。

私のコードがどのように解読されたかを理解するのを手伝ってくれるようお願いする必要があります。このツールが APK ファイルを取得し、ライセンスを削除することを理解しています。このAPKファイルをリバースエンジニアリングしてJavaファイルに戻し、ツールがどのようにコードをクラックしたかを確認するにはどうすればよいでしょうか(修正します)

助けてください ありがとう

4

5 に答える 5

1

ここには、DEXファイルからJavaソースに戻る方法に関する多くの情報があります。また、ソースを保護するための多くの方法を取り上げたこのブログ投稿を見たことがありますか?

于 2012-06-05T20:55:08.210 に答える
1

著作権侵害は大きな問題であり、プラットフォームや OS を完全に保護できるとは思えません。

ただし、Google はそれに対する保護に関するいくつかのチュートリアルを既に作成してい ます。 -in-app-billing-and-app-engine.html

また: http://android-developers.blogspot.co.il/2010/09/securing-android-lvl-applications.html

Javaの代わりにCを使用して、洗練された障害をいくつか置くこともできると思います。

また、Google が示唆するように、別のアプローチを使用することを検討してください。コア機能を無料にし、残りをアプリ内課金で購入できるようにします。また、アプリ内課金で広告と広告を削除する機能を追加することもできます。

于 2012-06-05T20:46:14.643 に答える
1

私はこれについて考えていましたが、本当にアプリケーションをハッカーから保護したいのであれば、それを行う方法は 1 つしかないようです。Google の記事で説明されているように、アプリケーションのライセンスと支払いを保証するあらゆる種類の凝った方法を実装できますが、アプリケーションを逆コンパイルしてコードの場所を見つけ、それをコメントアウトするか関数を変更するのに必要なのは、優れたハッカーだけです。常に true を返すようにします。

代わりに、jni/ndk で使用するために必要なアプリケーションの一部を実装し、そのコードで検証を確認してください。非常に複雑なコードである必要はありませんが、ユーザーが ndk を呼び出す Java 呼び出しに簡単にコメントできるため、関数のようなもの (checkValidity など) を配置することはできません。代わりに、ndk を呼び出して、アプリケーションを実行するのに重要な何かを実際に実行する必要があります。これは、ユーザーがコメントアウトしたり、同じことを行う定義済み関数で切り替えたりすることはできません。ndk コード内から、アプリケーションの整合性/ライセンスの検証を行い、失敗した場合はアプリケーションを強制終了するか、必要なことをすべて実行します。

これを回避するには、ハッカーは ndk コードを再実装するか、リバース エンジニアリングを行う必要があります。

これは明らかに単純な解決策ではなく、アプリケーションがハッキングされないことを保証するものではありませんが、他の方法よりも破るのがはるかに難しいはずです..

于 2012-06-06T20:38:54.137 に答える
1

Proguard の後、コードを人間が読める Java に逆コンパイルする方法はありません。
リバース エンジニアリング プロセスはより困難になりますが、巧妙なリバーサーが隠されたアルゴリズムを解明することは不可能ではありません。

ツールに関しては、android-apktool
を 使用して smaliに逆コンパイルし、エンコードされたすべての xml リソースを抽出します。dex2jarを 使用して Dalvik を jar に変換し、最後にjd-guiを使用して結果の逆 Java コードを確認します。

于 2012-06-05T20:50:59.920 に答える