概述
为了让初学者能够更好的学习基于android的渗透测试,CodeEngn开发了很多的android app供大伙学习。
SmartApp Analysis
SmartApp 01
题目地址
解题步骤
发现程序不能直接安装到手机上。
解压APK文件后发现有三个文件的文件名是错误的且缺少META-INF
文件,所以不能正常安装到手机,如下图所示:
修改错误的文件名后,进行zip压缩,并修改后缀为apk,然后进行签名:
|
|
签名成功后安装到移动设备上,打开启动app就可以看到Key:H3ll0 C0de3ngn
。
SmartApp 02
题目地址
解题步骤
发现程序不能直接安装到手机上。
解压apk文件后发现缺少META-INF
文件,签名成功后安装到移动设备上,打开启动app就可以看到如下界面:
于是反编译了下源代码,发现key的值被加密了,而且作了限制,只有条件成立,才能解密:
于是修改smali代码:
重新编译下程序,然后再进行一次签名,然后安装到手机上,key就出来了: The Key is November Rain
。
SmartApp 03
题目地址
解题步骤
发现程序不能直接安装到手机上。
解压apk文件后发现缺少META-INF
文件,签名成功后安装到移动设备上,打开启动app就可以看到如下界面:
用androidlyze.py分析了下代码:
|
|
看了代码之后,发现模拟器界面没有显示全,少了几个按钮,而且看到了判断的条件:
首先修改判定条件,如下图:
然后进行签名。
既然模拟器运行不全,应该是android的版本有问题,换到手机试下:
SmartApp 04
题目地址
解题步骤
直接反编译一下,发现这里有个条件判断,输入key后才能显示答案正确:
先看下dex的字符串:
找到了一个比较可疑的地方,这里有一个helloWorldD函数,而直接还原成java代码,并不能找到:
通过010编辑器查看确实有一个helloWorldD函数,应该是被隐藏掉了:
找到原先的helloWorldC函数,它后面应该是helloWorldD函数,记下地址:0x0cd0
找到如下图所示的地方,根据前几个函数相应的规则,修改:
用androidlyze.py分析了下代码:
|
|
可以看到就是每个位置和 240(0xf0) 异或了下:
解出来就是:
The Key is BoanprojectZZang
#总结