170630 逆向-珍贵资料

来源:互联网 发布:淘宝没有访客 编辑:程序博客网 时间:2024/06/09 23:00

1625-5 王子昂 总结《2017年6月30日》 【连续第271天总结】

A.全国大学生信息安全竞赛-珍贵资料

B.解压题目得到两个unknown文件,分别打开,发现文件头显示一个是android-backup,一个是pk

前者查了一下是apk的备份文件,可以用android-backup-extractor来查看,这是github上的一个JAVA写的项目,幸好以前闲来无事装上了JAVA可以运行。转换出一个tar文件,解压后得到userinfo.xml和manifest,后者长串数字乱码暂放不看,userinfo中有两个条目分别是user_name对应user和password对应dudqlvqrero1

那么回头处理那个pk文件,百度表示pk作为文件头可能是docx,或者是图片文件……啥玩意儿?拖到IDA里试试,马上识别出这是一个压缩包里面有许多xml和一个classes.dex,那么很明显--这就是apk。所以说什么识别方法都不如直接拖IDA里试试。。。

用之前的ApkDetecter查下发现无壳,那就直接dex2jar+jd_gui查看源码了

有三个地方比较可疑:LoginActivity,LogoActivity,WelcomeActivity

Login的代码直接读取输入,当密码为空时显示“you Input nothing”,否则将密码转换成小写字符,然后逐个映射字符表“ijklmstuvwxyz0123abcdenopqrfgh456789”中下3个字符,判断是否与info中的password相等。逆推很容易得到amanisnobody,但是输入APK提示错误_(:з」∠)_

再查看LogoActivity,它把“mgjl+bx+{jxx|dyo”送入Welcome的Intent中就结束了

Welcome则是接收上述字符串,然后逐个与0xB异或。

异或结果为"flag is password"…于是就尝试着输入flag{amanisnobody},结果正确了

但是不明白为什么输入user-amanisnobody在APK中仍然显示登录失败

并且当密码置空时会显示flag is password,而不是you input nothing的提示……

安卓的各种机制还是不太理解,有空要学习一下

C.明日计划

CISCN-Reverse

原创粉丝点击