Reverse CTF逆向做了几道题就有上面图片的那种感觉,淡定淡定。作为新手小白学的地方还有很多很多,做逆向题目用的很多就是IDA和一些查壳工具,再对IDA中main函数再进行分析,主要是对这点分析还是有点疑惑,所以把汇编学好是很重要的,要不然你还的一个个搜素这是怎么编程的。
1.re1
先对下载的exe文件进行查壳
这个文件没有加壳,我们从中得到这个文件是32bit,然后我们再用IDA打开找到main函数
我们从这个函数中得到flag就在v5中,我们跟进v5
看到两行16进制,我们在对这两行16进制进行字符串转换,在IDA中我们用R键就可以进行16进制转字符串
转换成字符串后我们看到这就是我们想要的flag但是顺序肯定是不对的,这里我们就要注意16进制大端和小端,如果一串16进制是大端那就是从前往后读,若是小端就是从后往前读。
所以最后的flag就是DUTCTF{We1c0met0DUTCTF}
2.Hello, CTF
这个exe也是没有进行加壳,同样是32bit。同样的拖到IDA中查看main函数按F5将汇编代码生成C语言代码
这一串16进制很可疑点不进去,再看看整体的代码
可以看到先是将字符串复制到v13的位置,后面对输入进行了判断,输入的字符串不能大于17,将字符串以十六进制输出,然后,再将得到的十六进制字符添加到v10,进行比较,看输入的字符串是否和v10的字符串相等,如果相等,就可以得到真确的flag
最后还是把那串16进制拖进16进制转换文本字符串中就得到flag
3.insanity
先看一下有壳没壳,这个文件也是没有加壳的,我们拖到IDA中chakanmain函数
分析main函数我们发现flag输出在最后第二行puts,我们跟进
然后会看到一串有flag的字符串这就是我们想要的flag
4.logmein
首先还是查壳,判断有没有加壳,这个显然没有,我们再给他拖到IDA中分析main函数
需要长度不小于v8的长度输入才能得到flag,strcpy是复制字符串的意思,前面定义的v8数组只有8个,但是后面的字符串是超过8个的,所以有可能这个v8定义是反编译错误的,这时候我们要把v7转换成字符串字符需要倒过来,因为是小端存储,再利用python编码得到flag。
攻防世界reverse篇新手眨到
最新推荐文章于 2024-05-12 04:11:24 发布