Go语言解析APK
Github上有一个非常棒的Go语言的库 https://github.com/shogo82148/androidbinary
虽然Star数量有点少,不过代码质量高的惊人。维护人是一位来自日本的shogo82148 对于项目的Issue处理的很及时。
使用这个库可以解析apk文件中的AndroidManifest.xml以及resources.arsc ,原本解析这些文件需要非常了解这些文件的结构,处理起来非常复杂,但是借助这个库,分析起来就很容易。
例子
举例说明下
package main
import (
"github.com/shogo82148/androidbinary/apk"
)
func main() {
pkg, _ := apk.OpenFile("your-android-app.apk")
defer pkg.Close()
icon, _ := apk.Icon(nil) // returns the icon of APK as image.Image
pkgName := pkg.PackageName() // returns the pakcage name
mainActivity, _ = pkg.MainAcitivty()
}
就这么点代码就可以获取到应用的packageName以及应用图标(图标其实最难解析),但是借助这个库,实现起来就很容易。
Python解析APK
解析apk的Python库有很多,但是并没有出现一个特别强的,可以一统天下的库。
就用目前我感觉最好的一个库作为例子。
pip install AxmlParser