首页 > 其他分享 >reverse2

reverse2

时间:2024-11-11 22:43:39浏览次数:1  
标签:字符 string puts s2 flag reverse2

题目链接:reverse2

下载附件后,使用 IDA 进行反编译,定位到 main 函数,如下。

main 函数中主要需要分析的地方如下。

    for ( i = 0; i <= strlen(&flag); ++i )
    {
      if ( *(&flag + i) == 'i' || *(&flag + i) == 'r' )
        *(&flag + i) = '1';
    }
  printf("input the flag:");
  __isoc99_scanf("%20s", s2);
  if ( !strcmp(&flag, s2) )
    return puts("this is the right flag!");
  else
    return puts("wrong flag!");

即,程序将目标字符串中的字符 "i" 与字符 "r",转换为 "1" 后,与用户的输入进行比对,若一致,则通过。

从程序中提取到的目标字符串为:{hacking_for_fun}

因此,直接使用 Python 脚本转换字符,即可获得 flag。

string = "{hacking_for_fun}"

string = string.replace("i", '1')
string = string.replace("r", '1')

print("flag" + string)

标签:字符,string,puts,s2,flag,reverse2
From: https://www.cnblogs.com/imtaieee/p/18540744

相关文章

  • BUUCTF Reverse reverse2 wp
    与上一题相同。分析代码得将字符串中的“i”“r”替换成“1”即为flag值。......
  • BUUCTF Reverse2
    Reverse2在IDA中通过搜索定位到此图表选中后F5生成伪代码点击查看代码for(j=0;;++j){v8=j;v2=j_strlen(Str2);if(v8......