首页 > 其他分享 >[安洵杯 2019]game

[安洵杯 2019]game

时间:2023-08-04 11:12:28浏览次数:38  
标签:str2 安洵 flag len game 2019 数组 range check1

[安洵杯 2019]game

将文件放入IDA中打开,查看main()函数

image-20230713103733078

发现读取用户的输入,并存入v8这个变量当中,下面有两个关键函数check1()check3()使用到了该变量,我们首先分析check1()

image-20230713105604301

发现有大量的循环,根据以往的经验,这是一种混淆手段,此题的程序流程不算复杂,可以跟着流程一步步分析

image-20230713105933045

image-20230713105940471

image-20230713110003310

经过分析得知,该函数执行的操作为:

将用户的输入的前半段与后半段进行呼唤→然后再以两个为单位进行两两互换→最后再按位做运算

然后我们返回分析check()函数

image-20230713110310057

发现该函数最后提示成功需要v4==1,此时点进check2()进一步分析,发现同样经过了混淆,我们直接寻找关键的部分

image-20230713110826115

首先是将用户的输入减去48存入v16中,此时推测如果用户输入的是数字,则该操作为将字符型转换为数字型,继续分析

image-20230713111317011

image-20230713111513765

然后将v16的值赋值给D0g3这个数组,看这个数组索引的计算方式,推测形式为二维数组,又根据v15必须小于9来看,这是一个9×9的数组

image-20230713111627287

然后又跟sudoku这个数组进行比较,点进这个数组查看发现是已知的,我们直接将数据以9×9的形式提取出来,然后整理成如下所示

image-20230713111904520

发现这似乎是一个数独,然后根据先前的操作,得出该数独的解应该是经过check1()变化后的值,我们在网站上找到数独计算器可以快速得到答案

image-20230713113621701

所以此数独的解为:469364162894685722843556137219876255986

然后再根据check1()的逻辑编写解题脚本:

str1 = '4693641762894685722843556137219876255986'
str2 = []
for i in range(len(str1)):
    temp = int(str1[i])+20+48
    str2.append(str(temp & 0xf3 | ~temp & 0xc))

for i in range(0,len(str2),2):
    temp1 = str2[i]
    str2[i] = str2[i+1]
    str2[i+1] = temp1

flag = ''
for i in range(len(str2)//2):
    temp2 = str2[i]
    str2[i] = str2[len(str2)//2 + i]
    str2[len(str2)//2 + i] = temp2

for i in range(len(str2)):
    flag += chr(int(str2[i]))

print(flag)

因此此题的flag为:flag:flag{KDEEIFGKIJ@AFGEJAEF@FDKADFGIJFA@FDE@JG@J}

标签:str2,安洵,flag,len,game,2019,数组,range,check1
From: https://www.cnblogs.com/h40vv3n/p/17550898.html

相关文章

  • 2023年XCode升级GameCenter必读
    一、GameCenter功能介绍iOS中的GameCenter是Apple提供的游戏中心服务,它具有以下核心功能:玩家账号系统-提供玩家帐号系统,可以在不同游戏中使用统一的GameCenter账号。成就与排行榜-可以设置游戏内的成就系统,以及查看不同游戏的排行榜。多人对战-支持通过WiFi或......
  • 亚洲唯一:瀚思科技入选2019 Gartner SIEM 领域 Peer Insights,其他第一象限的有splunk和
    亚洲唯一:瀚思科技入选GartnerSIEM领域PeerInsights  网络安全技术与产业,正在由传统的合规驱动,走向合规与需求双轮驱动。关注用户需求、倾听用户声音,根据实际情况打造优质的安全产品和服务,是任何一家优秀网络安全提供商的立命之本。——安全牛主编李少鹏近日,瀚思科技(HanSight......
  • SMU Summer 2023 Contest Round 9(2019 山东省大学生程序设计竞赛)
    2019山东省大学生程序设计竞赛A.Calandar纯模拟吧(感觉我做麻烦了(?),就是如果问的是未来的日期,就用相隔天数取模后加上这天的星期,如果问的是曾经的,就用这天的星期减去相隔天数的取模后的数,因为是减法,记得加模数#include<bits/stdc++.h>#defineintlonglong#defi......
  • [刷题笔记] Luogu P5662 [CSP-J2019] 纪念品
    ProblemDescription类似于炒股票,有买进有卖出,当天可以既买进又卖出无限次,现在有若干件物品,每件物品都有一个价格,每天每件物品的价格不一致,你初始有\(m\)元钱,想要通过若干次购进卖出的操作,使得\(T\)天后你手里的钱最多。要求:\(T\)天结束你手中的股票必须全部售出。Solution乍看......
  • CTFer成长记录——CTF之Web专题·极客大挑战 2019—http
    一、题目链接https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]Http二、解法步骤  本题名叫http,那么应该与http请求包里面的东西有关。   主页是一个招新页面,没有什么特别的,看看源代码:  在右侧的最下面发现了另一个页面,访问看看......
  • 2019 山东省大学生程序设计竞赛
    A.Calandar#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definempmake_pairtypedefpair<int,int>pii;typedefpair<string,int>psi;intres=LLONG_MIN;map<string,int>cc;map<int,string>tt;vo......
  • Windows Server 2019 OVF, updated Jul 2023 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedJul2023(sysin)-VMware虚拟机模板2023年7月版本更新,现在自动运行sysprep,支持ESXiHostClient部署更新日期:FriJul28202317:12:00GMT+0800,阅读量:6244请访问原文链接:https://sysin.org/blog/windows-server-2019-ovf/,查看最......
  • Windows Server 2019 中文版、英文版下载 (updated Jul 2023)
    WindowsServer2019中文版、英文版下载(updatedJul2023)WindowsServer2019Version1809,2023年7月更新请访问原文链接:https://sysin.org/blog/windows-server-2019/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org本站将不定期发布官方原版风格月度更新IS......
  • Unity之 GameObject.Find()路径正确却找不到物体
    有一个需求,需要用代码找到一个GameObject并将其取消激活。我是这么写的:GameObject.Find("mainCanvas").SetActive(false);但你运行后就会发现它报错;而报错的内容是找不到物体。反复核实路径正确,且物体确实是激活状态后我对这个代码的报错感到很不解。直到我把代码改成了:v......
  • [GUET-CTF2019]number_game
    [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))......