首页 > 其他分享 >[GUET-CTF2019]number_game

[GUET-CTF2019]number_game

时间:2023-07-30 21:45:02浏览次数:47  
标签:__ CTF2019 number a1 game a2 int64

[GUET-CTF2019]number_game

    打开题目,立刻定位关键函数
  for ( i = 0; i <= 4; ++i )
  {
    for ( j = 0; j <= 4; ++j )
    {
      for ( k = j + 1; k <= 4; ++k )
      {
        if ( *(&unk_601060 + 5 * i + j) == *(&unk_601060 + 5 * i + k) )
          v1 = 0;
        if ( *(&unk_601060 + 5 * j + i) == *(&unk_601060 + 5 * k + i) )
          v1 = 0;
      }
    }
  }
  第一次碰到,甚至还以为是要我去爆破(写出来是28个嵌套for循环,最后还失败了哈哈哈哈) 然后就去搜了wp,发现这是一种数独的判读,类似于迷宫一样,也算是一种题型 特征也很明显,就是判断行和列能不能相等   然后第二个有意思的就是中序遍历的二叉树
_int64 __fastcall sub_400807(__int64 a1, __int64 a2)
{
  __int64 result; // rax
 
  result = a1;
  if ( a1 )
  {
    sub_400807(*(a1 + 8), a2);
    *(a2 + dword_601080++) = *a1;
    return sub_400807(*(a1 + 16), a2);
  }
  return result;
}
  emm,没学过,动调一下 直接输入0123456789 绕过读入限制之后 得到7381940526 也就是经过加密后的顺序,那么接下来解出数独中的未知数 再按照加密顺序重新排序一下,flag就出来了   附上IDA分析: 以及动调泄露   总结一下,还是对常见算法特征的判断:

二叉树的特征就是两个自身递归加上一个赋值

而数独判断就是行和列相等加上三个for循环嵌套

标签:__,CTF2019,number,a1,game,a2,int64
From: https://www.cnblogs.com/zydt10/p/17592100.html

相关文章

  • games101 HomeWork6
    Games101HomeWork6导航导航作业要求IntersectP(constRay&ray,constVector3f&invDir,conststd::array<int,3>&dirIsNeg)intheBounds3.hpp:这个函数的作用是判断包围盒BoundingBox与光线是否相交,你需要按照课程介绍的算法实现求交过程。getIntersection(BVHBuil......
  • games101 HomeWork5
    Games101HomeWork5导航导航任务Renderer.cpp中的Render():这里你需要为每个像素生成一条对应的光线,然后调用函数castRay()来得到颜色,最后将颜色存储在帧缓冲区的相应像素中。Triangle.hpp中的rayTriangleIntersect():v0,v1,v2是三角形的三个顶点,orig是光线的起点......
  • games101 HomeWork
    Games101HomeWork4bezier:该函数实现绘制Bézier曲线的功能。它使用一个控制点序列和一个OpenCV::Mat对象作为输入,没有返回值。它会使t在0到1的范围内进行迭代,并在每次迭代中使t增加一个微小值。对于每个需要计算的t,将调用另一个函数recursive_bezier,然后该函数将返......
  • [ABC296E] Transition Game
    题意:给定\(n\)个数,\(a_i\)为\(i\)的后继,有\(n\)轮游戏中,若第\(i\)轮游戏,对于\(1~n\)中任意一个后继次数\(j\),都能选择一个数\(x\)使得\(x\)后继\(j\)次之后都为\(i\),则称之赢一局,问赢的局数。首先可以肯定一个数的后继是唯一确定的,我们可以从任意\(1~n\)中的连向它的后继。考虑......
  • 2023“钉耙编程”中国大学生算法设计超级联赛(4)Number Table
    题意对于一个\(2\timesn\)的矩阵,若每行每列数均不同且均\(\in[0,2^k)\),同时\(2n\)个数异或和为\(0\)则称该矩阵合法。给定\(n,k\),求总方案数。做法考虑若只有一行,即求\(n\)个不相同的数异或和为\(0\)的方案数:假定前\(n-1\)个数不同且已确定,此时仅需考虑第\(n\)个数是否在前......
  • Game as a Service —— 开源云游戏搭载WebRTC
    软件即服务,基础架构即服务,平台即服务,通信平台即服务,视频会议即服务,那么,游戏即服务(GameasaService)如何呢?已经有不少科技公司试水云游戏,最著名的要数Google的Stadia。对WebRTC来说,Stadia已经算是老朋友了,但是其他云游戏也能以同样的方式运用WebRTC吗?ThanhNguyen研究了他自己的开......
  • ChatGPT 在JavaScript中,由于Number类型只能表示52位精度,因此默认情况下无法进行超过16
    ChatGPT在JavaScript中,由于Number类型只能表示52位精度,因此默认情况下无法进行超过16位的乘法运算。但是,你可以使用BigInt来处理大数字。BigInt是目前JavaScript中处理超出Number精度限制的数字的最佳方式。它是一种新的数据类型,可以表示任意精度的整数。以下是一种解决方案:1.......
  • 2023-07-25 uview1.0的u-number-box组件在渲染时会触发change,如何才能避免事件影响?==
    前言:购物车用到加减购物车数量的一个步进器组件,使用的是uview组件1.0版本的u-number-box。该组件设置了一个@change事件,该事件会在页面渲染的时候触发一次,如果你在里面调用了接口,比如增加/减少购物车数量,那么每次一刷新购物车该事件就会被触发,从而导致不必要的报错。解决方案:在......
  • IfcMonthInYearNumber
    IfcMonthInYearNumber类型定义IfcMonthInYearNumber是一个整数,用于定义指定月份在一年中的位置。日历月编号映射到日历月名称,如下所示:1:January2:February3:March4:April5:May6:June7:July8:August9:September10:October11:November12:December ......
  • chinese game
    0.0.0版本震撼来袭代码:#include<bits/stdc++.h>#include<windows.h>#include<conio.h>usingnamespacestd;intpx=10,py=5,ma=0;stringjie[100005]={"这是墙壁,你不能通过","这是地面,上面似乎布满了灰尘"};stringdui[100005]={"墙","地&quo......