作者:越狱(pwelyn) 分享一下ShakaApktool & apktool的使用方法,欢迎讨论交流 下载地址:http://pan.baidu.com/s/1c06HgL6 1.Windows: 下载Windows文件夹apktool.bat 下载apktool_xxxxx.jar或ShakaApktool_xxx.jar重命名为apktool.jar 复制(apktool.jar & apktool.bat)到Windows目录(通常是C:\Windows\System32) 也可以把这这几个文件放到任意一个文件夹,然后添加这个文件夹路径到系统的环境变量 然后通过cmd命令窗口运行apktool 2.Linux: 下载Linux文件夹apktool 下载apktool_xxxxx.jar或ShakaApktool_xxx.jar重命名为apktool.jar 复制(apktool.jar & apktool.bat)到/usr/local/bin(需要root权限,可以使用在终端使用命令:sudo cp apktool /usr/local/bin) 也可以把这这几个文件放到任意一个文件夹,然后添加这个文件夹路径到系统的环境变量 然后给文件添加可执行权限(chmod +x) 然后通过终端命令窗口运行apktool 3.MAC OS X: 下载OS X文件夹apktool 下载apktool_xxxxx.jar或ShakaApktool_xxx.jar重命名为apktool.jar 复制(apktool.jar & apktool.bat)到/usr/local/bin(需要root权限,可以使用在终端使用命令:sudo cp apktool /usr/local/bin) 也可以把这这几个文件放到任意一个文件夹,然后添加这个文件夹路径到系统的环境变量 然后给文件添加可执行权限(chmod +x) 然后通过终端命令窗口运行apktool 4.apktool & ShakaApktool 使用方法: -advance,--advanced 查看更多信息. -lng,--language <Locale> 显示语言, e.g. zh-CN, zh-TW //ShakaApktool特有功能,如果需要英文输入直接修改apktool.bat 内 -Duser.language=en 中文即zh -version,--version 查看版本信息 5.安装框架 if|install-framework //框架文件一般在system/framework/*.apk 每个系统不一样框架也不一样,有的是1个有的2个有的或更多 $ apktool if framework-res.apk I: 框架安装到: $HOME/apktool/framework/1.apk $ apktool if com.htc.resources.apk I: 框架安装到: $HOME/apktool/framework/2.apk -p,--frame-path <dir> 保存框架文件到指定目录 $ apktool if framework-res.apk -p foo/bar I: 框架安装到: foo/bar/1.apk $ apktool if framework-res.apk -t baz -p foo/bar I: 框架安装到: foo/bar/1-baz.apk //foo/bra 为命令所在的目录并非$HOME/apktool/ -t,--tag <tag> 保存框架文件为指定名称 $ apktool if com.htc.resources.apk -t htc I: 框架安装到: $HOME/apktool/framework/2-htc.apk 6.反编译指令 d[ecode] [options] <file_apk> //d 反编译参数,一般命令主要是apktool d file.apk 以下参数为d 后面可选参数 --api <API> 将按照API级别生成文件信息, 例如.14是ICS. -b,--no-debug-info 不输出debug信息 (.local, .param, .line, etc.) -d,--debug 反编译调试模式. 查看更多信息. --debug-line-prefix <prefix> 反编译调试模式下, 给Smali添加行前缀 默认是 "a=0;// ". -k,--keep-broken-res 当出现错误或者一些resources被放弃时使用,例如."Invalid config flags detected. Dropping resources", 即使在有错误的情况下,你还是想要强行反编译. 你之后必须手动修复相关错误才能进行编译. -m,--match-original 保持尽可能的接近原始文件.防止重新生成. -df,--default-framework 使用默然的框架资源文件 //ShakaApktool独有功能,主要作用删除$HOME/apktool/framework/1.apk然后释放新的1.apk(主要解决apktool内android-framework.jar升级后本地1.apk版本太低导致反编译失败问题) -f,--force 强制删除目标文件夹 //这个应该用的比较多,在使用apktool d file.apk时候提示你目标文件夹已存在,加-f就会直接删除目标文件夹 -fui,--fuck_unkown_id 反编译遇到未知资源id继续执行 //ShakaApktool独有功能,主要是反编译遇到一些未知的id直接跳过 -ir,--ignore_res_decode_error 忽略资源反编译的错误 //ShakaApktool独有功能,主要是忽略资源反编译的错误 -mc,--more-recognizable-characters 显示更多的可识别字符 //ShakaApktool独有功能,显示更多的可识别字符,比如中文不在以\uxxxx编码显示,而是直接显示中文,让smali更容易读 -n9,--no-9png 不解析.9格式的资源 //ShakaApktool独有功能,在编译时直接不解析.9格式的文件 -o,--output <dir> 输出文件夹名字. 默认是 apk.out //输出文件夹名,例如:apktool d -f file.apk -o out -p,--frame-path <dir> 使用指定目录下的框架文件 //使用指定目录下的框架文件,例如:apktool d -f -p foo/bar file.apk -o out //这里的-p foo/bar按照安装框架那一步来执行 -r,--no-res 不反编译resources.arsc //不反编译resources.arsc,只反编译classes.dex -s,--no-src 不反编译classes.dex //不反编译classes.dex,只反编译resources.arsc -t,--frame-tag <tag> 使用指定名称的框架文件 //使用指定名称的框架文件,例如:apktool d -f -t htc file.apk -o out //这里的-t htc按照安装框架那一步来执行 -xn,--xml_attribute_name_correct xml attribute name correct. May be has problem, not recommended. //ShakaApktool独有功能,xml 属性名实际是通过id来查找的,但是baxml中保留了一份显示的属性名。xml 属性名实际是通过id来查找的,但是baxml中保留了一份显示的属性名,已经测试mobileqq,qq浏览器可以正常使用 7.回编译指令 b[uild] [options] <app_path> -a,--aapt <loc> 从指定路径加载aapt //从指定路径加载aapt,例如:apktool b -a $HOME/sdk/build-tools/23.0.1/aapt out -o new.apk -c,--copy-original 复制原始AndroidManifest.xml和META-INF文件.可以查看项目更多信息 -d,--debug 调试模式编译. 检查项目的更多信息 -f,--force-all 跳过已编译检查,强制编译所有文件 //覆盖已经存在的文件,强制编译resources.arsc 和 classes.dex -o,--output <dir> 输出apk路径. 默认是 dist/name.apk //输出apk路径,默认在dist/xxx.apk 例如:apktool b out -o new.apk(new.apk路径在命令执行的目录) -p,--frame-path <dir> 使用指定目录下的框架文件 //使用指定目录下的框架文件,例如:apktool b -p foo/bar out 8.其他 -q 和 -v 命令 //-q 编译时不输出任何信息,直接静默模式编译,例如:apktool -q d或apktool -q b //-v 编译时输出更多详细信息,例如:apktool -v d或apktool -v b 也可以直接不借助apktool[apktool.bat] 直接使用 java -jar apktool.jar[ShakaApktool.jar] ShakaApktool.jar目前版本已经完全支持smali和baksmali功能 9.项目地址 ShakaApktool:https://github.com/rover12421/ShakaApktool apktool:https://github.com/iBotPeaches/Apktool smali/baksmali:https://github.com/JesusFreke/smali 分析工具推荐Android Killer:http://www./thread-136-1-1.html |
|
来自: songen2216 > 《安卓逆向调试》