点击此处获得更好的阅读体验
题目考点
深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。
Pwntools提供了方便的网络交互编程的接口
解题过程
使用nc连接到靶机开放端口。返回结果如下所示,可以看出是一个数独之类的游戏,但是交互时间很短,只能通过编写脚本来完成:
利用dfs(深度优先搜索算法)来编写计算数独空缺数字脚本,根据题目提示,这个数独只需要横向和纵向的数字和为45,并且1-9只能出现一次,部分脚本如下所示:
exp.py使用pwntools库负责接收数据和发送数据,solve.py负责将数据整理并利用 exp.py
1 | #coding:utf-8 |
1 | #coding:utf-8 |
深度优先搜索算法来得出空缺的数字,最后由exp.py发送,结果如下: