安卓逆向学习之KGB Messenger的writeup(2)
Login (Easy)
接上一题,去掉了烦人的弹窗后来到一个登录界面,现在要成功登录,并且登录密码全是小写。
思路
-
首先随便输入账号密码点击login按钮会出现下面的字样:
-
在AndroidKiller中搜索字符串“User not recognized”,发现在在LoginActivity中,反编译用jd-gui打开后进行分析:
- 在loginactivaty中找到了验证用户名和密码的逻辑
- 我们发现有两个判断,一个是对用户名的判断,如果判断错误会出现“User not recognized”,而下面的“Incorrect password” 还没有出现,猜测应该是用户名正确,密码错误时的弹窗信息。所以寻找2131558450的字符串到底是啥。在androidkiller中已经将该字符串转换为了16进制,于是进行搜索找到其对应位置发现正是public.xml中name为“username”的一个字符串:
- 在string.xml中找到该字符串得到用户名为 “codenameduchess”:
- 输入用户名"codenameduchess"后随便输入一个密码发现正是出现了"Incorret password",所以j()函数就是对密码的判断,查看j()函数发现是对输入的密码进行了md5哈希然后与一个固定值作比较:
- 由于哈希函数的不可逆性,这里好像没法获得原值(?或许可以用对照表什么的)
- workthrough里的解决方法是:
- 用户名codenameduchess其实是一个动漫里Archer中特工的代号,代号为duchess (XD
- 然后google一下就可以发现密码了
- 又因为题目说密码全是小写,就输入guest,然后就成功登录获得flag啦,flag也是googlepro,说明并不是想让我们通过hash值反推密码: