关于CTF中脚本的编写及使用。ISCC之Retrieve the passcode

前言

声明:本人纯小白无任何经验。以下纯属个人见解不代表任何组织。

前几天打了下CTF(红帽杯)的线上赛,不得不说,高手云集。我也是真的菜,签到即退场。第二天去做ISCC的练武题在做杂项的时候发现一些问题都是需要自己动手(先动脑)做的。工具是死的,题和人都是活的。

二次声明:由于本人真的很菜,就写这一个题的过程了

50分最基础了。

解题思路:题目里说Scatter百度一下去

是个函数,那么提前知道应该是要用到了。

打开题目:

看特征三个一组加上刚才百度查到的散点图函数,应该是三维图像(我这里因为嫌找工具麻烦,而且也是想锻炼自己python能力就想自己写一个了)

python编写:先在网上查找scatter函数里面都有什么参数。了解到的有颜色,坐标等等。

因为这个函数比较简单就没有找相似的例子直接开始写了(使用时需要在pycharm中安装MATLAB这个库)

初生牛犊不怕虎,就硬写。。。。。。。然后就出不来东西,也检查不出来错。只好去网上找相似的看,去用吸星大法吸取经验。

Python中scatter函数参数及用法详解_python_脚本之家 (jb51.net)

https://www.jb51.net/article/127806.htm

这个里面写的是二维的坐标,我借鉴之后换成我的三维图像终于成了

并且只需要稍微拖一下角度

python代码如下:(很简单的几行代码,如果是200分的题400分的题,要自己写的话,估计是一项大工程了)


import numpy as np
import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

lis = [1,3,1,1.25,3,1,1.5,3,1,1.75,3,1,2,3,1,2,2.75,1,2,2.5,1,2,2.25,1,2,2,1,2,1.75,1,2,1.5,1,1,2.25,1,1.25,2.25,1,1.5,2.25,1,1.75,2.25,1,1,1.5,1,1.25,1.5,1,1.5,1.5,1,1.75,1.5,1,3,3,1,3.25,3,1,3.5,3,1,3.75,3,1,4,3,1,3.25,2.25,1,3.5,2.25,1,3.75,2.25,1,4,2.25,1,4,2,1,4,1.75,1,4,1.5,1,3,1.5,1,3.25,1.5,1,3.5,1.5,1,3.75,1.5,1,3,1.75,1,3,2,1,3,2.25,1,3,2.5,1,3,2.75,1,5,3,1,5.25,3,1,5.5,3,1,5.75,3,1,6,3,1,6,2.25,1,6,2,1,6,1.75,1,6,1.5,1,5.75,1.5,1,5.5,1.5,1,5.25,1.5,1,5,1.5,1,5,2.25,1,5.25,2.25,1,5.5,2.25,1,5.75,2.25,1,5,2.5,1,5,2.75,1,7,3,1,7.25,3,1,7.5,3,1,7.75,3,1,8,3,1,8,2.75,1,8,2.5,1,8,2.25,1,8,2,1,8,1.75,1,8,1.5,1,9,3,1,9.25,3,1,9.5,3,1,9.75,3,1,10,3,1,10,2.75,1,10,2.5,1,10,2.25,1,9.75,2.25,1,9.5,2.25,1,9.25,2.25,1,9,2.25,1,9,2,1,9,1.75,1,9,1.5,1,9.25,1.5,1,9.5,1.5,1,9.75,1.5,1,10,1.5,1,11,3,1,11.25,3,1,11.5,3,1,11.75,3,1,12,3,1,12,2.75,1,12,2.5,1,12,2.25,1,12,2,1,12,1.75,1,12,1.5,1,11.75,1.5,1,11.5,1.5,1,11.25,1.5,1,11,1.5,1,11,1.75,1,11,2,1,11,2.25,1,11,2.5,1,11,2.75,1,11.25,2.25,1,11.5,2.25,1,11.75,2.25,1]
x = lis[0::3]
y = lis[1::3]
z = lis[2::3]      #把题目里的坐标分别列表里,遍历给x,y,z。
fig = plt.figure()

ax = plt.figure().add_subplot(111, projection = '3d')     #111图中画3D图


ax.set_title('sandianjiemi')   #题目


ax.set_xlabel('X zhou')      #轴
ax.set_ylabel('Y zhou')
ax.set_zlabel('Z zhou')


ax.scatter(x,y,z,c = 'r',marker = '.')     #坐标   颜色   图形

plt.legend('x1')         # 设置图标

plt.show()           # 将排列好的显示出来

注:lis的数据都是逗号隔开当然不是一个个换掉的,文本编辑器里自带替换功能噻!

总结:这个小题很简单,但以我看来(个人观点)难题的解题过程也是会用到的这些基本功能。想象一下,不联网的比赛中,如果你只会用工具,而此时工具掉链子了,难道就只能退赛?

需要的功能大多可以自己编写脚本实现。(大佬勿喷)而且许多题中也需要能看懂一些不常见的代码。这也是很重要的噻!。。。。。。。现阶段的我以为,扎实的python能力对CTF的解题是一个很好的辅助,诸君有任何高见都可以来指导在下,超级欢迎!!!(我是小白!!我是小白!!我是小白!!)

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值