How to decompile Google Android .apk file as readable dump【原创】

本文介绍如何通过Android SDK提供的ADB工具与Emulator进行交互,包括创建及启动模拟器、安装APK文件、列出系统应用、从模拟器中获取DEX文件并将其转储为可读文件。

Background :google android SDK platform provide emulator & ADB utility tools,it's very useful to

decompile the apk file to dump byte readable file.

Summary:

if you are ready for it, the sequences as following,

- create/launch emulator from command line

- launch the ADB utility toolfrom command line

- install apk file from local directory from command line

- list all system application apk file from command line

- dexdump selected.dex file from emulator

- pull dump file to local directory

Detail Section:

step 1: create your own emulator if you still not create one and then launch the emulator

launch the windows command line console, then chnage root directory to your android

SDK Platform/tools directory, for me

C:/>cd /d D:/android-sdk-windows/tools

D:/android-sdk-windows/tools>android create -avd -n my_android1.5 -t 2

D:/android-sdk-windows/tools>emulator -avd my_android1.5

step 2: after emulator launched, go to windowns console to start ADB Shell utility tool

make sure your emulator is running before you start ADB. if it's successful

D:/android-sdk-windows/tools>adb shell
# cd /system/app
cd /system/app
# ls
ls
Mms.apk
ApplicationsProvider.apk
GlobalSearch.apk
Calculator.apk
SpareParts.apk
GestureBuilder.apk
Music.apk
SdkSetup.apk
PackageInstaller.apk
Fallback.apk
SettingsProvider.apk
DrmProvider.apk
Development.apk
TelephonyProvider.apk
PinyinIME.apk
HTMLViewer.apk
Settings.apk
NetSpeed.apk

if you want to see how many user applications have beeninstalled on your emulator, just

cd /data/app,and then ls

step 3: install your apk file using adb shell commands, if you still not install your application

on emulator

D:/android-sdk-windows/tools>adb install D:/android-sdk-windows/tools/a.apk

after install successfully, you will see your apk file using above command line

step 4: get the cached dex file from your emulator, we have to enter dalvik VM cache using command

# cd /data/dalvik-cache

# ls

..........

data@app@a.apk@classes.dex

step 5: use dexdump file to generate the dump file then use pull command to copy to local directory

#dexdump -d -f -h data@app@a.apk@classes.dex >> a.apk.dump

finally you will get a bit-readable dump file, based on dalvik class format knowledge, the more you dig

the more you get. normally *.apk file is a .zip file, could be open by any winzip tool.

Reference: SDK platform documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值