2026-SparkCTF-crypto-writeup
Crypto 方向 初赛部分 题目1:寻找戒指的旅途 让AI帮我静态分析了一下,发现是PyInstaller 打包的 Python 程序,让他帮我解一下PyInstaller包并反编译出pyc,看到了加密原理: c≡(m∗iv)mod sc \equiv (m * iv) \mod s c≡(m∗iv)mods 接下来很简单,由output.json里的两组m,iv,c做一个gcd先恢复出模数s,然后根据最后一组的iv,c计算m exp: 123456789101112131415161718192021222324252627import jsonimport mathfrom Crypto.Util.number import long_to_byteswith open("output.json", "r", encoding="utf-8") as f: obj = json.load(f)# 通过已知样本恢复模数 st = []for row in obj["data"]: m...
2026-DesCTF-crypto-writeup
Crypto 方向 题目1:签到 不知道那串疑似base32的密文什么意思,在Google地图输入坐标发现是卡塔尔的一个空军基地,然后结合2-28的日期,搜索新闻能找到真实承诺4 ps:这题出得何意味??? 题目2:check in 在源代码中,d的生成是在RR上的,也就是RealField(53),是53-bit的双精度浮点数,那么之后用Integar转回整数的时候就只保留了高53位bit的数据 这一点在python中也可以直接实现,进而恢复d,然后利用ed和phi的关系可以得出phi,再结合N=p*q解二元方程得到p和q,之后md5得到flag exp: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import mathfrom hashlib import md5# 题目提供的已知信息e = 20285928988408708385825788658664300305494782819689...
2026-furryCTF-crypto-writeup
Crypto 方向 题目1:GZRSA 审计一下源代码,发现N是仅由flag作为seed生成的,所以是一直不变的,只有e每次打开容器时会根据时间戳变化 N不变,可以用共模攻击,但是需要开两次容器拿到两组数据 最后的结果是:furryCTF{ee74fc3b0b4d_E4SY_RS4_wIth_G2cTf_FRaM3wOrK} 题目2:0x4A 需要找个网站用0x4A做秘钥连续解密3次,最后得到:POFP{2394E9DA555D55D493A28624D901D2CA} 但是写wp的时候找不到那个网站了,当时也没记录 题目3:你是说这是个数学题? 这题在比赛时是PPC板块的,但是应该算是密码题 初始数据:flag的二进制用列表表示,还有一个单位矩阵,对角线全是1 题目做了很多次线性变换,每次做的变换是,在矩阵随机取两个不同的行做异或,然后对二进制列表中相同的元素进行同样的操作 最后得到变化之后的matrix和result 看似很复杂,但是都是线性的,并且每次变换前后的元素都是一一对应的,一定是可逆的 最后逆出来的初始flag二进制直接转码不对,是因为在最开始把flag明文变成二进...
2026-春秋杯冬季赛-crypto-Writeup
Crypto 方向 题目1:ez_lcg
2026—SHCTF-crypto-Writeup
Crypto 方向 题目1:阶段1-AES的诞生 Step 1. 源代码审计 结合题目名字和多出来的附件,采用AES被官方发布的时间2001-11-26,然后换成Unix时间戳,得到key Step 2. 读取data.txt,运行exp拿到flag exp: 123456789101112131415161718192021222324252627282930313233343536import refrom binascii import unhexlifyfrom cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modesfrom cryptography.hazmat.primitives import padding# 1) 从 data.txt 读 iv 和密文with open("data.txt", "r", encoding="utf-8") as f: lines = f.read().splitlines()...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment
