首页
社区
课程
招聘
[原创] CTF2019 Q4 街机少年 题目与设计思路
发表于: 2019-11-24 18:11 4217

[原创] CTF2019 Q4 街机少年 题目与设计思路

2019-11-24 18:11
4217

战队名称:兔斯基保护协会

手机:(需要的话找我要,这个帖子是比赛结束后要公开的,就不在这里写了)

参赛题目:街机少年

题目答案:IRrBJtrsJi@dBWnwvyppwIpswIygxJzz(对应的用户名是KCTF)


crackme程序见附件,

压缩包内容:

    Totoro.exe 主程序

    readme.txt 公开的用户名和Key,以及一些其它介绍


题目设计:

(如有需要,可以联系我提供源代码)

本题目采用规则二


题目架构:

获取用户输入->转码->小游戏(对战AI)->出结果


难度声明:

由VS2017编译链接无后续处理、没有使用虚拟机、没有使用反调试。

使用了 SetUnhandledExceptionFilter,是烟雾弹,加不加调试器都跑不到,不是反调试。


小游戏部分

本题的主体是一个小游戏——经典游戏捡石子。笔者小时候特别喜欢和同学玩这个游戏,现在笔者把这个游戏的玩法做成了AI。(鉴于AI就在程序里,破解者如果自己没有发现制胜方法,也可以把AI逆了,得到必胜玩法)

捡石子规则如下:

1)有n堆石子,对于我的程序来说,我设置了15堆石子,是个数组。此数组由用户名参与初始化,来实现用户名/游戏的多样性。(用户名只用在两个地方,一个是这里,另一处是用用户名的第一字节参与初始化了一个字符转换算法的底数,下文“转码部分”会再次提到)


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-12-8 10:55 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
怎么把源码找出来的呀,我需要学习学习
2019-12-8 14:42
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
高手
2019-12-8 21:04
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
4
原来是这个游戏啊,我有最简单的算法,根本不需要什么AI
把每堆的数量全xor起来得到的值,就是当前应该拿的数量
2019-12-9 10:41
0
游客
登录 | 注册 方可回帖
返回
//