看雪2022 KCTF 春季赛 | 第七题设计思路及解析


出题团队简介

赛题设计思路
题目是一个简单的四宫格数独:
0,3,1,0
1,0,0,3
2,0,3,4
0,4,2,0
答案是:按顺序从左到右、从上到下填入数字就行
4224131
提示success就表示成功
赛题解析
本赛题解析由看雪论坛学者 Ally Switch 给出:

Step1
运行程序,随便进行一些输入,根据反馈可以得出:

Step2

1、最早弹出的提示"请输入7位数字",不在循环内,因此只会在第一次打开程序时提示一次;
2、蓝色方框位于大循环中的第一个小循环里,通过读取输入的字符串,并判断字符串的长度是否为7,否则就会在循环里提示"请输入长度7";
3、橙色方框在一个for循环中对字符串进行校验,若存在数字之外的字符,则会提示"请输入数字";
Step3

1、通过与标准库中的fmt_Println比较,可以发现fmt_Println_0多了一大段的校验判断过程。


Step4

1、通过交叉引用,可以找到给变量赋值的地方,发现位于fmt_Print中,也就是打印提示"->"的地方。由于这些变量的地址是连续的,所以可以直接转换为数组来看(默认名为fmt_Abc)
这里需要保证,矩阵每行每列,以及框出的4个四宫格的元素之和,必须为10。这里刚好有7个0,而要求输入的字符串刚好是7位数字,所以这里猜测是用输入的7位数字,填充这7个0的位置,从而满足校验。


第八题《迷雾散去》正在进行中
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- Win11通知系统已成广告位:微软频繁推广《使命召唤》、Microsoft 365等
- 远控工具ToDesk增加新限制!主控端必须开VIP才能控制精简版
- “如果没有从事研发,学习自动化的我可能在装水表”
- LLVM PASS类pwn题入门
- 因合约代码Bug,约2.2亿元以太币被永久锁定
- 被弃用的 Docker 未死:带着 1.05 亿美元融资“回归”,估值高达 21 亿!
- 雷军吐槽友商“PPT首发”,联想高管反击;iPhone 6 Plus成过时产品;IPython 7.30正式发布|极客头条
- 从广域网的浅滩到市场应用的深海,SD-WAN 3.0的成功转身
- AndroidNativeEmu和unidbg对抗ollvm的字符串混淆
- 华为陈黎芳:星光不灭,携手同行
- 打开数“智”化之门,一字之差带来的思考
- 亚洲诚信揽获DigiCert亚太区圆桌会议两项重磅大奖
赞助链接