题目均为复现
simpleness
题目描述:
1 | 压缩包密码是个弱口令呢! |
下载附件
根据提示压缩包密码是弱口令,按解题顺序的压缩包应该是hint–key–flag
先爆破hint.zip压缩包密码
解压压缩包得到
先看图片吧
binwalk提取试试
得到一张二维码图片,扫描二维码得到
到这边暂时没什么发现了,查看hint.rar,伪加密破解
根据hint:
1 | key.zip的密码范围是qsnctf大小写哦,解出来的密码可以多次使用 |
爆破key.zip压缩包密码
干爆破太慢,所以需要生成一个qsnctf大小写组合的字典进行爆破
exp:
1 | def generate_case_combinations(s): |
运行得到
保存为文本,进行字典爆破
解压压缩包得到
根据hint:
1 | 提示一:需要这个版本的工具解码SilentEye0.3.1,这个版本不一样解不出来,没考虑到版本问题,对不起大家 |
静默之眼3.0
想到上面的qsnctf大小写组合的密码可以多次使用,考虑密码是QsNcTf
选择AES128模式解密
保存并查看1.txt
零宽解密
密码是
1 | The password is Hello World |
解压flag.zip得到
查看key.txt
snow隐写
根据hint:
1 | flag压缩包的密码是中文 |
中文电码解码
flag.zip压缩包密码为
1 | 这是密码吗 |
解压压缩包得到
图片不显示,010查看
发现文件字节不仅逆序而且还奇偶分离
奇偶分离脚本
1 | # 打开并读取名为flag.jpg的文件内容到变量s中 |
运行生成一张图片,010查看
发现文件就光逆序了,直接b神工具一把梭
查看图片
一眼图片宽高有问题,还是b神工具一把梭得到flag
可乐加冰
下载附件
binwallk分离
查看2AE96文件
提取数
1 | 83 46 36 36 36 95 43 83 46 36 95 95 36 43 83 46 95 95 95 43 83 46 95 95 36 43 83 46 36 36 36 36 43 83 46 36 36 36 95 43 83 46 36 95 95 36 43 83 46 95 95 36 43 34 45 34 43 83 46 36 95 36 36 43 83 46 36 95 36 95 43 83 46 36 36 95 36 43 83 46 36 36 95 43 34 45 34 43 83 46 36 95 95 43 83 46 36 95 36 95 43 83 46 36 36 36 36 43 83 46 36 36 36 43 34 45 34 43 83 46 36 95 95 36 43 83 46 36 95 95 36 43 83 46 36 36 95 43 83 46 95 36 36 43 34 45 34 43 83 46 36 36 95 36 43 83 46 36 95 36 95 43 83 46 36 36 95 36 43 83 46 36 95 95 95 43 83 46 95 95 36 43 83 46 95 36 95 43 83 46 36 36 36 36 43 83 46 36 95 36 43 83 46 36 36 95 43 83 46 95 36 95 43 83 46 36 95 95 43 83 46 36 36 95 36 |
十进制转字符串
将其中的S替换成$,并补全JJencode的开头结尾
1 | $.$$$_+$.$__$+$.___+$.__$+$.$$$$+$.$$$_+$.$__$+$.__$+"-"+$.$_$$+$.$_$_+$.$$_$+$.$$_+"-"+$.$__+$.$_$_+$.$$$$+$.$$$+"-"+$.$__$+$.$__$+$.$$_+$._$$+"-"+$.$$_$+$.$_$_+$.$$_$+$.$___+$.__$+$._$_+$.$$$$+$.$_$+$.$$_+$._$_+$.$__+$.$$_$ |
JJencode格式
1 | $=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+这里放密文+"\"")())(); |
完整的JJencode密文
1 | $=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$$$_+$.$__$+$.___+$.__$+$.$$$$+$.$$$_+$.$__$+$.__$+"-"+$.$_$$+$.$_$_+$.$$_$+$.$$_+"-"+$.$__+$.$_$_+$.$$$$+$.$$$+"-"+$.$__$+$.$__$+$.$$_+$._$$+"-"+$.$$_$+$.$_$_+$.$$_$+$.$___+$.__$+$._$_+$.$$$$+$.$_$+$.$$_+$._$_+$.$__+$.$$_$ |
jjencode解码
最后flag为
1 | flag{e901fe91-bad6-4af7-9963-dad812f5624} |
boooooom
下载附件
发现有密码
直接爆破密码
解压压缩包得到
password.py
1 | import base64 |
查看password.zip
crc爆破八字节难度有点大,直接内容为八位数字的CRC爆破
1 | #encoding:utf-8 |
运行得到
根据password.py先将08646247base64编码后再md5加密
压缩包密码为
1 | 95c800c52134a571dfe69114c378e4be |
解压压缩包得到
宽高一把梭
最后flag为
1 | flag{a184929e2c170e2b7dc12eb3106f0a16} |
steganography
题目描述:
1 | 有一天,V的同学给了他一张图片,说里面藏着巨大的秘密。你能帮V找出秘密么? |
下载附件
foremost分离
有个docx文件和压缩包里是pyc文件
docx改zip查看
发现flag.xml,010查看
20替换0,09替换1,二进制解码
压缩包里面的pyc解压发现有密码,查看word文档内容
一眼base隐写
得到压缩包密码
1 | I4mtHek3y@ |
解压压缩包得到pyc文件,直接pyc隐写一把梭
最后flag为
1 | flag{2806105f-ec43-57f3-8cb4-1add2793f508} |
HALF
下载附件
010查看文件,发现还藏着一个png文件,缺少文件头
新建一个空白文件,hex模式,添加文件头
保存为half1.png
一眼双图盲水印攻击
得到
1 | hLY8OTR4H} |
stegsolve查看,GBR模式
最后flag为
1 | flag{EwCuWKbhLY8OTR4H} |
miscmisc
下载附件
foremost分离
010查看chadian.jpg,发现是png文件,而且隐藏zip文件
提取出来解压压缩包
额,假flag,chayidian.zip里也有这个flag.txt,考虑明文攻击
解压压缩包
查看png文件
stegsolve查看
pass:z^ea
发现解压错误,估计是密码不全,查看word文件,勾选隐藏文字发现
压缩包密码是 z^ea 加上这里每行字符串最后一个
1 | z^ea4zaa3azf8 |
解压压缩包得到
最后flag为
1 | flag{12sad7eaf46a84fe9q4fasf48e6q4f6as4f864q9e48f9q4fa6sf6f48} |
My_lllp
题目描述:
1 | 你能发现图片中隐藏的秘密吗 |
下载附件
foremost分离得到压缩包
发现zip有注释信息:也许名称能给你想要的
联想带密码的图片隐写考虑cloacked-pixel隐写,密码为My_lllp
解压压缩包得到
snow隐写得到
base解密得到flag
最后flag为
1 | DASCTF{C0ngratU1ati0nS_On_Finding_the_f1ag} |
depthpng
题目描述:
1 | 不一般的png |
下载附件
zsteg一把梭
b1,g,lsb,yx区域藏有zip压缩包,提取出来
1 | zsteg depthpng.png -E b1,g,lsb,yx > dapthpng.zip |
解压压缩包得到
.swp文件恢复
1 | vim -r .flag.txt.swp |
报错了,创建一个名为“chang”的用户
1 | sudo useradd -m chang |
读取 /etc/passwd
看看有没有创建成功
1 | cat /etc/passwd | grep "chang" |
建两个子目录:/Downloads/Misc/
1 | cd /home/chang |
再去恢复一下上面的.swp文件
查看flag.txt
没什么发现,发现压缩包加密的txt算法是zipcrypto
通过.swp恢复的flag.txt重命名为swp.txt,bkcrack爆破
1 | bkcrack.exe -C dapthpng.zip -c flag.txt -p swp.txt |
修改密码
1 | bkcrack.exe -C dapthpng.zip -k 6c30e526 874fd386 341fe8cb -U ddd.zip 123456 |
解压压缩包得到
vv
最后flag为
1 | DASCTF{566320af8bd05701e095f5e38338a734} |
Simple_steganography
题目描述:
1 | 加菲把flag分成两部分了(跟猫有关,且flag为俩部分) |
下载附件
查看hint文本内容
一眼猫脸变换参数,但是没有图片,查看压缩包文件
发现都加密了文件,尝试爆破,伪加密无果,
考虑ntfs隐写
导出图片
扫描二维码得到假flag
尝试foremost分离图片
猫脸变换
得到第二部分flag
1 | 3_h4ck1ng |
查看压缩包加密算法
和上个题一样,使用bkcrack爆破
先构造png文件头文件
1 | echo 89504E470D0A1A0A0000000D49484452 | xxd -r -ps > png_header |
然后爆破密钥
1 | bkcrack.exe -C secret.zip -c flag.png -p png_header -o 0 |
修改密码
1 | bkcrack.exe -C secret.zip -k f45dd89f e3e929fb 3202ba17 -U tmp.zip 123456 |
解压压缩包得到
修改宽高得到第一部分flag
最后flag为
1 | flag{We_l1k3_h4ck1ng} |
三项之力
题目描述:
1 | 你说的对,但是《三相之力》是由 Muscer 自主研发的一款全新杂项套娃题。……中间忘了……。总之你将扮演一位名为「Misc手」的神秘角色,在小小的附件中邂逅「Reversed」、「Gopher esolang」、「Bitmap RGBA」,找回失散的flag碎片——同时,逐步发掘「套娃」的真相。 |
下载附件
zsteg一把梭
提取zip
1 | zsteg flag.png -E b1,g,lsb,xy > flag.zip |
解压压缩包发现有密码
stegsolve提取r0通道
保存文本,逆序得到二维码
扫描二维码得到
stegsolve提取b0通道保存补上bmp文件头
1 | 424DC703030000000000370000002800000064000000640000000100200000000000180000000000000000000000000000000000000000 |
得到二维码
扫描二维码得到
两部分组合压缩包密码为
1 | 0d000721_114514_1919810_089d7147-6786-42b5-b81e-3b7e050304a6 |
解压压缩包得到
Gopher esolang解码
https://shubshub.github.io/gopher/
最后flag为
1 | flag{7a874085-53d5-4baf-96ed-40d73013e67b} |
银河救援SOS!
题目描述:
1 | 题目描述:出题人被外星人抓走了!他们说只要你能找到FLAG就放了出题人,救救出题人! (flag全是大写字母,并且没有空格) |
下载附件
查看图片文件
标准银河字母对照表得到
对照得到superalien
解压压缩包得到
一眼明文攻击(使用7z压缩)
明文攻击
保存并解压压缩包
查看1.jpg图片属性
按顺序提取每张图片的经纬度做点,然后按点顺序依次连线
参考大佬脚本
1 | import os |
运行得到
最后flag为
1 | flag{UHATCANITALK} |
cat
下载附件
查看cat.png
cat_encode.py
1 |
|
一眼猫脸变换,没给参数,直接爆破
1 | import matplotlib.pyplot as plt |
运行发现shuffle_times=3、a=6、b=9得到flag
最后flag为
1 | flag{022ae0e0-c61e-428c-9f76-2eb089a58348} |
成语学习
题目描述:
1 | 我把学习资料拷贝给你一份 |
下载附件
先看流量包文件,直接ctfnat-A一把梭
一眼宽高爆破,直接一把梭
解压压缩包得到
010查看文件发现是zip文件,保存到本地
解压压缩包得到
一大堆文件,直接find命令找有关flag的字符串
1 | find ./* -name fl* |
hmac解密
HMAC在线加密工具 - HmacMD5在线加密 - HmacRipeMD在线加密 - MKLab在线工具
最后flag为
1 | ISCC{86bd2a65ea0d68bf231dd5c0a9c5e8c1} |
精装四合一
题目描述:
1 | 分离,我们是破碎的;团结,我们将成为神。我们终将在二进制的反复与隐藏之中破解自身的密码 |
下载附件
010查看文件
发现有冗余数据,删去图中AE 42 60 82
及之前的数据,然后进行xor 0xff(每个图片进行同样操作)
很显然这是个zip数据,依次读取4个文件拼接成生成zip文件
首先将这四个图片重新命名1-4.png
exp:
1 | fp1 = open('1.png','rb') |
脚本和文件在同一目录下运行得到
解压压缩包发现有密码
爆破压缩包
打开word文档
修改字体颜色,去除覆盖物发现隐藏文字
根据压缩包密码为65537,猜测这串数是rsa里的n,分解n
没有c密文还是不行,尝试分离docx文件
直接rsa一把梭
最后flag为
1 | ISCC{515UH54TyH53144} |
钢铁侠在解密
下载附件
txt内容
1 | N = 14333611673783142269533986072221892120042043537656734360856590164188122242725003914350459078347531255332508629469837960098772139271345723909824739672964835254762978904635416440402619070985645389389404927628520300563003721921925991789638218429597072053352316704656855913499811263742752562137683270151792361591681078161140269916896950693743947015425843446590958629225545563635366985228666863861856912727775048741305004192164068930881720463095045582233773945480224557678337152700769274051268380831948998464841302024749660091030851843867128275500525355379659601067910067304244120384025022313676471378733553918638120029697 |
富兰克林攻击,缺少c1,c2
尝试静默之眼隐写
导出文本
exp:
1 | def HGCD(a, b): |
sage运行得到flag
最后flag为
1 | ISCC{he_guang_tong_chen_253} |
重“隐”
下载附件
foremost分离图片
发现有密码,尝试听音频发现是拨号音
直接dtmf2num
九键转换得到
1 | URHDBDFGE |
解压压缩包得到
brainfuck解密
得到第一部分flag
使用deepsound解密音频发现有密码
通过deepsound2john.py脚本来获得密码的hash值
1 | #! python3 |
运行代码
1 | python dp.py music.wav > hash.txt |
john爆破
1 | john hash.txt |
deepsound解密导出文件
零宽解密
base58解密
最后flag为
1 | ISCC{y0u_f1nd_t74_re2l_w4t3rm4rk} |
World_LIne
非预期做法
flag被分成了四份,只需看β文件夹
flag1:
在β中的拼图文件中,在321_19704.png里,010查看文件
flag2:
flag2在β中的拼图文件中,位于123123_9049 (0U_f4N).png,括号里就是flag2
flag3:
flag3在β中的拼图文件夹的8787下,
flag4:
在RSA文件中,是NKCTF2024原题,直接拿NKCTF的脚本梭βase64.txt
exp:
1 | import base64 |
运行得到
词频统计
最后flag为
1 | ISCC{a_h_a!y0U_f4NgdE_tH3_t5uTh} |
Barbar
下载附件
foremost 分离
分离附件二维码后的压缩包,可以得到一个加密的压缩包,提示密钥32位,无法爆破
扫描二维码得到
零宽解密
解压压缩包得到
docx里什么都没有,考虑改后缀.zip查看
一眼base转图片
Aztec解码
npiet隐写
最后flag为
1 | flag{f2d76g36fd16cbb6abaaf8db57cbd1ed} |
Yusapapa
访问环境
查看源码
1 |
|
PGP词汇表翻译
1 | 59 6F 75 20 63 61 6E 20 73 65 65 20 6D 79 20 63 6F 6C 6C 65 63 74 69 6F 6E 20 70 75 7A 7A 6C 65 73 20 69 6E 20 2F 68 69 6E 74 2E 72 61 72 20 61 6E 64 20 61 6E 6F 74 68 65 72 20 2F 65 6E 63 6F 64 65 2E 70 6E 67 2E 0A 42 79 20 74 68 65 20 77 61 79 2C 74 68 65 20 70 69 63 74 75 72 65 20 73 68 6F 75 64 20 62 65 20 75 73 65 64 20 0A 22 59 75 73 61 22 20 69 73 20 76 65 72 79 20 69 6D 70 6F 72 74 61 6E 74 20 69 6E 20 74 68 69 73 20 63 68 61 6C 6C 65 6E 67 65 21 21 |
赛博厨子一把梭
下载得到hint.rar和encode.png以及网站里的webp文件
stegpy隐写得到压缩包密码
解压压缩包得到
使用Invisiblesecrets解密
导入密件
选择密钥和密码类型
选择解密得到py文件
导出py文件查看
1 | import os,random |
exp:
1 | from PIL import Image,ImageDraw |
运行得到flag
最后flag为
1 | flag{fa0a8cb83f26dead82e1a45f8af2f44b} |
YUSA的小秘密
题目描述
1 | DASCTF{} LSB,但又不是LSB,众所周知不止RGB。yusa,我的yusa,嘿嘿 |
下载附件
stegsolve查看通道
发现flag但看不清,噪点太多
参考这个
exp:
1 | from cv2 import * |
运行在a.png得到flag
最后flag为
1 | DASCTF{2947b683036d49e5681f83f7bc3fbb34} |
Yusa的秘密
题目描述:
1 | Sakura组织即将进攻地球,此时你意外得到了该组织内某个成员的电脑文件,你能从中发现本次阴谋所用的关键道具吗。(注:题目中包含了五个彩蛋,且彩蛋对解题本身没有任何影响,快去发现吧!) |
下载附件
载入lovelymem
文件扫描发现zip文件
导出zip文件
发现有密码,查看进程
导出StikyNot.exe转为.data文件并用gimp打开调整参数
找到这个contact文件
导出查看文件
base32解密
base64解密
得到key
使用上面的 世界没了心跳 解密压缩包key.zip
代码里的key.bmp还没有发现,尝试寻找
找到Sakura-didi
导出,010查看是zip文件,添加后缀.zip解压压缩包得到
使用上面的820ac92b9f58142bbbc27ca295f1cf48解压压缩包
最初的压缩包密码还没找到,Who_am_I自然是联想到本机用户,直接mimikatz一把梭
解压压缩包得到文件,然后写异或脚本
1 | from PIL import Image |
运行得到
010查看flag文件是gif文件,stegsolve查看得到flag
最后flag为
1 | DASCTF{c38376c61-77f1-413e-b2e6-3ccbc96df9f4} |
Cyclone Joker
题目描述:
1 | W is for double. |
下载附件
010查看文件发现藏有rar文件
提取出来解压压缩包发现有密码
到这边其实就没思路了,后面都是参考Lunatic师傅的博客
查看通道发现图片右侧有像素
后面参考师傅博客
也是了解到了jpg也有宽度隐写,也是学到了
1 | 1. JPEG的最小编码单元(MCU) |
先将图片修改宽度为8的倍数,初始宽度为378—修改为384即可
提取黑白像素块转二进制,二进制再转字符串
借用Lunatic师傅脚本
1 | from PIL import Image |
运行得到压缩包密码
解压压缩包得到
根据上面修改8的倍数宽保存看到数据
rgb通道分别看到png数据
r通道
g通道
b通道
三段数据写进rgb像素,需要提取出来
还是使用师傅脚本
1 | from PIL import Image |
运行得到
还是将图片宽度修改8的倍数
使用ps重新导出图片
黑色为0,白色为1,只有7行,二进制为8位数,不足8位就在前面补0
大佬脚本提取
1 | from PIL import Image, ImageFile |
运行得到flag
最后flag为
1 | DASCTF{Now,_count_up_your_sins!} |
blue sky
题目描述:
1 | 蔚蓝的天,藏着不同的颜色。 |
下载附件
stegsolve分析
分别在r0, g0, b0通道发现 PK 字样。 分别提取出来保存为zip文件
以r0为例
导出压缩包并解压得到3个文本
打开文本查看
将每个字符转换为十进制,再对二进制字符串,分别添加RGB,形成新的二进制串,每个8位二进制转换为十六进制,整个保存发现是PK开头的zip文件
exp:
1 | dirn = "C:\\Users\\23831\\Desktop\\blue sky\\" |
解压压缩包错误,010查看文件
赛博厨子转zip
最后flag为
1 | DASCTF{8e6ca2a9c502103fcbd031b01c1b4f77} |
迷失幻境
下载附件
vmdk是磁盘文件,使用diskgennius挂载
目前没什么发现,尝试diskgennius恢复文件,导出
得到45空白文件,010查看发现是png文件
补全文件头保存文件
一样的图片,那就考虑双图异或
查看可爱可莉图片属性
猜,一眼outguess隐写
最后flag为
1 | DASCTF{f473a6fd2de17a0c5794414b3905ebbe} |
躲猫猫
下载附件
ctfnat-A一把梭
TLS流量,导入log文件解密,在29流找到jpg文件,导出
保存查看文件
解压压缩包得到
Logistic图像加密
1 | from PIL import Image |
运行得到一张图片
应该是某种二维码,找到这个
常见二维码种类(Data Matrix、MaxiCode、Aztec、QR Code、PDF417、Vericode、Ultracode、Code 49、Code 16K) - 滔Roy - 博客园
ps补全中间的圆圈
保存本地扫描得到flag
最后flag为
1 | GWHT{ozqgVLoI1DvK8giNVdvGslr_aZKKwNuv_q-FzqB5N3hHHqn3} |
寻宝
下载附件
010查看文件
发现是pk文件,但反转了,使用b神工具一把梭得到zip
解压压缩包得到
蝎子游戏,玩了发现难度很大,尝试反编译游戏
查看游戏属性
使用gm8decompiler反编译
gm81转gmk
Game Maker 8加载gmk文件
导出游戏背景音乐
钢琴声为do do fa sol do fa
也就是常说的114514
神秘数字114514用钢琴弹出来是什么感觉?_哔哩哔哩_bilibili
查看room发现多张图片
前四张
变种猪圈密码
BUUCTF-Crypto-猪圈密码及其变种+银河密码+跳舞的小人_猪圈密码对照表-CSDN博客
对照得到
1 | OWOH |
剩下图片
曼切斯特编码
整理得到
1 | 01011111011000010011000101011111 |
赛博厨子得到
最后组合压缩包密码为
1 | OWOH_a1_114514 |
解压压缩包得到
零宽解密
最后flag为
1 | GWHT{Wher3_1S_Th4_1gI981O?} |
ezsight
下载附件
一眼明文攻击
1 | bkcrack.exe -C workspace.zip -c 公告.txt -p 公告.txt |
修改密码
1 | bkcrack.exe -C workspace.zip -k ffe9e9e9 d65f814a f3c468c9 -U sss.zip good |
公告.txt
1 | 各位员工: |
查看flag文件夹
flag.py
1 | import uuid |
应该是写一个代码调用该模型然后输出密码输入到flag.py里得到flag
Netron工具读取这个.pt模型文件
以下是关于SimpleCNN(简单卷积神经网络)的详细介绍:
1. 什么是SimpleCNN?
SimpleCNN是一种基础的卷积神经网络(CNN),专为处理具有网格结构的数据(如图像)设计。其核心思想通过局部感知和参数共享机制,自动学习空间层次特征,相比全连接神经网络显著减少参数量,提升计算效率。
2. 核心结构
典型SimpleCNN包含以下层级:
输入层:接收原始图像(如28×28像素的MNIST手写数字)
卷积层
:通过3×3或5×5滤波器提取边缘、纹理等局部特征
- 示例:
Conv2D(32, (3,3), activation='relu')
表示使用32个3×3滤波器
- 示例:
激活函数:ReLU(
max(0, x)
)引入非线性,增强模型表达能力池化层:2×2最大池化降低维度,保留显著特征
全连接层:将特征映射到类别空间,Softmax输出概率分布
3. 关键特性
特性 | 作用 |
---|---|
局部感知 | 每个神经元仅连接输入图像的局部区域,捕捉空间相关性 |
参数共享 | 同一滤波器在图像不同位置使用相同参数,大幅减少参数量 |
平移不变性 | 池化操作使特征对微小位置变化不敏感 |
层次化特征学习 | 从边缘→纹理→形状→物体,逐层抽象 |
4. 典型应用场景
- 图像分类:MNIST手写数字识别、CIFAR-10物体分类
- 目标检测:简单物体定位(需结合滑动窗口)
- 医学影像:肿瘤检测、细胞分类
- 实时系统:嵌入式设备中的轻量级图像分析
5. 优势与局限性
优势 | 局限性 |
---|---|
参数量少,训练效率高 | 对旋转、缩放等几何变换敏感 |
自动特征提取,无需人工设计 | 深层网络易过拟合,需正则化技术 |
适合处理高维图像数据 | 复杂场景需结合循环神经网络(如视频) |
6. 经典实现示例(Keras)
1 | from tensorflow.keras import layers, models |
7. 改进方向
- 深度增加:添加更多卷积层(如VGGNet的16/19层)
- 正则化:Dropout层、L2权重衰减
- 高级模块:残差连接(ResNet)、注意力机制(Transformer)
- 数据增强:旋转、平移、缩放提升泛化能力
SimpleCNN作为深度学习入门模型,在资源受限或简单场景下仍具实用价值,同时也是理解复杂CNN架构(如ResNet、Inception)的基础。
AI写一个调用该模型的代码识别flag/*.bmp文件
1 | import torch |
运行得到
修改一下flag.py
1 | import uuid |
运行得到flag
最后flag为
1 | dart{e164bde3-b17b-395d-b360-5219c14237ec} |
nothing
下载附件,发现是zip文件,解压压缩包发现
docx文件,改后缀.docx查看
发现啥没有,改回zip解压找到一张图片
图片就一共有五种像素点
1 | (255, 255, 255, 255) |
(255, 255, 255, 255)并没有隐写数据
四进制隐写数据得到一个ZIP压缩包,但是Windows下直接打开是看不到内容的
linux运行脚本才行
被压缩的文件内容包括文件名都是 \r
、\n
、\t
、空格
这种空白字符爆破即可
完整脚本:
借用大佬脚本
1 | from Crypto.Util.number import long_to_bytes |
运行得到
最后flag为
1 | flag{46eade75-846b-4d26-98f7-2cb3cb4686ed} |
happymd5
题目描述:
1 | 有好多奇奇怪怪的MD5值,这是用来干什么的呢。 |
下载附件
掩码爆破密码
解压压缩包得到一堆md5
搜索得知Cloakify是一种python2下的编码:https://github.com/TryCatchHCF/Cloakify 下载后学一下用法,解码得到《flag.zip》文件
解压压缩包得到
0宽隐写
aes-emoji解密
最后flag为
1 | DASCTF{58b5f892490a1a3fc077926fcea8efd4} |
报告哈基米
下载附件
zsteg一把梭
得到猫脸变换参数以及发现倒转zip数据
先进行猫脸变换
导出倒转zip数据
逆序塔伯画图
最后flag为
1 | 0xGame{hajimi_i5_Cute_r1ght?} |
[NewStarCTF 2023 公开赛道]Easymem
题目描述:
1 | 小明把flag藏在哪里了呢(flag长度为42位) |
lovelymem载入镜像
首先爆破用户名密码得到第一段flag
第二段扫描文件,过滤关键字flag
导出文件得到第二段flag
导出画图软件使用gimp打开调整参数,镜像翻转得到第三段flag
最后flag为
1 | flag{45a527fb-2f83-5032-1056-0b949b63a947} |
[DASCTF X CBCTF 2023|无畏者先行]NoPasswd
题目描述:
1 | 小C收到了一个加密的word文档,但是苦于没有密码,你能帮他解开吗? |
下载附件
010查看文件发现宏现象
使用olevba attachment命令查看插入的宏代码
提取脚本
1 | Sub XOREncryptFile() |
xor解密
密位就是010查看发现那个
1 | 60290f0225011a72697f420d1f4e402778231b |
密钥在这
1 | numbers(0) = 19 |
转为十六进制为
1 | 13477a63416f2b43 |
赛博厨子一把梭
打开文档
赛博厨子转zip数据
解压压缩包发现有密码
010查看文件,文件名长度8被改成了4修复即可
伪加密破解
最后flag为
1 | DASCTF{634396302488a032d75cf700ee4a8912} |
[2022DASCTF Apr X FATE 防疫挑战赛]熟悉的猫
下载附件
kdbx文件可以用KeePass软件开,但是需要密码
passkit 直接进行爆破,长度为5
KeePass软件打开
解压压缩包得到
hint.txt
1 | k=92898203278702907929705938676672021500394791427205757369123489204565300324859717082409892641951206664564991991489354661871425872649524078000948199832659815275909285198829276929014694628110159824930931595166203271443269827449505707655085842563682060910813942504507936625555735585913273575050118552353192682955310220323463465408645422334101446471078933149287336241772448338428740302833855616421538520769267636119285948674549756604384946996184385407505456168240123319785800909933214695711828013483981731933773017336944656397583872267126767778549745087854794302808950100966582558761224454242018467578959766617176016660101690140279961968740323327369347164623746391335756442566959352876706364265509834319910419399748338894746638758652286771979896573695823608678008814861640308571256880794312652055957150464513950305355055495262375870102898500643010471425931450046440860841589302890250456138060738689526283389256801969190204127358098408264204643882520969704221896973544620102494391269663693407573658064279947688509910028257209987991480259150865283245150325813888942058 |
塔伯画图,同时也存在零宽隐写
塔伯画图
1 | import numpy as np |
运行得到
得到猫脸变换参数,直接猫脸变换还原
最后flag为
1 | DASCTF{751476c0-6cff-497f-9541-83ede0ebc5a0} |
[NewStarCTF 公开赛赛道]Coldwinds’s Desktop
题目描述:
1 | Coldwinds的桌面被撕成了碎片!你能帮他复原吗? |
下载附件
拼图题。一共144张,也就是12x12规格
先拼接
再恢复
最后flag为
1 | flag{Y0u_successfu11y_s01ved_the_puzz1e} |
[DASCTF X 0psu3十一月挑战赛|越艰巨·越狂热]拼拼凑凑
题目描述:
1 | 图片都碎了,好像拼拼凑凑还能再用 |
下载附件
一眼拼图,一共1296个文件,分为48x27,写脚本拼图
1 | from PIL import Image |
运行得到
拼凑出来的png,有一条像素条,观察其像素值可以发现其规律,像素值除50,每三位数字五进制转字符
exp:
1 | from PIL import Image |
运行得到
看到key和secret,猜测是veracrypt
文件尾还有多余的数据,可以同样按照位置信息拼接起来
exp:
1 | import os |
运行得到res文件
veracrypt挂载,密码为Th1s_1s_k4y_0f_s3cr3t,图片flag.png为密钥文件
最后flag为
1 | DASCTF{1d4328fc-8071-d034-8819-03bbb1117023} |
[DASCTF 2024最后一战|寒夜破晓,冬至终章]弹道偏下
题目描述:
1 | 我不希望我的文档被敌人截获以后可以直接使用。flag头为DASCTF。 |
下载附件
SMB2流量加密
1 | tshark -n -r secret.pcapng -Y 'ntlmssp.messagetype == 0x00000003' -T fields -e ntlmssp.auth.username -e ntlmssp.auth.domain -e ntlmssp.ntlmv2_response.ntproofstr -e ntlmssp.auth.ntresponse |
1 | share::MicrosoftAccount:0a08d9f15eb53eea:a20aec951c89961f2e81bf0917d8990a:0101000000000000cfebd19d3636db01022ada3cfbb5b30e0000000002001e004400450053004b0054004f0050002d004800440039004b0051004e00540001001e004400450053004b0054004f0050002d004800440039004b0051004e00540004001e004400450053004b0054004f0050002d004800440039004b0051004e00540003001e004400450053004b0054004f0050002d004800440039004b0051004e00540007000800cfebd19d3636db01060004000200000008003000300000000000000001000000002000004c3c615542417f8e002c772c6064cc84d886fec17c1ed7cceea68daf7f6954fc0a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003100340039002e003100350035000000000000000000 |
hashcat爆破
1 | hashcat.exe -a 0 -m 5600 232.txt rockyou.txt --force |
解密流量包,导出doc文件
010查看文件
b神工具一把梭
补全doc
发现需要密码
passware爆破密码
解密文档,修改字体颜色得到flag
CMYK
题目描述:
1 | 青色、洋红、黄、黑是四种颜色 |
下载附件
一眼就是那种类似RGB数值画图,不过改成了CMYK值
方法一:提取颜色数据创建新的CMYK图像
exp:
1 | from PIL import Image |
运行得到
扫描二维码得到
方法二:
CMYK转RGB后再转图像
exp:
1 | from PIL import Image |
运行得到
扫描二维码同样得到flag
最后flag为
1 | Stinger{0291-951f-291a-6712-ab32-2182bf0a} |
[NSSRound#12 Basic]Bulbasaur
题目描述:
1 | 在小小的水池里面挖呀挖呀挖,藏小小的flag看小小的蛙 |
下载附件
盲水印
得到压缩包密码:blind watermark
解压压缩包得到
阴阳怪气解密
最后flag为
1 | NSSCTF{W@t3rMaRk_1s_s0000000_35s9} |
Grayscale
下载附件
foremost提取
需要密码,010查看文件发现二进制编码
一大堆二进制不像是二进制转二维码,直接b神工具一把梭
得到压缩包密码:KQaPt57Vx
解压压缩包得到vmdk文件,7z解压vmdk
251张png,都是纯色的灰度图片,提取每张图片的颜色值,以r通道为例
exp:
1 | from PIL import Image |
运行得到
发现128比较多
按照128=/,<128=-,>128=.
exp:
1 | # 示例数据:假设这是从图片中提取的R通道值 |
运行得到
完整脚本
1 | from PIL import Image |
摩斯解密
base32解密
最后flag为
1 | DASCTF{f3cb04fc93908391ad310fdc476ff8e9} |
道可道,非常道
根据师傅博客复现
CTF-Misc “雅”题共赏 - ⚡Lunatic BLOG⚡
下载附件
先看皮箱封条.txt
1 | 大衍数列,来源于《乾坤谱》中对易传“大衍之数五十”的推论。主要用于解释中国传统文化中的太极衍生原理。 |
写一个脚本
1 | n = 22002244 |
运行得到
得到
1 | dc2482bf7108 |
解压压缩包发现不对
尝试爆破
生成字典脚本
1 | lst = [0] * 22002245 |
7z2john
生成压缩包的hash
hashcat爆破
1 | hashcat -a 0 -m 11600 hash.txt dict.txt |
5a2dd7b80解压皮箱左边压缩包得到
再看皮箱封条2.txt
1 | 203879 * 203879 = 41566646641, |
写一个脚本
1 | def is_special_number(n): |
运行得到
130313748188转十六进制值为1e574dfedc
解压压缩包皮箱右边
先看坎
里面有个加急密信.word,010查看是png文件,改后缀.png得到
坤文件夹里有个wav文件,au打开看频谱图可以得到下图
离文件夹里有一张宽高被修改导致CRC报错的PNG图片,还原宽高后可以得到下图
乾文件夹里有一张food.png,直接stegsolve打开查看,发现红色通道里藏了图
fuxi.7z的密码:iscc1234
解压压缩包得到
伏羲八卦图
二维码拼接顺序
1 | 艮 坤 震 |
手撸二维码
扫描二维码
最后flag为
1 | ISCC{wisH_U_ki7mo5_all_tHe_bEst} |
QRSACode
根据师傅博客复现
CTF-Misc “雅”题共赏 - ⚡Lunatic BLOG⚡
题目描述:
1 | p = 13,q = 19,e = ? |
下载附件
在RSA中e
要和phi
互质,其中phi=(q-1)*(p-1),写个脚本得到e
所有可能的取值范围
1 | import gmpy2 |
运行得到
得到e
所有可能的取值如下,一共84种可能取值:
1 | 有效的 e 值数量: 84 |
颜色统计
发现四种像素出现了两次
提取所有像素值
1 | from PIL import Image |
运行得到
发现每个像素的RGB值都是取自我们之前得到的e的取值范围中
再去看task.png
,发现图像时RGBA格式的,只不过A通道的值都是255
颜色统计
背景接近白色的像素点的RGBA的值为(246, 246, 246, 255)
,黑色像素点的RGBA值为(0, 0, 0, 255)
这两种像素出现频率最多
hint.png
和task.png
的长宽是一样的,也就是说像素的个数以及RGB值的个数也是一样的
把每个像素的每个RGB值都做一次RSA解密,hint.png
中的是e
,task.png
中的是密文c
exp:
1 | from PIL import Image |
运行得到二维码,扫描二维码得到flag
最后flag为
1 | DASCTF{R54_W1th_Cv_1s_Fun} |
Boxing Boxer
根据师傅博客复现
CTF-Misc “雅”题共赏 - ⚡Lunatic BLOG⚡
题目描述:
1 | A boxing boxer unbox a box in which another box boxes little boxes and boxes and boxes and so on. |
下载附件
分离帧得到
提取出GIF每一帧的间隔
除去开头和结尾的70,发现中间的部分只有50和60,然后统计了一下一共441个,因为441=21x21
50和60转为0和1
1 | 010000001010101101110001000010001110010110101100111010011101001010111011111101111111110110100100011001001100011001000001010111100001101000001010001011101111000100001010110110101101100111010000010000110101100001100110010100010011100011100011010100100000111101111111010010111101100010001100100010111111111001011101011101000000110111011000001001010011001001110101111111010110011011001000101010010110101011011111001010100011100001100001011010011 |
二进制转二维码
不是二维码
使用identify查看每一帧
脚本提取出隐写的坐标并绘制二维码
1 | import subprocess |
linux运行得到
扫描两个二维码
最后flag为
1 | DASCTF{Unb0x_a_Fil3_t0_Get_a_Fl4g} |
Just Not Good
下载附件
010查看文件
png文件,添加后缀.png
不显示,010查看原因
一大串02 1A 00 00
一眼异或
保存文件010查看发现藏着jpg文件
保存得到图片
jpg修改宽高
还有一种方法直接脚本一把梭得到flag
1 | import struct |
运行得到flag
最后flag为
1 | DASCTF{fab6ce57e3131f1635b0c953debe67ac165f} |
Steganography_challenges0.3
下载附件
encrypt.py
1 | from PIL import Image |
写一个解密脚本
弱密码为password
1 | from PIL import Image |
运行得到
zsteg一把梭
得到第一部分flag
010查看Steganography_challenges0.3.png
base转图片一把梭
DWT-QIM解密
1 | from PIL import Image |
运行得到
010打开提取得到的图片,发现有一块异常的IDAT chunk
提取出来,vc挂载
最后flag为
1 | DASCTF{01d0eed8-2e4b-4dc6-9152-ffe56b0f70b4} |
Eradicate_Moriarty
题目描述:
1 | 你能通过我给你的提示,解开一个个谜题,代替福尔摩斯完成铲除莫里亚蒂教授的职责吗? |
hint:
1 | 1.What's this中第一二行为密码表,第三行为密文! |
下载附件
readme.txt
1 | 清晨,你如往常一般醒来,但是你突然发现相比于以往不同的是你身处的房间俨然不是自己的卧室。这使原本还有睡意的你猛然清醒了过来,发现身边的一切都有一股浓浓的亚当风格。床头还放有一张报纸,你拿起一看,上面写着:神探夏洛克·福尔摩斯与“犯罪界的拿破仑”詹姆斯·莫里亚蒂教授昨日一起掉入瀑布,生死未知! |
查看docx文件
跳舞的小人密码
对照得到
1 | ORUPELKCB |
移花接木的手法(类似栅栏密码),会让你晕头转向甩飞你的cap
列位移解密
解压压缩包得到
second.txt
1 | 你来到了这家扑克俱乐部,找到了塞巴斯蒂安·莫兰,你的任务就是把他交给警方,考虑到你赤手空拳去缉拿一名神枪手不太现实,我给你在这里留下了一本日记记录了他过去的罪行,但是你要靠你的智慧去得到密码(密码有三部分)。 |
查看jpg图片
foremost分离
查看pdf文件,移开图片得到key2=2v5f
pdf隐写得到key3=256b
jpg修改宽高得到key1=a153
a1532v5f256b 解压压缩包得到
third.txt
1 | 你成功找到了日记,让警方逮捕了莫兰上校,接下来,你需要去找到莫里亚蒂教授,最终让他接受法律的审判。 |
readme.txt和之前大小一样,一眼明文爆破
2v5@6b2解压压缩包得到
fourth.txt
1 | 你成功找到了莫里亚蒂教授,但是他向来行事谨慎,很少留下证据,除了和福尔摩斯一起掉入瀑布那次,福尔摩斯在瀑布那留下了一本笔记,赶快找到笔记密码打开笔记,把证据交给警方。 |
what’s this.txt
十二宫杀手密码
犯罪大师十二宫杀手密码答案 十二宫杀手密码解题流程_游戏攻略_海峡网
对照得到
1 | PASSWORD |
很容易,因为题目叫Eradicate_Moriarty,所以密码为
1 | MORIARTY |
解压查看pptx文件发现不对,查看where is the information.txt
snow隐写,密码为MORIARTY
(13579asdf)密码查看pptx文件,全选加修改字体颜色找到flag
最后flag为
1 | flag{361855215f1690daf67b72957e24c157} |
forensics
题目描述:
1 | 我加密好的文件呢??? |
查看系统密码
解密md5是空密码,smod碰撞得到密码:P@sSw0rD
文件扫描发现有一个腾讯转送的文件《4c7854910728546》
导出发现是jpg图片
目前不知道是什么隐写
gimp画图,调整参数得到
一眼Snipaste截图
1、按F1随变截图一张,看安装目录C:\Program Files\Snipaste\history\snip增加了一个文件00000.sp1
2、删除00000.sp1,把附加文件0a8b4ef217983e3f移动到该目录改名为00000.sp1
3、再次按F1,使用【,.】键翻看历史,按,找到附近的截图,复制到剪贴板(Ctrl+c)
4、打开mspaint,粘贴(Ctrl+v)【原截图分辨率大于本机】
文件夹名称Stegosuite,Stegosuite隐写得到flag