学习目标:
(一)QA作反编译验证的内容&AndroidKiller的介绍
(二)AndroidKiller的安装
(三)AndroidKiller反编译,重编译
(四)AndroidKiller反编译,修改,重编译
(五) 使用过程中遇到的问题及其解决方法
学习内容:
(一)QA作反编译验证的内容&AndroidKiller的介绍
(1)QA作反编译验证的内容:
1.反编译,重编译,运行看有没有闪退,主要验证签名证书
2.反编译,修改任意文件内容,重编译,运行看有没有闪退,主要验证文件hash
(1)AndroidKiller的介绍 :
androidKiller是可视化界面的一款反编译软件,省去了利用编译工具进行反编译的繁琐步骤,这里简单的说一下利用工具进行反编译的步骤:
APK TOOL:谷歌提供的apk编译工具,可以反编译和回编译。我们都知道,其实APK其实就是一个压缩包,我们完全可以把.apk修改为.zip。通过这种方式来获取资源文件,但是xml会乱码。如果你使用apk tool 来进行反编译apk就不会出现这种问题了
dex2jar:将dex文件转换成jar包
jd-gui:用来查看jar包里面的代码的一种工具
AndroidKiller虽然是Android逆向方面的神器,但是Android版本更新迅速,而Android Killer早已不再更新,这不能不说是一个遗憾,也许有人会想到APK改之理(又叫APKIDE)。AndroidKiller对高版本的编译会卡在代码的位置。
(二)AndroidKiller的安装
官网下载
在GitHub下载Androidkiller,并安装在合适的位置,我习惯放在D盘
下载地址:[https://github.com/liaojack8/AndroidKiller]
配置JDK环境
(a)解压完成后,按照提示逐步安装,安装完成后,打开Androidkiller,会看到提示:未配置JDK环境,那么下一步,我们开始配置JDK环境,JDK版本最好是1,8版本的,因为太高或者太低,Androidkill不支持容易报错
(b)参考以下链接配置JDK环境
(c)JDK环境配置完成后,再次打开Androidkiller进行JDK路径配置
(三)AndroidKiller反编译,重编译
反编译,重编译,运行看有没有闪退,主要验证签名证书(如果有做签名验证,打开要闪退)
(1)打开我们要反编译的APK包(或者直接拖进去也可以)
(2)是否需要对当前工程进行分析,点击【是】
(3)分析完成
(4)重编译,即不做任何修改,直接回编
(5)用mumu模拟器,安装反编译后的apk包,安装成功,且正常登录,说明对签名没有做验证(用其他模拟器都无法安装成功,不懂为啥,有知道的@我下)
(四)AndroidKiller反编译,修改,重编译
反编译,修改任意文件内容,重编译,运行看有没有闪退,主要验证文件hash(如果有做hash验证,打开要闪退)
我们来一个简单的字符串替换,我们将Among gods改成oh mygod
替换成功
(五)使用过程中遇到的问题及其解决方法
(1)将APk拖进去后,我遇到报错如下
解决办法是换apktool,更换成2.5.0版本的
总结:大多数问题,都是apktool版本问题
(2)确认过jdk版本,和apktool,都是新的,但就是无法继续下一步签名
I: Smaling smali_classes3 folder into classes3.dex…
I: Building resources…
W: D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\res\layout-v26\abc_screen_toolbar.xml:5: error: No resource identifier found for attribute ‘keyboardNavigationCluster’ in package ‘android’
W:
W: D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\res\layout\material_timepicker_dialog.xml:2: error: No resource identifier found for attribute ‘accessibilityPaneTitle’ in package ‘android’
W:
W: D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\res\layout\mtrl_alert_dialog_actions.xml:4: error: No resource identifier found for attribute ‘paddingHorizontal’ in package ‘android’
W:
W: D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\res\layout\mtrl_alert_dialog_actions.xml:4: error: No resource identifier found for attribute ‘paddingVertical’ in package ‘android’
W:
W: D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\res\layout-v26\mtrl_calendar_month.xml:2: error: No resource identifier found for attribute ‘defaultFocusHighlightEnabled’ in package ‘android’
W:
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\ADMINI~1\AppData\Local\Temp\brut_util_Jar_8098623054905714050326354221942440457.tmp, p, --forced-package-id, 127, --min-sdk-version, 23, --target-sdk-version, 31, --version-code, 140, --version-name, 1.9.3248000, --no-version-vectors, -F, C:\Users\ADMINI~1\AppData\Local\Temp\APKTOOL245767840065667876.tmp, -e, C:\Users\ADMINI~1\AppData\Local\Temp\APKTOOL4945089698759821639.tmp, -0, arsc, -I, C:\Users\Administrator\AppData\Local\apktool\framework\1.apk, -S, D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\res, -M, D:\androidkiller\AndroidKiller_v1.3.1\projects\gamex_release_aab_347\Project\AndroidManifest.xml]
APK 编译失败,无法继续下一步签名!