上篇我们预测了阿里蚂蚁金服破解题目的几种思路,现在我们来看看实际情况如何。
上篇地址
(已按照官方说明更新了下载地址)
http://www.jianshu.com/p/93b0b4e7e091
吐槽下先
上篇我们就提到了官方给的下载链接不可访问,方式还以为不到开赛时间官方未开放下载,或者阿里的同学都忙着去开宇宙最大公司大会了,得等到凌晨准时开通。
经过漫长的等待,困啊,到了零点去访问还是无法访问,当时想这不是阿里的风格啊,大概00:30的时候等不下去就想看看公众号有没有回复,结果在公众号文章的底部回复中看到官方的答复,公众号的下载地址为内网地址,同时还公布了外网地址。这算不算命题组的失误呢?
赛题情况
-
先上个图给大家看看
赛题为单机版
我的预测之3、4明显不符合了。赛题的apk包没做加固
预测之2还是对的,但只能算对了一部分,因为apk部分的代码相对比较简单,而他把核心逻辑封装到了libcore.so以及core.bin文件中,说实话我之前对这两个玩意没任何概念,我不认识他们他们不认识我。开启so破解的漫长路
经过恶补知识,大概知道了so为何物。既然是C类的东东,那就祭出ida神器吧,不过发现自己的ida不能用F5伤心啊,于是经过多次尝试终于找到一个靠谱的破解版可用。
ida主要代码部分还算清晰,不过又涉及了一个VM的概念,核心逻辑都在VM中完成,这个鬼我还在死磕中。
涨技能
经过这四天的研究,我发现自己涨了很多技能,即使不能成功破解也值了。给大家简单列一下,有兴趣可以加qq群找我,这些问题对熟悉android开发的大神是小菜一碟,但是android小白,走了很多弯路。
手机编程
Aide一个NB的在android手机上开发android应用的app。
之前就一直用过这个工具,奈何我的电脑开发环境不给力,eclipse下一直编译异常,重新更新sdk后还是有问题。于是乎回到手机上开发了。引用so
这个问题费了很长时间才在aide中引入了32位的so,期间学会了绝对路径load库文件、相对路径loadlibrary,解决了32位 64位的问题。学会了无源代码看app日志
这个问题咨询了好几个android开发的小伙伴,网上查了很多资料才搞定。用了adb神器,可以查看手机的logcat,熟悉了常用的命令用法。adb连接bluestack
新手机没有做root,调试起来很不方便,于是用了常用利器bluestack,并通过adb命令实现了模拟器的日志查看,通过adb命令安装应用。顺便掌握了模拟器和windows互传文件。(后来突然bluestack中不显示windows的共享目录的文件了,但是可以写入文件,不知道什么原因,重启也未解决,后续有时间再跟进)。学习的apk拆包修改重新打包
用到了apktool工具,第一次使用,酷爽。以后再也不担心修改打包问题了。学习了apk签名
使用了auto-sign,可以对重新打包的apk进行签名。学习arm thumb指令集
经过摸索最终才步入正道,弯路太多不忍直视。知道了arm thumb指令的区别,知道了怎么对照指令个机器码,同时加深了汇编知识的积累。尝试了底层破解绕过机制
这个纯属为了好玩,直接把蚂蚁金服的验证关闭了,界面返回验证通过。给大家个截图娱乐娱乐
革命尚未成功,尚需继续努力。