Apktoolを使ってapkファイルをデコード、エンコードする
Apktool
Apktool - A tool for reverse engineering Android apk files
http://ibotpeaches.github.io/Apktool/
Apktoolはapkファイルの展開、再構築をするツールです。
apkファイルは実はzipファイルなんですが、構築する際に中のデータが暗号化されます。なので単にzipファイルとして解凍するだけでは中に含まれる内容が読めないようになっています。
apkファイルの構成
AndroidManifest.xml
META-INF(署名ファイル)
res(画像等のリソース)
classes.dex(プログラム)
resources.arsc(言語等のリソース)
そこでApktoolを使ってapkファイルを復号化しつつ展開することで内容が分かるようになり、書き換えもできるようになります。
準備するもの
- JDK7
- Android SDK ↑この2つはAndroid SDKを導入しておけば導入済み
- apktool.bat
- apktool_XXX.jar
- (7-Zip コマンドラインバージョン 7za.exe)
- 使用するAndroid端末のframework-res.apk(/system/framework/framework-res.apk)
- 展開、再構築したいapkファイル
ダウンロードしたapktool_XXX.jarはapktool.jarにリネームしておきます。
framework-res.apkは念のためframeworkフォルダごとadb pullコマンドで端末から取得しておきます。
C:\apktool>adb pull /system/framework framework
apktool━━━7za.exe
┣━apktool.bat
┣━apktool.jar
┣━framework
┗━XXXX.apk ←展開、再構築したいファイル
使い方
.odexファイルがある場合はまずこちらへ
初めに必要になるframeworkファイルをインストールしておきます。
C:\apktool>apktool if framework\framework-res.apk
apkファイルの展開
C:\apktool>apktool d XXXX.apk
コマンド実行後、XXXX.apkが展開されたファイルがXXXXフォルダ内に作成されます。以上で展開は完了です。必要であればここで編集を行います。
apkファイルの再構築
C:\apktool>apktool b -c XXXX -o new.apk
成功すると再構築されたapkファイル(new.apk)が作成されます。(※オプション-cによってアプリをapkに必要な元の署名ファイル(AndroidManifest.xmlとMETA-INF)がコピーされます。)
以上で再構築は完了です。書き換えたapkファイルを端末の/system/app/以下に書き戻すことで実行することができます。
C:\apktool>adb pull /system/framework/framework framework
返信削除のところなのですが、
/system/framework/frameworkではなく/system/frameworkだと思います。。
指摘ありがとうございます。
返信削除修正しておきました!!
apktool b -c XXXX -o new.apk
返信削除とすると、unknown¥nawes.properties(指定されたパスが見つかりません。)
となるのですが、どうすれば良いのでしょうか?
初めまして。
返信削除.apkファイルは暗号化された圧縮(.zip)ファイルとのことですが、PCゲームのファイルにも.apkファイルのものがあるんですが多分それとはまた違うんですよね?
It was wonderful blog on the unpack and pack of apk
返信削除this was amazing to read
Argon is the first unified security solution protecting the integrity of
your software throughout the entire DevOps pipeline
We provide best-in-class security for every stage of your CI CD pipeline,
ensuring maximum output without compromising speed for safety.
Argon delivers the first unified security solution
for your development infrastructure
Argon identifies all tools, assets, users,
and activities in your environment and
provides a single view into your whole
DevOps process. Through seamless
integration, connect effortlessly to your
existing CI/CD pipeline security tools and achieve maximum visibility.
Argon prioritizes and automates
remediation of alerts according to
CICD security best practices and compliance
rules, connecting security and DevOps
teams and reducing the need for
manual intervention