首页
社区
课程
招聘
[原创]看雪秋季赛第2题出题思路
发表于: 2017-10-30 17:04 7095

[原创]看雪秋季赛第2题出题思路

Fpc 活跃值
4
2017-10-30 17:04
7095

看雪秋季赛第2题出题思路


by Fpc


--------------------------------------


    首先,第2题完赛了,近1万的关注度,99人过关,从防守方的角度看是很理想的,有参与,而且付出努力(通篇看代码)后可解,努力就可能有收获。


    ctf防守方有多种选择,比如之前比赛有强度很大的壳,无人攻破,是一种思路;或者明码比较,这也是一种思路。年中赛时,有的题令人印象深刻,爱琴海vb pcode加了smc改关键运算代码,readyu数论或密码学应用,还有令人感叹的围绕brainfucker出题和解题技巧,等等,各有侧重,不管能否解出与否,相信参与者都会在相关方向上有所学习和收获。


    防守方最难是题目难度与通过率的估计,出得太难,难以说这是防守方的成功;出得太易,攻防双方都觉得不爽。个人理解,出题解题就是制迷与猜迷的过程,要达到一个平衡很不容易,最终目标即是完成一个较好的心理攻防游戏。


    这道题的思路也是很偶然。大家知道,任何一本C语言教材,开始介绍输入输出时就会涉及到printf, scanf,但一般到高级应用部分才会告诉你scanf有栈溢出漏洞,缓冲区要够用才行。《软件漏洞分析》一书中,failwest也是从strcpy(比scanf应用范围更广)这个函数入手,逐步介绍栈溢出知识的。于是就想,为何不用scanf溢出来控制程序流程,让它走到真正的验证处,实现明暗的转换,对验证处再加以适当的花指令保护。


    题目的设计主体是VC6作个框架,以masm作辅助。有网友怀疑我改了系统函数,这个要求对我是有点高了


   主程序是VC6,流程比较简单。设了两个flag,实际有用的一处,模拟注册成功过程



    最后感谢众位解题大神,有的分析已经超出作者的预想,我也学到很多;感谢林版、netwind等各位版主辛苦地维护论坛;感谢kanxue长期以来为大家提供这一方乐土。希望以后还有机会将游戏进行下去。


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

收藏
免费 1
支持
分享
最新回复 (13)
雪    币: 223
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持下出题大佬
2017-10-30 17:51
0
雪    币: 39
活跃值: (477)
能力值: ( LV9,RANK:155 )
在线值:
发帖
回帖
粉丝
3
支持下出题大佬
2017-10-30 18:28
0
雪    币: 200
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
受益匪浅,谢谢大佬
2017-10-30 18:38
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错!
2017-10-30 19:04
0
雪    币: 3136
活跃值: (97)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
6
支持出题大佬
2017-10-30 19:38
0
雪    币: 0
活跃值: (11)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
感谢楼主
2017-10-31 20:39
0
雪    币: 113
活跃值: (76)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
能问一下用什么工具或方法加花指令的么
2017-10-31 21:48
0
雪    币: 598
活跃值: (282)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
9
dragonwang 能问一下用什么工具或方法加花指令的么
这个只能自己编程实现了,你可以找找相关花指令还有变形的资料
2017-11-1 08:54
0
雪    币: 1318
活跃值: (248)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
10
又涨了一个脑洞,谢谢大佬,分享出题思路
2017-11-1 08:55
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
thank  大佬,分享思路,有助于提高技术
2017-11-6 22:21
0
雪    币: 4
活跃值: (12)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
支持大佬
2017-11-8 14:28
0
雪    币: 3
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
(•̀ㅂ•́)و✧
2017-11-13 14:04
0
雪    币: 3
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
请问getinput函数是如何编译,这个函数既没有普通函数都有的push  ebp,mov  ebp,esp  操作,而且还是使用esp引用局部变量,请问这一点是如何办到的
2017-11-14 11:00
0
游客
登录 | 注册 方可回帖
返回
//