[BUUCTF]REVERSE解题记录 [ACTF新生赛2020]easyre

1.查壳,发现upx壳,先脱壳,再放进32位ida中

 __main();
  v4 = 42;
  v5 = 70;
  v6 = 39;
  v7 = 34;
  v8 = 78;
  v9 = 44;
  v10 = 34;
  v11 = 40;
  v12 = 73;
  v13 = 63;
  v14 = 43;
  v15 = 64;
  printf("Please input:");
  scanf("%s", &v19);
  if ( (_BYTE)v19 == 65 && HIBYTE(v19) == 67 && v20 == 84 && v21 == 70 && v22 == 123 && v26 == 125 )
  {
    v16 = v23;
    v17 = v24;
    v18 = v25;
    for ( i = 0; i <= 11; ++i )
    {
      if ( *(&v4 + i) != _data_start__[*((_BYTE *)&v16 + i) - 1] )
        return 0;
    }
    printf("You are correct!");
    result = 0;
  }
  else
  {
    result = 0;
  }
  return result;
}

2.可以看出v4的值是 _data_start__数组中每一位-1得到的。可以看到 _data_start__的值是

编写脚本可以得到结果:

 

所以答案是flag{U9X_1S_W6@T?}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值