2015阿里&看雪移动安全挑战赛-第一题

来源:互联网 发布:软件项目经理考试 编辑:程序博客网 时间:2024/05/01 10:30

2015阿里&看雪移动安全挑战赛-第一题
题目传送门:AliCrackme
网上已经有很多writeup,我也是按照乌云上的2015移动安全挑战赛(阿里&看雪主办)全程回顾的基本思路来想的。但作为一个新手,就算照着教程来做也会踩到很多坑。所以我想把自己解题过程中遇到的一些细节问题跟大家分享一下。
文章中提到的环境配置是按照看雪论坛非虫的《Android软件安全与逆向分析》(以下简称《逆向》)配置的,这本书很棒,讲的很详细。在这里安利一波。

0x01

[…apk下载安装过程:略…]
apk安装好后,是这个样子的
主界面
输入密码错误弹出提示,并要求继续。按照《逆向》里的思路,首先我尝试了用apktool将apk反编译成smali的做法。在strings.xml文件中查看是否有可疑字符串。
strings.xml
结果没有发现。(ps:后来看了很多资料,觉得正确的做法应该是先将dex转jar看代码,然后根据代码来看这里面的东西。)

0x02

第二次尝试用dex2jar把classes.dex转成jar,然后用jd-gui查看。
jar
发现两个方法:getPwdFromPic()getTableFromPic()。它们是这样被调用的:
代码逻辑
这意味着每次输入的时候,程序都会调用日志输出table(映射表)、pw(密码)和enPassword(输入)。那么我们可以在Eclipse中打开LogCat查看它的输出日志。(如何打开LogCat请自行搜索)
比如,我们输入“123”,它的输出了这些东西:
LogCat
输入的 123 变成了 么广亡 ,这表明程序内部的映射表将数字转换成了汉字,那么根据pw的输出 义弓么丸广之 ,我们可以逆推出它的真实密码为:581026
输入 581026,破解成功
破解成功

0x03

在乌云上,关于这道题的映射表是这样说的

获得正确注册码的代码逻辑为: 1. 从logo.png这张图片的偏移89473处,读取一个映射表,768字节编码成UTF-8,即256个中文表 2. 从偏移91265处读取18个字节编码的UTF-8(即6个中文字符)为最终比较的密码。然后通过输入的字符的转换,转换规则就是ASCII字符编码,去比较是否和最终密码相等。

一开始的时候我以为需要从图片中找出密码来,觉得很头疼。后来发现代码中存在日志输出,倒是直接把答案输出了。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝刚出生没奶怎么办 婴儿含着乳头睡怎么办 没满月的换奶粉怎么办 生完孩子奶少怎么办 刚满月没奶了怎么办 健康之路没奶水怎么办 生完孩子奶胀痛怎么办 生完两天没有奶怎么办 一个多月的宝宝睡眠不好怎么办 产妇奶少不够吃怎么办 冬天腿上掉皮屑怎么办 一岁宝宝不喝奶粉怎么办 2岁宝宝不吃奶粉怎么办 老婆生了孩子性冷淡怎么办 宝宝有轻度地贫怎么办 不小心怀孕了该怎么办 45岁不小心怀了怎么办 喝了酒胃不舒服怎么办 备孕期间孕酮低怎么办 2个月宝宝不睡觉怎么办 生完小孩肚子还是很大怎么办 生完孩子肚皮疼怎么办 生完孩子有肚腩怎么办 生完宝宝肚子还是很大怎么办 生完孩子小腹大怎么办 生完孩子肚皮松怎么办 生过孩子肚子松怎么办 生完孩子肚皮痒怎么办 生完小孩肚子松弛怎么办 生了孩子肚子大怎么办 嫁到别的省户口怎么办 孕中期假性宫缩怎么办 频繁的假性宫缩怎么办 显卡风扇不转了怎么办 老是想不好的事怎么办 做人工受孕多囊怎么办 子宫内有囊肿该怎么办 子宫长了个囊肿怎么办 怀孕后不想要该怎么办 20多岁雌激素低怎么办 生完小孩后子宫下垂怎么办