为了分析和逆向安卓应用,目标应用安装在安卓手机上,通常base.apk
设备上有一个文件,有多种方法可以在设备上找到这个apk文件,从设备上找到adb pull
它。
例如,在stackoverflow 上,yojimbo 的回答有 1500 多个赞成票,给出了以下 3 个步骤:
- 确定应用程序的包名称,例如“com.example.someapp”。使用
adb shell pm list packages
. - 获取所需包的 APK 文件的完整路径名。使用
adb shell pm path com.example.someapp
- 使用第 2 步中的完整路径名,将 APK 文件从 Android 设备拉到开发盒中。使用
adb pull /data/app/com.example.someapp-2.apk path/to/desired/destination
听起来很简单,到目前为止,它已经在许多应用程序中出现。然后,今天,我遇到了一个应用程序,其中第 2 步返回的不是 1 个而是 3 个 apk 文件:
adb shell pm path the.app.package
package:/data/app/the.app.package-che0LFSLF9su1gFiz9cVbw==/base.apk
package:/data/app/the.app.package-che0LFSLF9su1gFiz9cVbw==/split_config.arm64_v8a.apk
package:/data/app/the.app.package-che0LFSLF9su1gFiz9cVbw==/split_config.xxxhdpi.apk
我用the.app.package
. 我猜有部分代码是特定于 arm64_v8a 和/或 xxxhdpi 显示器的,它们被分离到 split_config apk 文件中?如何开始分析这样的应用程序,其中不仅有 base.apk 文件,还有一些额外的 apk 文件?