BUUCTF CTF-RE reverse2

1、使用查壳,直接拖入工具中,文件是无壳的64位的文件。

2、直接使用64位的ida查看,直接进入主函数查看代码,这里直接发出原图

代码其实很简单,可以直接看这一句

for ( i = 0; i <= strlen(&flag); ++i )
{
      if ( *(&flag + i) == 'i' || *(&flag + i) == 'r' )
        *(&flag + i) = '1';
}

这里吃了有点c语言指针的亏,也是才知道 *(&flag + i) 等于python 代码的 flag[i],

这里的意思就是把flag字符串里的 “i”和“r" 换成 数字 1

flag 字符的内容为

然后后面就是直接比较输入的字符与转换后的flag字符相比相同就是flag

flag{hack1ng_fo1_fun}

原文地址:https://www.cnblogs.com/txxj/p/13687392.html