brew install python3
pip3 install skyeye
- 本地创建config.yaml文件,格式如下
- className: "com.xx.xx.yourClassName1"
methodName: "methodName"
- className: "com.xx.xx.yourClassName2"
filedName: "filedName"
- 如果methodName,filedName不填写,会扫描className所有方法和变量的外部引用情况
- 方法和字段名都是模糊匹配,例如methodName(x,x)只需要填写methodName即可
- 扫描父类的字段和方法,其子类的也会被扫描
- 扫描
skyeye scan
-i , --input 输入扫描的APK路径
-c , --config 扫描配置yaml文件路径
-o , --output 输出结果的文件夹路径 【可选,默认运行文件夹路径】
- 输出结果,格式如下
{
"cn.Test:<init>()V": [
{
"caller_class": "cn.xx.MainActivity",
"caller_method": "protected onCreate(Landroid.os.Bundle;)V",
"invoke_num": " 58"
}
],
"cn.Test.staticString": [
{
"caller_class": "cn.xx.MainActivity",
"caller_method": "protected onCreate(Landroid.os.Bundle;)V",
"invoke_num": " 60"
}
]
}
skyeye dec
-i , --input 输入扫描的APK路径
-o , --output 输出结果的文件夹路径 【可选,默认运行文件夹路径】
skyeye jd
-i , --input 目标class文件路径 或者 class文件夹路径
skyeye -v
输出版本同时,检查更新
- 支持扫描子父类的继承方法和字段
- 支持APK反编译
- 支持静态变量&&变量扫描
- 支持扫描类里面所有变量&&方法
- 增加结果报告执行函数输出
- 增加PyYaml的依赖
- 扫描特定类的所有方法外部的引用
- 扫描特定类的特定方法的外部引用