最有用的一集
What the Beep?
题目描述说有几个地方的音频音量计记录,下载附件后发现是有四个不同位置的记录,从前到后大概是49,56,52,52分贝。题目中又说信号源是140分贝,所以推测是计算信号源到四个位置的相对距离然后在地图得出位置。
经过搜索得到声音衰减公式:
衰减(分贝)=20⋅log10(d1d2)\text{衰减(分贝)} = 20 \cdot \log_{10}\left(\frac{d_1}{d_2}\right)
衰减(分贝)=20⋅log10(d2d1)
所以可以得到:
d1d2=10衰减(分贝)20\frac{d_1}{d_2} = 10^{\frac{\text{衰减(分贝)}}{20}}
d2d1=1020衰减(分贝)
带入数据得到四个地点到信号源的距离之比是
2.1:1:1.5:1.52.1:1:1.5:1.5
2.1:1:1.5:1.5
然后在地图上作图得到大概位置就行了:
nc后输入位置坐标得到flag:
irisctf{ac0ust1c_pr0pagat10n_m0d3ls_c4n_b3_us3d_t0_appr0x ...
4月份报名的比赛终于姗姗来迟,感觉自己终于有点用了
eazyfuzz
发现要我输十个字节让coverage全覆盖
不知道怎么做,乱输一通,发现第五个输入b的时候会覆盖3个1,于是写了一个脚本想爆破出最终的结果:
1234567891011121314151617181920212223242526272829from itertools import productimport stringfrom pwn import *context.log_level = 'debug' letters = string.ascii_lowercase[:26]perms = product(letters, repeat=8)p = remote('101.200.122.251',12199)for perm in perms: full_perm = ''.join((''.join(perm[:4]), 'b', ''.join(perm[4:]))) pr ...
ezrsa
题如其名,真的ez,可以看出是一个二次剩余,直接 from sympy.ntheory.residue_ntheory import nthroot_mod 调用函数就行了。(一开始没发现c和r给反了,卡挺久)
123456789from Crypto.Util.number import long_to_bytesc = 4124820799737107236308837008524397355107786950414769996181324333556950154206980059406402767327725312238673053581148641438494212320157665395208337575556385r = 13107939563507459774616204141253747489232063336204173944123263284507604328885680072478669016969428366667381358004059204207134817952620014738665450753147857from sympy.ntheory ...
前言
公钥实验要求使用sagemath来进行一些算法的编写
目前,编写sage程序并运行主要有以下方式:
使用Linux运行
使用实体机运行
首先apt安装sage
编写代码
使用命令 ‘sage filename’ 运行
使用虚拟机运行
同上
使用wsl运行
同上
使用Windows运行
安装sage软件
使用jupyternotebook在浏览器编辑运行
无论是那种方法,在运行时要么前置步骤复杂(jupyternotebook),要么运行时要输指令。不能说十分麻烦,但就是不爽。
令人不爽的事情 一定要被解决!
效果
通过搜索和摸索我找到了一套如运行python一样简单的运行sage程序的方法,还有代码 高亮 ,先看看效果:
打开VScode新建.sage文件
写完后使用快捷键Ctrl+Alt+n运行sage文件
Ctrl+c可以中断代码运行
是不是非常简单?非常舒适?非常爽?
接下来讲解配置方法
配置
安装wsl
教程参考1:网页链接
教程参考2:网页链接
首先开启Windows的wsl功能,在搜索栏中搜索‘启用或关闭windows功能’
...
实验报告
实验内容
相关理论
试除法
Pollard ρ\rhoρ 算法
Pollard p−1p-1p−1 算法
代码分析
sage部分代码分析
试除法
12345678910111213141516171819202122# sage 试除法def find_prime_factors(n): factors = [] if is_prime(n): return [n] else: for i in range(2, n): while n % i == 0: factors.append(i) n = n // i if n > 1: factors.append(n) return factorstest_list = [4279209601, 11626953439, 192311489255622, 16095650737563753533, 458082200482354988323991 ...
Misc
坐牢8小时,在希望和绝望之间挣扎,唯一能做出来的题被一个5位数字密码拦住了,真是惭愧。在这里复现一下题目,以及解题思路。
Justpaint
下载下来是一个压缩包,被加密了,通过爆破软件得到密码:
打开压缩包后发现两个文件,一个jbn.pth,一个train.py。将train.py里面的代码拿去拷打ChatGPT,理解这段代码就是训练一个模型让图片能逼近flag,继续拷打GPT,得到完整的flag生成脚本:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283import torchimport torch.nn as nnimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Imageimport cv2class JBN(nn.Modu ...
第三次NTL相关理论分析
FermatFermatFermat
基于费马小定理,对于素数p有:
ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p
ap−1≡1(modp)
费马素性检验的基本思想是:对于给定的数nnn,随机选择一个整数aaa,如果an−1mod n=1a^{n-1} \mod n = 1
an−1modn=1,则nnn可能是素数,否则nnn是合数。所以计算an−1a^{n-1}an−1 是否mod n\mod nmodn余111就可以粗略地判断一个数是否为素数,多次实验可以提高判断的正确率。
Solovay−StrassenSolovay-StrassenSolovay−Strassen
基于JacobiJacobiJacobi符号,对于素数p有:
ap−12≡(dp)(modp)a^{\frac{p-1}{2}} \equiv \left(\frac{d}{p}\right) \pmod p
a2p−1≡(pd)(modp)
Solovay−StrassenSolovay-StrassenSolovay−Strassen素性检验的基本思 ...
前置步骤:安装VScode,注册Github账号,学会魔法上网
一、前言
1. 什么是Github Page
Github Page是Github提供的一项静态网页托管服务,可以用来搭建个人博客。静态网站是指网页不是由服务器动态生成的,没有传统意义的后端。静态网页有很多好处,比如安全性高,访问速度快,不需要数据库等等。非常适合用来搭建博客。
2. 什么是Hexo
快速、简洁且高效的博客框架,基于Node.js,使用Markdown(或其他渲染引擎)解析文章,支持EJS、Swig、Haml和Jade等模板引擎渲染网页。Hexo拥有强大的插件系统,可以使用很多第三方插件,比如RSS、Sitemap、Google Analytics等。Hexo的主题也非常丰富,可以自己写主题,也可以使用别人写好的主题。
二、本地部署
1. 安装Git
https://git-scm.com/download/win
无脑下一步就行(想改改路径就自己改,不影响)
2. 安装node.js
https://nodejs.org/en/download/
同样无脑下一步就行(同样想改路径自己改)
检查一下是否 ...
坐牢9小时,赛后看了别人的wp,复现了一下
pinto
万恶的题目名,直接进行一个导的误
下载下来是4703张纯白或纯黑的图片,这些图片宽度均为65,但是高度不定,所有高度为40、60-67、70
图片只有黑和白,很自然的想到是二进制,以黑色为0,白色为1,将得到的二进制串转化为int再使用utf-8编码得到一部分信息。写一个脚本:
123456789101112131415161718192021222324252627282930313233343536373839404142434445import osfrom PIL import Imagefrom Crypto.Util.number import *# 指定包含PNG图像文件的文件夹路径folder_path = r'C:\Users\ASUSROG\Desktop\pintu'# 列出文件夹中的所有文件file_list = os.listdir(folder_path)# 对文件名进行排序file_list.sort()# 创建一个空的二进制字符串来存储颜色信息binary_string = ...
开打!
test_your_nc
nc即可,没有难度
rip