本帖最后由 MengSec 于 2018-11-12 11:06 编辑
文章转载于某春秋论坛。
0x00 前言今天突然来一看,发现bugku更新了,正好来看一看。
本来以为只是一道前道题的。结果里面的道道还是有一点多的。我们接下来就分享一下思路,以及做法。
0x01 start其实拿到这种都是要先安装看一下的。我能说我有一点懒么。
你们自己看一看就好。
我们使用AndroidKiller反编译。
然后回编译测试一下。
一道签到题,连回编译都不行了???
试一下直接看java源码
好吧,这些都没用了。不过不要担心,我们还有其他的办法看到源码。
APK包其实就是zip包,至于为什么可以自行百度。所以我们解压。
然后我们dex2jar。
然后打开jar。
然后就可以开开心心的看源码了。
然后我们接着看。
发现这里有一个对比。
其实我本来以为这道题我做出来了。
[Java] 纯文本查看 复制代码 paramString.equals(new String(Base64.decode(new StringBuffer(getFlag()).reverse().toString(), 0)))) 解析一下就是先获取getFlag()
然后就是reverse() 反转字符串
然后base64解密
就是这样一个操作。
然后getFlag()看一下
[Java] 纯文本查看 复制代码 getBaseContext().getString(2131427360);
这个就很坑啦。
2131427360,这里出现一个数字,明明就是一道前道题,考的也太多了吧。
这个肯定要系统的了解过,才知道2131427360其实就是一个资源管理分配的id。
这里还要知道Android开发里,这个id是由R....什么来管理。所以,我们才有思路就是在R文件里找到这里ID。
然后找到toString。
好了,这里又要考一个知识点,toString是一个字符串,要了解一定的开发知识,才能知道字符串的管理地方是在string.xml文件里。
然后就看到字符串。
991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ
然后基本就是正常套路。
ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199
然后解密。
最后,还有一个坑就是,这个答案是不对的。。。
这里多了一个小横杆。
然后
|