首先查壳

攻防世界re Mysterious_CTF

32位无壳

先尝试运行一下

攻防世界re Mysterious_CTF_02

没有反应,扔ida

习惯先查看字符串

攻防世界re Mysterious_逆向_03

发现最上面有个well done,猜测flag就藏在这个位置

双击进入到View,再crtl+X追踪,发现在DialogFunc_0函数中有flag字眼,所以直接F5反编译

攻防世界re Mysterious_逆向_04

看见下方关于flag部分,内容齐全,主要利用了字符串相关函数

memset是把一段内存区域设为指定的值,比如memset(String,0,sizeof(String)),就是给string这个字符串所有的值设为0

atoi函数是把字符串型转化为整型,itoa则是把整型转化成字符串型。大部分情况下,只是类型的改变,我们眼里看见的是没有变化的

strcpy是把后一个字符串的值copy在第一个字符串,strcat就是连接字符串

下面开始分析函数,主要是这一部分:

攻防世界re Mysterious_CTF_05

看怎么样才能得到flag,就是if后面的语句,就可以知道v4 = 122,那么value = 123,在TEXT中前四位是flag,然后根据函数即可得到flag:flag{123_Buff3r_0v3rf|0w}

欢迎各位指导纠正!(可评论区留言)