BUUCTF Reverse/[GUET-CTF2019]number_game

博客详细解析了BUUCTF Reverse/GUET-CTF2019的number_game挑战。通过文件信息和ID分析,发现flag长度为10,由0-4的ASCII码组成。题目转化为构建特定二叉树并进行中序遍历的数独问题。通过解决数独,得出中序遍历结果,并根据二叉树结构得到最终答案:1134240024,验证后得到flag{1134240024}。
摘要由CSDN通过智能技术生成

BUUCTF Reverse/[GUET-CTF2019]number_game

在这里插入图片描述

先看文件信息

在这里插入图片描述

IDA64位打开

unsigned __int64 __fastcall main(int a1, char **a2, char **a3)
{
   
  __int64 v4; // [rsp+8h] [rbp-38h]
  __int64 v5; // [rsp+10h] [rbp-30h] BYREF
  __int16 v6; // [rsp+18h] [rbp-28h]
  __int64 v7; // [rsp+20h] [rbp-20h] BYREF
  __int16 v8; // [rsp+28h] [rbp-18h]
  char v9; // [rsp+2Ah] [rbp-16h]
  unsigned __int64 v10; // [rsp+38h] [rbp-8h]

  v10 = __readfsqword(0x28u);
  v5 = 0LL;
  v6 = 0;
  v7 = 0LL;
  v8 = 0;
  v9 = 0;
  __isoc99_scanf("%s", &v5);
  if ( (unsigned int)sub_4006D6(&v5) )  //检测是否字符是否符合要求
  {
   
    v4 = sub_400758(&v5, 0LL, 10LL);      //构建二叉树
    sub_400807(v4, &v7);         //中序遍历
    v9 = 0;
    sub_400881(&v7);      //将遍历的结果插入数组中
    if ( (unsigned int)sub_400917() )
    {
   
      puts("TQL!");
      printf("flag{"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ofo300

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

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

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

打赏作者

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

抵扣说明:

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

余额充值