0x00 signin

一道安卓逆向题,这里推荐使用jadx-gui 这个工具,还不错。直接打开,找到main。这个需要一点经验或者基础,不然main在哪都找不到。

就这小小的一行就蕴含了这么多东西,这个代码质量我觉得挺高的。

首先是 str.equals(str1),这是java的字符串比较的引用方法,如果str == str1,就返回true。

str可以在下面看见,是输入,现在分析str1,里面的一大坨。base64decode大伙都知道,就不说了。然后是调用了getFlag方法得到flag,然后对得到字符串进行reverse()操作。

现在应该知道了程序中存储的,是flag的base64编码的逆序。现在就找字符串就行了。

根据getFlag方法提供的R.string.toString去找相应的位置

我以为这个就是了,百度学习了才发现,这只是一个ID,通过这个ID找到字符串,所以现在应该去查表,最后在表里找到:

exp

import base64
flag = '991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ'[::-1]
print(base64.b64decode(flag.encode()).decode())

0x01 Easy_Re

很简单的逆向题,应该是什么比赛的签到。直接查壳无壳,IDA打开

然后查看 xmmword_413E34 ,发现是数字,当然如果你会使用R键就会发现是逆序。选中,shift+E提取数据,就直接得到flag了。