twitter跳过手机验证_逆向基础题二:验证登录

划重点: 关注公众号,后台回复crackme,获得本题apk~ 题目来源: 2016华山杯Android逆向题 题目: 软件包2.zip,要求进行验证登陆 知识点: ZIP伪加密、IDA动态调试so、Android Killer使用 解题过程: 拿到zip压缩包直接解压失败,根据zip伪加密原理如下,压缩文件数据区和目录区有关全局方式标记位,偶数表示无加密,奇数表示加密,理论如下所示。 68a268b815c2427403dfb43747181da1.png baa8f63b0f0f018efaeb030b0914a9ec.png 对比发现待分析的zip包为zip伪加密。修改504B0102后边的第五第六个字节为偶数。总共有两处,说明zip下很多文件,只有两个文件做了伪加密,修改如下所示。 577b8d85ea9c4d63c9ae33e14be3eb62.png 91e3a08059095a0152445afdf6bd01a0.png 解压后的文件缺个apktool.yml,拷贝一个进去用apktool回编后再签名,但安装apk运行后提示权限不够,将apk拉入AK分析,如下所示,我们直接修改Smali跳过isExit检查。 211a7f3dd70a61c759f2144d4aacd94e.png 然后我们看验证部分代码,如下所示,由Java层传入用户输入到Native层,由so对密码进行验证并输出结果,所以下面我们需要使用IDA对Android的so进行动态调试。 af38a7a8e3ae747e49040ba65ded2f99.png 因为libgeneratekey.so存放在armeabi目录下,所以需要使用32位的IDA工具以及对应的android_server进行Androi的so动态调试。 跟踪代码如下所示,encodePS获取密码,在执行完encodePS后,其返回值即密码存放在R0内,所以在执行完encodePS后的下一条指令上设置断点。 e81551f565a5f906864afe042f480f1b.png 开始调试后,程序断在执行完encodePS后的下一条指令上,可以看到寄存器R0值。 7ec385c8ae417c66c80e7785690ef83e.png 点击寄存器R0指向的箭头,可以看到如下信息,即[stack]:FFD5EF68指向的内容是“lxienietIeAehfyih” 09cbb68209f4e89697bc337288d03ade.png 在手机上进行密码验证,验证ok。 7096454bb21314cdb1faaf9bf342ce6c.png

关注公众号,后台回复crackme,获得本题apk。

欢迎扫码关注,一起学习

5af0f13444c621ead5bd4b41569b9373.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值