四叶草交流友谊赛

迷路的菜鸟,CTF从入门到放弃。


easyYM

运行程序。
在这里插入图片描述
直接输出了flag?
其实并没有,题目描述也说了这不是真正的flag,真正的flag格式是flag{}。

拖进IDA,
四叶草交流友谊赛_第1张图片
好像没什么有用信息。(太菜了,在这里还绕了好久)
看看题目描述,关键函数并不一定执行到了。

看看汇编代码。
四叶草交流友谊赛_第2张图片
好吧,调用主函数之前还执行了下面这段代码,这里应该就是关键代码。在下面其实也发现了可疑字符串,更加明确了这点。
四叶草交流友谊赛_第3张图片
拖进OD调试,
四叶草交流友谊赛_第4张图片
我们在这里调用主函数的地方设置断点,修改一下汇编代码,调用之前的关键代码。

然后跟进,
四叶草交流友谊赛_第5张图片
随后发现在此处每次取出字符串中的一个字符与2异或,然后替换原来的字符串。设置断点跟踪查看即可得到替换后的字符串。
四叶草交流友谊赛_第6张图片
base64? 这里调试完也给出提示了。
四叶草交流友谊赛_第7张图片

flag{I_L1ke_C++_Pr1mer~~~}

mwcc

运行程序。
四叶草交流友谊赛_第8张图片
好像没什么有用信息,
但是细心将程序边框扩展开的话。
四叶草交流友谊赛_第9张图片
我们就发现可以进行输入了,也有对应的输出。
我们随便输入一个flag,获取相关信息。
四叶草交流友谊赛_第10张图片
弹窗,Tips,flag error。
接下来静态,动态分析即可。
拖进IDA没有发现什么有用信息,
尝试动态分析。
四叶草交流友谊赛_第11张图片
跟进,并找到该函数的开始。
四叶草交流友谊赛_第12张图片
单步调试,在下图所示发现关键代码。
四叶草交流友谊赛_第13张图片
第一处将我们的输入压入堆栈,
第二处将类似flag的字符串压入堆栈。
第三处进行检验,
若输入正确,上面call的函数会将eax置1,输出this is flag。
若输出错误,上面call的函数会将eax置0,输出flag error。

flag{2536454177c73464a0a2d5f16a0067e8}

CrackMe_clover01

这几道是Android逆向入门题,但作者之前没接触Android逆向。(菜醒。。)

大体思路其实都差不多,也是先查壳,
并没有加壳。

使用APKIDE或AndriodKiller,
查看MainActivity,直接找到flag
四叶草交流友谊赛_第14张图片

flag{cloveran}

CrackMe_clover02

运行程序,
随意输入一个用户名和注册码。
四叶草交流友谊赛_第15张图片

查找关键字

直接搜索运行程序时反馈的字符串
flag就写在下面。
在这里插入图片描述
当然,查看smali代码修改关键的跳转指令也可。

flag{CloverSec-android reverse}

你可能感兴趣的:(re学习笔记)