问题
假设仅知道AppStartupManager这个类关键词,我们需要找到其对应实现的类。
方法一适用于寻找系统类
方法二适用于寻找APP类
方法一
- 先通过查看log,找到对应的pid
- ps | grep pid 查看对应的进程名称processName
- 通过processName谷歌到对应的源码 (善用搜索技巧)
- 然后通过上层目录(可能在上n层),找到Android.mk文件
- 查找 LOCAL_MODULE:= services
- 这里的 services 即为我们最终的dex文件
- 到/system/framework/下找到services.dex(或其他格式)
- 反编译即可
方法二
使用ClsName2FindDex.sh
脚本寻找
sh ClsName2FindDex.sh demo.apk className
#######################################################
#
#
# Name: ClsName2FindDex
# Author: Tasfa
# Version: V1.0.0
#
# Usage: sh ClsName2FindDex.sh demo.apk className
#
#######################################################
unzip -o -q $1 "*.dex" -d ./dex
for i in `find ./dex -name "*.dex"`; do
out=`strings $i | grep $2\;`
first=${out:0:1}
if [ ! $first ]; then
:
else
echo "Class L$2 maybe in "
echo "\033[31m$i\033[0m"
echo $out
fi
done
rm -rf ./dex