0x01 start
先将这道题目下载下来,并且放入Android killer中
0x02 NEXT
因为在Android killer 中无法看到java源码
所以使用Androidtool Box工具
先将Sign_in.apk 改为Sign_in.zip 并且将内容解压出来,可以得到这些文件
然后使用Androidtool Box
然后可以得到反编译后的源码了
然后我们接着看。
发现这里有一个对比。
其实我本来以为这道题我做出来了。
paramString.equals(new String(Base64.decode(new StringBuffer(getFlag()).reverse().toString(), 0))))
解析一下就是先获取getFlag()
然后就是reverse() 反转字符串
然后base64解密
就是这样一个操作。
然后getFlag()看一下
getBaseContext().getString(2131427360);
这个就很坑啦。
2131427360,这里出现一个数字,明明就是一道前道题,考的也太多了吧。
这个肯定要系统的了解过,才知道2131427360其实就是一个资源管理分配的id。
这里还要知道Android开发里,这个id是由R....什么来管理。所以,我们才有思路就是在R文件里找到这里ID。
然后找到toString。
好了,这里又要考一个知识点,toString是一个字符串,要了解一定的开发知识,才能知道字符串的管理地方是在string.xml文件里。
然后就看到字符串。
991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ
然后基本就是正常套路。
ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199
然后解密。
最后,还有一个坑就是,这个答案是不对的。。。
这里多了一个小横杆。
然后