既存のAPKを変更し、ソースを変更してから再コンパイルする必要があります。
しかし、今私はJavaファイルを再コンパイルしてjarファイルに戻す方法を知りたいです! (jar部分は簡単なはずです。主な問題はAndroidのJavaファイルを再コンパイルする方法のようです)
他の解決策はapktoolを使用してからsmaliファイルを変更することですが、多くのコードを追加したい場合は本当に複雑なようです!
私のアプリケーションは、基本的なHelloWorldの完全な難読化です。
Chris Jester-Youngに感謝します。
私がそれをどうやってやったかは、本当にシンプルなプロジェクトでしかうまくいかないと思います。
ApktoolでAndroidマニフェストとressourcesファイルを取得しました
Eclipseでは、古いプロジェクトと同じ設定で新しいプロジェクトを作成します(マニフェストファイル内のすべての情報をチェックします)
/!\デバイスから古いapkを削除したことを確認してください。apk署名が古いものと同じではないことを示すエラーがスローされます。
私はこの質問がまだ答えられていることを知っています、私はdexjarなしでapkからソースコードを取得する方法に関する情報を渡したいです。
an Android apks のオンラインデコンパイラ
これがどれほど信頼できるかわかりません。
@ darkheir答えはapkを逆コンパイルする手動の方法です。 Apk作成のさまざまなフェーズを理解するのに役立ちます。
ソースコードを入手したら、受け入れられた回答に記載されている手順に従ってください
別のオンラインApk De-compiler@ Andrew Rukin: http://www.javadecompilers.com/apk
まだ価値があります。クリエイターに敬意を表します。
最初に、次のリンクからdex2jarツールをダウンロードします http://code.google.com/p/dex2jar/downloads/list
作成するファイルを抽出dex2jar
フォルダー
ここで、apkファイルを選択し、拡張子を変更した後、拡張子.apkを.Zipに変更します。拡張子がZipファイルのように見える場合は、classes.dex
ファイルを見つけてこのZipファイルを抽出します
Classes.dexファイルを選択して、dex2jar
フォルダーに配置します
Cmdウィンドウを開き、dex2jar
フォルダーのパスを入力します
コマンドdex2jar.bat classes.dex
を入力し、Enterを押します
dex2jar
ファイルを見つけたclasses_dex2jar.jar
フォルダーを開きます
次に、次のリンクからJava逆コンパイラツールをダウンロードします http://Java.decompiler.free.fr/?q=jdgui
最後のステップJavaのファイルclasses_dex2jar.jar
を逆コンパイラツールで開くと、apkコードが表示されます。
私はこの質問に回答したことを知っていますが、ここでより良い回答をしようとはしていません。このトピックでの私の経験を共有します。
一度コードを失い、apk
ファイルのみを取得しました。以下のツールを使用してそれを逆コンパイルし、私の一日を作りました。
これらのツールは、このような状況で使用する必要があります。そうでない場合、非倫理的であり、場合によっては違法です(誰かの努力を盗む)。だから賢く使ってください。
これらはそれを行うための私のお気に入りのツールです。
google PlayからAPKを取得するには、GoogleでGoogleで検索するか、それらのサイトをチェックアウトします
この回答を投稿した日に、すべてのリンクをテストしましたが、完璧に機能しました。
注:Apk逆コンパイルは、保護されたコードの場合は効果的ではありません。 Proguard はコードを縮小して難読化し、クラスの名前を意味のない名前に変更するため、コードの理解がかなり難しくなるためです。
ボーナス:
dex2jar with jd-guiは、すべてのJavaソースファイルを提供しますが、完全に同じではありません。それらはほぼ同等の.classファイルです(100%ではありません)。したがって、apkファイルのコードを変更する場合:
apktoolを使用して逆コンパイル
apktoolは、同じ名前のJavaファイルごとにsmali(dexのアセンブリバージョン)ファイルを生成します。
smaliは人間が理解できるので、関連ファイルを変更し、同じものを使用して再コンパイルしますapktool(apktool b Nw.apk <Folder Containing Modified Files>
)