版权声明:[email protected] https://blog.csdn.net/Baron_wu/article/details/83548297
使用apktool分析Android程序
(作者:Baron_wu 禁止转载)
Installation for Apktool
•Windows:
1. Download Windows wrapper script (Right click, Save Link As apktool.bat)
2. Download apktool-2 (find newest here)
3. Rename downloaded jar to apktool.jar
4. Move both files (apktool.jar & apktool.bat) to your Windows directory (Usually C://Windows)
5. If you do not have access to C://Windows, you may place the two files anywhere then add that directory to your Environment Variables System PATH variable.
6. Try running apktool via command prompt
•Linux:
1.Download Linux wrapper script (Right click, Save Link As apktool)
2. Download apktool-2 (find newest here)
3. Rename downloaded jar to apktool.jar
4. Move both files (apktool.jar & apktool) to /usr/local/bin (root needed)
5. Make sure both files are executable (chmod +x)
6. Try running apktool via cli
•Mac OS X:
1. Download Mac wrapper script (Right click, Save Link As apktool)
2. Download apktool-2 (find newest here)
3. Rename downloaded jar to apktool.jar
4. Move both files (apktool.jar & apktool) to /usr/local/bin (root needed)
5. Make sure both files are executable (chmod +x)
6. Try running apktool via cli
环境变量的添加:添加apktool的路径到系统path中。
之后打开终端输入apktool检测安装是否成功。
若安装成功,则接下来把之前写好的application放入到apktool文件路径下,然后打开终端进入该目录下,开始反编译apk文件。输入命令:apktool d Appcracking.apk
反编译后会生成一个文件夹:
打开res\values\string.xml文件可以看到所设定的flag:
之后再打开同文件夹下的public.xml文件,可以看到fail的id:
在smali文件夹中的所有文件中寻找0x7f0b0028(每个人的都不一定一样),结果如下:
在上边有如下两行代码:
修改nez为eqz,之后编译smali文件。
输入命令:apktool b Apkcracking
编译成功后会在目录下生成dist目录,里面存放着编译成功的APK文件。
之后便对其进行数字签名,将生成的apk拖入signapk文件夹下:
Dos窗口下进入dist文件夹,输入命令:“signapk AppCracking.apk”,签名成功后结果如图所示,并且会在同一目录下生成signed.apk文件。(我是直接使用的自动签名工具,所以这种方法没有亲测,如有不对请自行解决)
将签名后的signed.apk文件安装到手机上,注意,安装前需要将之前测试安装的相同的App卸载掉,不然会提示手机上已安装了存在签名冲突的同名数据包,导致这个APK 文件无法安装。
将签名后的apk直接拖入虚拟手机界面即可完成安装。安装后运行程序即可发现,无论输入什么,都会显示注册成功。
到此反编译结束。