ユーザーは私のアプリケーションのapkファイルを実際のコードに戻すことができますか?もしそうなら-これを防ぐ方法はありますか?
7 に答える
まず、apkファイルは単なる変更されたjarファイルです。したがって、本当の問題は、内部のdexファイルを逆コンパイルできるかどうかです。答えは一種です。dedexerやsmaliなどの逆アセンブラはすでに存在します。これらは改善されるだけで、理論的には実際のJavaソースに逆コンパイルできるようになるはずです(少なくとも時々)。DEXをJavaソースコードに逆コンパイルする前の質問を参照してください。
覚えておくべきことは、難読化は決して機能しないということです。良いライセンスを選択し、法律を通じてそれを実施するために最善を尽くします。信頼できない技術的手段で時間を無駄にしないでください。
APKファイルの逆コンパイルが可能です。ただし、難読化されていると、コードを理解するのが難しい場合があります。
Aapt (Android SDKの一部)またはAXMLParser ( AndroGuardから)を使用して、APKファイルの情報を分析および表示します
AndroidManifest.xmlファイルのコンテンツを取得します
さまざまな情報(許可、アクティビティ、サービス、ブロードキャストレシーバーなど)を表示します
指示:
Aapt
aapt dump badging sampleApp.apk aapt dump permissions sampleApp.apk aapt dump xmltree sampleApp.apk
AXMLParser
apkinfo sampleApp.apk
ApkToolまたはNinjaDroidを使用して、APKファイルのリソースを分解して表示します
バイトコードをsmali/assemblyに分解します
AndroidManifest.xml、CERT.RSAファイル、およびresフォルダー内のすべて(レイアウトxmlファイル、画像、webviewで使用されるhtmlなど)を抽出します。
指示:
ApkTool
apktool.bat d sampleApp.apk java -jar apktool.jar -q decode -f sampleApp.apk -o myOutputDir
NinjaDroid
ninjadroid MyApk.apk --all --extract myOutputDir/
注: 7-zipなどのzipユーティリティを使用すると、同様のことができます。ただし、これらのツールは、すべての.classファイルの.smaliファイルも抽出します。
dex2jarを使用して、APKファイルのDEXファイルをJavaコードに逆コンパイルします
.apkファイルから.jarファイルを生成します(AndroidアプリのJavaコードは通常難読化されていることに注意してください)
出力.jarファイルからソースコードを表示するには、JD-GUIが必要です
指示:
dex2jar sampleApp.apk d2j-dex2jar.sh -f sampleApp.apk -o myOutputDir/sampleApp.jar
JD-GUIを使用して.jarファイルを表示します
- .classファイル(Androidアプリの場合は難読化されていますが、他の.jarファイルの場合は難読化されていません)を逆コンパイルし、対応するJavaコードを表示します
また、最近ではAndroidアプリケーションをオンラインで逆コンパイルすることが可能であり、ソフトウェアは必要ありません。
ここにあなたのための2つのオプションがあります:
このjadxツールをダウンロードhttps://sourceforge.net/projects/jadx/files/
それを解凍し、libフォルダーでjadx-gui-0.6.1.jarファイルを実行してapkファイルを参照します。終わった。自動的にapkは逆コンパイルし、保存ボタンを押すことで保存します。それがあなたのために働くことを願っています。ありがとう
ユーザーは私のアプリケーションのapkファイルを実際のコードに戻すことができますか?
はい。
人々はさまざまなツールを使用して次のことができます。
- 分析:あなたのapk
- あなたのapkをデコード/ハックする
- ファイル
FDex2
をダンプするために使用するdex
- 次に、
dex2jar
に変換するために使用しますjar
- 次に、ソースコード
jadx
への変換に使用しますjava
- 次に、ソースコード
- 次に、
- ファイル
もしそうなら-これを防ぐ方法はありますか?
はい。これを(ある程度)防ぐためのいくつかの(組み合わせることができる)方法:
- 低レベル:コードの難読化
- Androidを使用する
ProGuard
- Androidを使用する
- 高レベル:Android強化シナリオを使用
- そのような
Tecent Legu
=腾讯乐固qihoo 360
= 360加固宝</a>
dex2jar
/を使用するapktool
と、特にループでコードが壊れることがあります。これを回避するには、jadx.jar
を使用します。jadxは、最初に/.class
ファイルを作成せずに、dalvikバイトコードをJavaソースコードに逆コンパイルしますdex2jar
(apktoolはdex2jarを使用すると思います)。また、オープンソースであり、活発に開発されています。GUI狂信者のためのGUIさえあります。それを試してみてください!
はい、.apkファイルを逆コンパイルするために利用できるソフトウェアはたくさんあります。
最近、私は自分のWebサイトで47の最高のAPK逆コンパイラーの究極のリストを編集しました。私はそれらを4つの異なるセクションに配置しました。
- オープンソースAPKデコンパイラー
- オンラインAPK逆コンパイラ
- Windows、Mac、またはLinux用のAPKデコンパイラ
- APK逆コンパイラアプリ
このコレクションがお役に立てば幸いです。