攻防世界——game 游戏

下载下来是一个exe文件,可以用IDA打开

我们先运行一下

这是属于第二种类型,完成一个操作后给你flag

这种题我更倾向于动调直接得到flag

我们查壳

没有保护壳,直接32打开

进入字符串界面,找到显示的那部分

int __cdecl main_0(int argc, const char **argv, const char **envp)
{
  int v4; // [esp+0h] [ebp-FCh]
  int i; // [esp+DCh] [ebp-20h]
  unsigned int v6; // [esp+F4h] [ebp-8h] BYREF

  sub_45A7BE(&unk_50B110);
  sub_45A7BE(&unk_50B158);
  sub_45A7BE(&unk_50B1A0);
  sub_45A7BE(&unk_50B1E8);
  sub_45A7BE(&unk_50B230);
  sub_45A7BE(&unk_50B278);
  sub_45A7BE(&unk_50B2C0);
  sub_45A7BE(&unk_50B308);
  sub_45A7BE(&unk_50AFD0);
  sub_45A7BE("|              by 0x61                                 |\n");
  sub_45A7BE("|                                                      |\n");
  sub_45A7BE("|------------------------------------------------------|\n");
  sub_45A7BE(
    "Play a game\n"
    "The n is the serial number of the lamp,and m is the state of the lamp\n"
    "If m of the Nth lamp is 1,it's on ,if not it's off\n"
    "At first all the lights were closed\n");
  sub_45A7BE("Now you can input n to change its state\n");
  sub_45A7BE(
    "But you should pay attention to one thing,if you change the state of the Nth lamp,the state of (N-1)th and (N+1)th w"
    "ill be changed too\n");
  sub_45A7BE("When all lamps are on,flag will appear\n");
  sub_457AB4("Now,input n \n");
  while ( 1 )
  {
    do
    {
      while ( 1 )
      {
        sub_457AB4("input n,n(1-8)\n");
        sub_459418();
        sub_45A7BE("n=");
        sub_4596D4("%d", &v6);
        sub_45A7BE("\n");
        if ( v6 < 9 )
          break;
        sub_457AB4("sorry,n error,try again\n");
      }
      if ( v6 )
      {
        sub_4576D6(v6 - 1);
      }
      else
      {
        for ( i = 0; i < 8; ++i )
        {
          if ( (unsigned int)i >= 9 )
            j____report_rangecheckfailure();
          byte_532E28[i] = 0;
        }
      }
      j__system("CLS");
      sub_458054();
    }
    while ( byte_532E28[0] != 1
         || byte_532E28[1] != 1
         || byte_532E28[2] != 1
         || byte_532E28[3] != 1
         || byte_532E28[4] != 1
         || byte_532E28[5] != 1
         || byte_532E28[6] != 1
         || byte_532E28[7] == 1 );
    sub_457AB4(v4);
  }
}

我们找,可以找到这个sub457ab4就是flag的函数

我们复制这个函数sub_457AB4

进入到这个界面,我们之间打这个输出的 sub45a7be函数给改为复制的函数

选中CTRL+ALT+K

复制成功是这样

然后我们保存一下

在edit里面选中patch,选最后一个apply

最后保存

再次运行就直接给flag了

(这个方法如果是纯净版的IDA可能需要插件)

又要到flag了,兄弟们!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
***防世界中的一个工具,用于拦截和修改HTTP请求和响应。通过使用repeater工具,攻击者可以拦截到HTTP请求并修改请求的内容,例如修改请求头中的XFF(X-Forwarded-For)字段和referer字段。这样可以伪造请求的来源IP地址和引用页面,从而达到欺骗和绕过一些安全机制的目的。通过对请求的修改,攻击者可以进行各种攻击,例如欺骗服务器以为请求来自信任的来源或者绕过IP限制。 使用repeater工具时,需要注意一些细节。首先,要关注read(0, s, 0x40uLL)这一部分,其中s的地址为ebp-30h,长度为40h。这可能存在溢出点,可以利用溢出来修改程序的执行流程。其次,当v5等于3281697时,会打印出main函数的地址,这对于绕过地址随机化是很重要的。此外,还要注意sub_982(byte_202040, 48LL),其中byte_202040是在bss段的202040处存放我们第一次输入的内容。这些细节可以作为攻击的关键点。 XFF(X-Forwarded-For)是一个HTTP请求头字段,后面跟着发起HTTP请求的原始IP地址。如果是本机发起的请求,XFF字段的值通常为127.0.0.1。攻击者可以通过修改XFF字段的值来伪造请求的来源IP地址。这在一些情况下可以欺骗服务器以为请求来自受信任的来源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [攻防世界——xff_referer](https://blog.csdn.net/weixin_73668856/article/details/128004633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [repeater【攻防世界】](https://blog.csdn.net/qq_41696518/article/details/126650028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Nickname

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值