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了。