<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>甲子の小秘境</title><description>——代码、游戏和茶，\(@^0^@)/</description><link>https://imjiazi.top/</link><language>zh_CN</language><item><title>数通第一——数据通信网络</title><link>https://imjiazi.top/posts/networkd1/</link><guid isPermaLink="true">https://imjiazi.top/posts/networkd1/</guid><description>网络工程师的重要的职责就是建设、维护通信网络的正常运行。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;通信的本质是信息在两点或多点之间的传递与交换，即人与人、物与物、人与物之间通过某种媒介和行为进行的信息传递与交流。&lt;/strong&gt;
通信系统的三要素：&lt;/li&gt;
&lt;li&gt;信源：发送信息的设备&lt;/li&gt;
&lt;li&gt;信道：传输信息的媒介，可以是物理的有线电缆、光纤，也可以是无线电波。&lt;/li&gt;
&lt;li&gt;信宿：接收信息的设备
而网络通信就是终端设备之间通过数据通信网络进行的信息传递。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;数据通信网络是由路由器、交换机、防火墙、无线控制器、无线接入点、以及个人电脑、网络打印机、服务器等各种网络设备构成的网络。&lt;/p&gt;
&lt;p&gt;功能：实现数据互通（最基本）&lt;/p&gt;
&lt;p&gt;Ts：网络工程师的重要的职责就是建设、维护通信网络的正常运行&lt;/p&gt;
&lt;p&gt;一、网络拓扑（Network Topology）为使用通信介质（如双绞线、光纤）互联各种网络设备（如终端）所呈现的结构化布局。&lt;/p&gt;
&lt;p&gt;·常见的网络拓扑形态可分为&lt;strong&gt;星型、总线型、环型、树型、全网状型、部分网状网络。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;·总线型：顾名思义，分布在一根总线上的网络分布形态（早期集线器基本都是这个结构，现几乎淘汰）&lt;/p&gt;
&lt;p&gt;·星型：有一个中心节点，一般为交换机，然后从中心向外分布，可以通过中心的交换机来实现各个终端的数据通信。（若中心节点故障，整个网络都会变成蹦蹦炸弹，绷不住了）&lt;/p&gt;
&lt;p&gt;·环型：环型的可靠性更高，一般存在多个网络设备，除非两边都故障，否则仍可运转。&lt;/p&gt;
&lt;p&gt;·树型：为星型的拓展结构，拥有强扩展性，拥有一个根节点，和多个网络设备，一个网络设备出现问题，其下所分布的设备都将无法正常工作。&lt;/p&gt;
&lt;p&gt;·全网状型：拥有强可靠性，设备之间互相连接，拥有多条通信线路，但成本、复杂性更高（一旦长距离传输，成本会变成我叫磁力棒）。&lt;/p&gt;
&lt;p&gt;·部分网状型：根据业务情况选择布线方案，全网状型的阉割。&lt;/p&gt;
&lt;p&gt;Ts：在实际使用中，通常会使用组合型网络拓扑，根据成本、通信效率、可靠性等具体需求而采用多种拓扑形态相结合。&lt;/p&gt;
&lt;p&gt;二、网络分类&lt;/p&gt;
&lt;p&gt;·按地理范围：局域网（Local Area Network,LAN）、城域网（Metropolitan Area Network,MAN）、广域网（Wide Area Network,WAN）&lt;/p&gt;
&lt;p&gt;·按运营主体：企业网络（Enterprise Nerwork）、运营商网络（Carrier Network）&lt;/p&gt;
&lt;p&gt;·局域网：一般范围在几公里内，使用以太网（Ethernet）、WiFi等技术。&lt;/p&gt;
&lt;p&gt;·城域网：一般范围可包含一个城市（大学也有使用的），使用以太网（10Gpbs/100Gpbs）、WiMAX等与局域网相似技术。&lt;/p&gt;
&lt;p&gt;·广域网：一般范围在几十公里到几千公里，使用PPP、MPLS、SRv6等技术等。&lt;/p&gt;
&lt;p&gt;·企业网络：☞单一组织自行建设和维护的私有网络，使用等技术。&lt;/p&gt;
&lt;p&gt;·运营商网络：☞电信服务提供商建设和维护的公共网络设施，使用BPG、5G核心网等技术&lt;/p&gt;
</content:encoded></item><item><title>MISC——文件签名</title><link>https://imjiazi.top/posts/misc0/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc0/</guid><description>魔术字是图片隐写中最常见的考点。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794203742292-keuw7x.jpg&quot; alt=&quot;肥鱼.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;file命令（kali）&lt;/strong&gt;
语法：file 文件名&lt;/p&gt;
&lt;p&gt;作用：可以判断文件是什么格式的（在不知道文件是什么格式的情况下使用）一般而言，赛题中给出的附件后缀名不一定是真实的文件后缀。&lt;/p&gt;
&lt;h3&gt;文件签名（魔术字）&lt;/h3&gt;
&lt;p&gt;JPEG (jpg)					文件头：FF D8 FF  文件尾：FF D9&lt;/p&gt;
&lt;p&gt;PNG (png)					文件头：89504E470D0A1A0A&lt;/p&gt;
&lt;p&gt;GIF (gif)					文件头：47494638   文件尾：00 3B&lt;/p&gt;
&lt;p&gt;TIFF (tif)					文件头：49492A00&lt;/p&gt;
&lt;p&gt;Windows Bitmap (bmp)		文件头：424D&lt;/p&gt;
&lt;p&gt;CAD (dwg)					文件头：41433130&lt;/p&gt;
&lt;p&gt;Adobe Photoshop (psd)		文件头：38425053&lt;/p&gt;
&lt;p&gt;Rich Text Format (rtf)		文件头：7B5C727466&lt;/p&gt;
&lt;p&gt;XML (xml)					文件头：3C3F786D6C&lt;/p&gt;
&lt;p&gt;HTML (html)					文件头：68746D6C3E&lt;/p&gt;
&lt;p&gt;Email [thorough only] (eml) 文件头：44656C69766572792D646174653A&lt;/p&gt;
&lt;p&gt;Outlook Express (dbx)		文件头：CFAD12FEC5FD746F&lt;/p&gt;
&lt;p&gt;Outlook (pst)				文件头：2142444E&lt;/p&gt;
&lt;p&gt;MS Word/Excel (xls.or.doc)  文件头：D0CF11E0&lt;/p&gt;
&lt;p&gt;MS Access (mdb)				文件头：5374616E64617264204A&lt;/p&gt;
&lt;p&gt;WordPerfect (wpd)			文件头：FF575043&lt;/p&gt;
&lt;p&gt;Postscript (eps.or.ps)		文件头：252150532D41646F6265&lt;/p&gt;
&lt;p&gt;Adobe Acrobat (pdf)			文件头：255044462D312E&lt;/p&gt;
&lt;p&gt;Quicken (qdf)				文件头：AC9EBD8F&lt;/p&gt;
&lt;p&gt;Windows Password (pwl)		文件头：E3828596&lt;/p&gt;
&lt;p&gt;ZIP Archive (zip)			文件头：504B0304 文件尾：50 4B&lt;/p&gt;
&lt;p&gt;RAR Archive (rar)			文件头：52617221&lt;/p&gt;
&lt;p&gt;Wave (wav)					文件头：57415645&lt;/p&gt;
&lt;p&gt;AVI (avi)					文件头：41564920&lt;/p&gt;
&lt;p&gt;Real Audio (ram)			文件头：2E7261FD&lt;/p&gt;
&lt;p&gt;Real Media (rm)				文件头：2E524D46&lt;/p&gt;
&lt;p&gt;MPEG (mpg)					文件头：000001BA&lt;/p&gt;
&lt;p&gt;MPEG (mpg)					文件头：000001B3&lt;/p&gt;
&lt;p&gt;Quicktime (mov)				文件头：6D6F6F76&lt;/p&gt;
&lt;p&gt;Windows Media (asf)			文件头：3026B2758E66CF11&lt;/p&gt;
&lt;p&gt;MIDI (mid)					文件头：4D546864&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之JPEG DCT隐写</title><link>https://imjiazi.top/posts/misc10/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc10/</guid><description>JPEG是有损压缩，像素值会在压缩中变化，所以LSB隐写在JPEG上不成立。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205226983-jjs023.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;JPEG和PNG的LSB隐写在底层逻辑上完全不同：PNG是把数据直接写进像素的最低有效位，而JPEG是有损压缩，像素值会在压缩中变化，所以LSB隐写在JPEG上不成立。&lt;/p&gt;
&lt;p&gt;为了在 JPEG 中隐藏信息，出题人通常会将数据嵌入到 &lt;strong&gt;DCT（离散余弦变换）的量化系数&lt;/strong&gt;中。这就是所谓的“压缩域/变换域”隐写。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;推断前提&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;附件是 &lt;code&gt;.jpg&lt;/code&gt; / &lt;code&gt;.jpeg&lt;/code&gt; 格式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;常规手段（&lt;code&gt;strings&lt;/code&gt;、&lt;code&gt;exiftool&lt;/code&gt;、&lt;code&gt;binwalk&lt;/code&gt;）均未发现明显线索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;尝试使用 &lt;code&gt;zsteg&lt;/code&gt; 或 &lt;code&gt;StegSolve&lt;/code&gt; 无任何反应。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我们可以使用stegdetect命令来检验指纹
即stegdetecd 文件名
&lt;em&gt;如果输出类似 &lt;code&gt;jphide(***)&lt;/code&gt; 或 &lt;code&gt;outguess&lt;/code&gt;，就可以对应去寻找提取工具。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;不过&lt;code&gt;stegdetect&lt;/code&gt; 是概率性检测，存在误报和漏报。如果它没报出结果，不代表绝对没有隐写，依然需要手动尝试下面最常用的工具。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Steghide
支持JPEG/BM/WAV,方式：steghide info 文件名（查看是否嵌入）
提取：steghide extract -sf 文件名 -p &quot;密码&quot;
如果没有密码可以使用/usr/share/wordlists/rockyou.txt字典爆破&lt;/li&gt;
&lt;li&gt;QutGuess
//无密码
outguess -r 图片.jpg 输出.txt
//带密码
outguess -k &quot;密码&quot; -r 图片.jpg 输出.txt&lt;/li&gt;
&lt;li&gt;jpseek 图片.jpg 输出文件.txt&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>MISC——音频隐写</title><link>https://imjiazi.top/posts/misc11/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc11/</guid><description>音频隐写是将秘密信息隐藏在音频信号中的一种技术，可通过多种方法实现，包括MP3隐写、LSB隐写、波形隐写和频谱隐写等。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205285692-ugu0oa.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;音频隐写是将秘密信息隐藏在音频信号中的一种技术，可通过多种方法实现，包括MP3隐写、LSB隐写、波形隐写和频谱隐写等。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;比如：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;MP3隐写：使用工具如MP3Stego，将信息在MP3压缩过程中隐藏，数据先压缩、加密后嵌入比特流中，解码时需提供密码。&lt;/li&gt;
&lt;li&gt;LSB隐写：在WAV或其他无损音频中修改最低有效位，常用工具包括Stegolsb和SilentEye。&lt;/li&gt;
&lt;li&gt;波形隐写：通过观察音频波形的高低或长短，将其转化为01字符串或摩斯码，提取隐藏信息。
频谱隐写：将信息绘制在频谱图上，横轴为时间、纵轴为频率、亮度表示能量，信息可直接从频谱图读取。&lt;/li&gt;
&lt;li&gt;其他方法：包括DTMF、SSTV等特殊编码方式，用于特定CTF题目或实验场景。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;**不过我们这里仅作以下三种讲解&lt;/p&gt;
&lt;h1&gt;频谱图隐写&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;表现&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;频谱图中出现等间距竖线、周期性重复的频率组合&lt;/li&gt;
&lt;li&gt;在人耳不敏感 的高频段出现密集的亮点，或在静音段存在持续的频率能量&lt;/li&gt;
&lt;li&gt;音频文件部分出现刺耳声音，比如高低位杂音&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我们可以使用audacity工具来进行分析，查看频谱图&lt;/p&gt;
&lt;h1&gt;摩斯密码隐写&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;表现&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;播放音频时发现异常节奏，用audacity打开后，若波形呈现周期性隔规律（窄波、宽波、交替性），可能对应.-/结构&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;同样可以使用audacity&lt;/p&gt;
&lt;h1&gt;sstv&lt;/h1&gt;
&lt;p&gt;慢扫描电视（Slow-scan television,简称&lt;strong&gt;sstv&lt;/strong&gt;）是业余无线电爱好者的一种主要图片传输方法，慢扫描电视通过无线电传输和接收单色或彩色静态图片。
&lt;strong&gt;表现&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SSTV隐写的音频听起来像连续刺耳的电波，与正常音频有明显区别&lt;/li&gt;
&lt;li&gt;他将图像信息转换为音频信号进行传输，发送端把图像分成一系列水平线条，将每条线条的亮度值转换为对应的音频频率，接收端再通过解码音频信号，将频率转换为亮度值，从而恢复出原始图像。&lt;/li&gt;
&lt;li&gt;SSTV正常解法需要一台设备播放一台设备收音，还容易收到杂音的干扰（会干扰图片的正常生成），虚拟声卡就可以避免这个问题
推荐工具为RX-SSTV，并使用虚拟声卡。&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;deepsound隐写&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;表现&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Deepsound支持将秘密数据隐藏再WAV等多种音频文件中，隐藏数据后的音频文件可以正常播放，人耳很难察觉到问题。
#处理&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;直接使用DeepSound大爱音频文件，如果软件界面显示嵌入的文件列表，则可以确定该音频使用了Deepsound隐写
提取时提示需要密钥，这时就需要其他线索找到密钥&lt;/p&gt;
&lt;p&gt;ctrl+shift+v在010中可以将选中的十六进制段在右侧转换为ascll码&lt;/p&gt;
</content:encoded></item><item><title>MISC——隐写之Stegoveritas工具</title><link>https://imjiazi.top/posts/misc12/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc12/</guid><description>StegoVeritas可以看作一个**隐写分析的“自动化流水线”**。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205539485-7x7e6d.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;StegoVeritas可以看作一个&lt;strong&gt;隐写分析的“自动化流水线”&lt;/strong&gt;。当你不确定题目用了哪种隐写手法时，把它丢进去跑一遍，它会在后台把&lt;code&gt;exiftool&lt;/code&gt;、&lt;code&gt;binwalk&lt;/code&gt;、&lt;code&gt;zsteg&lt;/code&gt;、&lt;code&gt;foremost&lt;/code&gt;等工具全部调用一遍，帮你把常见方向都排查一次。&lt;/p&gt;
&lt;p&gt;#安装
pip3 install stegoveritas
stegoveritas_install_deps   # 自动安装 binwalk/exiftool 等依赖
#基本使用
stegoveritas 图片.png&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;参数&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-meta&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;只查元数据（EXIF/XMP）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-extractLSB&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;只提取LSB数据&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-trailing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;检查文件尾部是否有附加数据&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-steghide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;尝试检测Steghide隐藏信息&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-extract_frames&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;拆分GIF为单独帧&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-carve&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;尝试雕刻/提取内嵌文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#密码爆破&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stegoveritas 图片.jpg -password &quot;题面给的密码&quot;      # 用指定密码尝试提取&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stegoveritas 图片.jpg -wordlist /path/to/dict.txt  # 用字典爆破&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded></item><item><title>MISC——ZIP之已知明文攻击</title><link>https://imjiazi.top/posts/misc14/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc14/</guid><description>zip压缩包的密码首先会被转换成三个4字节的key，用三个key加密所有文件</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205755735-cab9kk.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;zip压缩包的密码首先会被转换成三个4字节的key，用三个key加密所有文件
如果我们能够拿到压缩包中的一个文件，那么以同样的方式去压缩
那么两个压缩文件中相同的那个文件的压缩大小相差12字节，然后使用工具进行对比筛选后，就可以获得key，然后用key就可以还原出没有密码的压缩包&lt;/p&gt;
&lt;p&gt;如果说使用了较强的密码，且压缩包中的内容没有泄露；或是使用不同的密码或加密方式对同一个压缩包中的不同文件进行了加密，一般就难以破解出压缩包中的文件了。&lt;/p&gt;
&lt;p&gt;Windows下的工具就是archpr
Linux下是：
bkcrack -C 压缩包名 -c 压缩包内源文件 -p 泄露文件&lt;/p&gt;
&lt;p&gt;apt instsall bkcrack&lt;/p&gt;
</content:encoded></item><item><title>MISC——ZIP之伪加密</title><link>https://imjiazi.top/posts/misc13/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc13/</guid><description>在zip文件当中，每个文件头和每一个文件的核心目录区，都有通用标记位。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205601956-ad322x.jpg&quot; alt=&quot;肥鱼.jpg&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;暴力破解&lt;/h3&gt;
&lt;p&gt;针对于压缩包的暴力破解，大多适合密码比较简单的情况下或是已知的格式或范围
Windows 可以使用archpr工具
Linux 可以使用fcrackzip工具&lt;/p&gt;
&lt;h3&gt;关于Linux下解压缩文件命令&lt;/h3&gt;
&lt;p&gt;Kali 默认自带大部分基础工具，如果遇到 &lt;code&gt;rar&lt;/code&gt; 或 &lt;code&gt;7z&lt;/code&gt; 提示命令不存在，直接 &lt;code&gt;apt install unrar p7zip-full&lt;/code&gt; 即可。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;格式&lt;/th&gt;
&lt;th&gt;查看内容（不解压）&lt;/th&gt;
&lt;th&gt;解压命令&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;.zip&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unzip -l 文件名.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unzip 文件名.zip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;最常用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;.tar.gz&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tar -tzvf 文件名.tar.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tar -zxvf 文件名.tar.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;z=gzip, j=bzip2, x=解压, v=显示过程, f=文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;.tar&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tar -tvf 文件名.tar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tar -xvf 文件名.tar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;纯打包，未压缩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;.gz&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zcat 文件名.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gzip -d 文件名.gz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;单文件压缩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;.7z&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;7z l 文件名.7z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;7z x 文件名.7z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;x 表示保留目录结构&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;.rar&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unrar l 文件名.rar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;unrar x 文件名.rar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;l=列表，x=保留路径解压&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre&gt;&lt;code&gt;在 Windows 下打包的 zip 拿到 Linux 解压，经常出现乱码。加上 `-O CP936` 参数
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;伪加密&lt;/h3&gt;
&lt;p&gt;在zip文件当中，每个文件头和每一个文件的核心目录区，都有通用标记位。
zip文件格式组成：
1.压缩源文件数据区（文件头、文件数据、数据描述符）
2.核心目录    通用标记为距离核心目录区头504B0102的偏移有8字节，本身占2字节（文件头是偏移6字节）
3.目录结束标识&lt;/p&gt;
&lt;p&gt;如果对于查看内容都需要密码的文件来说，那就不是伪加密了，而是真实加密&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;爆破 zip 密码（CPU）&lt;/strong&gt;：&lt;code&gt;fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u 文件名.zip&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在 Kali 下用 &lt;code&gt;zip2john&lt;/code&gt; 提取哈希，如果是伪加密，提取出来的哈希通常是空的或者报错；如果是真加密，能提取出完整的 &lt;code&gt;$pkzip2$&lt;/code&gt; 哈希。然后扔进 John 看能不能跑出来。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;zip2john 文件名.zip &amp;gt; hash.txt      # 提取哈希&lt;/li&gt;
&lt;li&gt;john hash.txt --wordlist=密码字典   # 交给 john 爆破&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;fcrackzip参数：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;参数分类&lt;/th&gt;
&lt;th&gt;参数&lt;/th&gt;
&lt;th&gt;作用说明&lt;/th&gt;
&lt;th&gt;备注/示例&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;模式选择&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;暴力破解&lt;/strong&gt; (Brute-force)&lt;/td&gt;
&lt;td&gt;遍历所有可能组合，速度较慢&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;字典破解&lt;/strong&gt; (Dictionary)&lt;/td&gt;
&lt;td&gt;从指定的密码字典中读取&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;字符集&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;指定暴力破解的&lt;strong&gt;字符集&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;见下方“字符集代码表”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;长度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-l&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;指定密码的&lt;strong&gt;长度范围&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;格式：&lt;code&gt;-l 1-4&lt;/code&gt; 或 &lt;code&gt;-l 4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;验证/输出&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;过滤错误密码&lt;/strong&gt; (Use unzip)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;必加！&lt;/strong&gt; 调用 &lt;code&gt;unzip&lt;/code&gt; 验证，否则会报一堆假密码&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-v&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;显示详细爆破过程&lt;/td&gt;
&lt;td&gt;能看到当前跑到哪个密码了&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;字典/前缀&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;指定字典路径 或 初始密码字符串&lt;/td&gt;
&lt;td&gt;字典模式：&lt;code&gt;-p /path/rockyou.txt&lt;/code&gt;  &amp;lt;br&amp;gt;暴力模式：&lt;code&gt;-p abc&lt;/code&gt;（从abc开始跑）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;在macos中，可以无视伪加密，但如果文件头被加密就无法使用binwalk和macos无视提取，需要手动修改压缩包&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字符/符号&lt;/th&gt;
&lt;th&gt;含义&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;a&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;所有小写字母&lt;/td&gt;
&lt;td&gt;即 &lt;code&gt;[a-z]&lt;/code&gt;&lt;a href=&quot;https://manpages.debian.org/testing/fcrackzip/fcrackzip.1.en.html&quot;&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;A&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;所有大写字母&lt;/td&gt;
&lt;td&gt;即 &lt;code&gt;[A-Z]&lt;/code&gt;&lt;a href=&quot;https://manpages.debian.org/testing/fcrackzip/fcrackzip.1.en.html&quot;&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;1&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;所有数字&lt;/td&gt;
&lt;td&gt;即 &lt;code&gt;[0-9]&lt;/code&gt;&lt;a href=&quot;https://manpages.debian.org/testing/fcrackzip/fcrackzip.1.en.html&quot;&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;!&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;特殊符号集合&lt;/td&gt;
&lt;td&gt;包括 &lt;code&gt;[!:$%&amp;amp;/()=?{[]}+*~#]&lt;/code&gt; 这些符号&lt;a href=&quot;https://manpages.debian.org/testing/fcrackzip/fcrackzip.1.en.html&quot;&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;:&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;自定义字符集&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;冒号后的所有字符&lt;/strong&gt;都会被纳入字符集，直到字符串结束。利用它，你可以精确指定任何想用的字符（二进制空字符 &lt;code&gt;\0&lt;/code&gt; 除外）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;rarcrack&lt;/code&gt; 是一款专门针对 RAR、ZIP、7Z 等格式进行暴力破解的工具，使用起来比较直观。
sudo apt-get install rarcrack&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之单、多文件追加隐写</title><link>https://imjiazi.top/posts/misc4/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc4/</guid><description>文件追加隐写本质是直接附加隐写的**进阶篇**</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794204392626-z5xuyh.jpg&quot; alt=&quot;肥鱼.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;文件追加隐写本质是直接附加隐写的&lt;strong&gt;进阶篇&lt;/strong&gt;：单文件追加即尾部多了一个完整文件，多文件追加则是尾巴上串了好几个文件。&lt;/p&gt;
&lt;p&gt;但本质是不变的：即一般浏览器读到结束标记就停止解析，而忽略下文，导致追加内容不影响图片的正常显示。&lt;/p&gt;
&lt;p&gt;单文件追加的一些特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;图片能正常打开，但 &lt;code&gt;ls -l&lt;/code&gt; 大小明显偏大。&lt;/li&gt;
&lt;li&gt;尾部是一个&lt;strong&gt;有完整文件头&lt;/strong&gt;的另一个文件。&lt;/li&gt;
&lt;li&gt;常见组合：PNG+ZIP、JPG+RAR、PNG+PNG、JPG+PDF。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用Binwalk命令（kali下）
分析文件：binwalk filename
分离文件：binwalk -e filename
binwalk帮我们分离文件时，遇到压缩包会自动帮我们解压&lt;/p&gt;
&lt;p&gt;有时候binwalk识别不出来，那么可以尝试一下foremost(kali下)
用法:foremost 文件名 -o 输出目录名
作用和binwalk差不多，他会在目标文件的文件目录下生成我们设置的目录，目录中会按文件类型分离出文件
与binwalk不同foremost分离的文件只会帮你自动分类，而不会解压。&lt;/p&gt;
&lt;p&gt;当binwalk与foremost都无法解决的话，可以使用dd，这是三个文件解析工具中最难用的一个。有遇到文件分片混乱组合，不能并成一个文件的时候可以使用。&lt;/p&gt;
&lt;p&gt;格式：
dd if=源文件 of=目标文件名 bs=1（一块的大小）count=3（字节的数量） skip=分离的字节
dd if=图片 of=out.zip bs=1 skip=偏移
dd if=图片 of=out.zip bs=1 skip=偏移 count=长度&lt;/p&gt;
&lt;p&gt;参数说明：
if=file 	输入文件名，缺省为标准输入
of=file 	输出文件名，缺省为标准输出
bs=byte 	同时设置读写块的大小为bytes，可代替ibs和obs。
skip=blocks 从输入文件开头跳过blocks个块后在开始复制&lt;/p&gt;
&lt;p&gt;但是dd不是万能的，这是一个复杂的工具中间还需要计算，所以题目复杂到你根本就不想用dd去解决问题，那么这个时候，可以使用winhex实现文件手动分离，当然010也可以。&lt;/p&gt;
&lt;p&gt;选中需要分离的地方，将其导出，右键后，选择selection下的save selection，保存文件即可。&lt;/p&gt;
&lt;p&gt;有时候题目给了一个txt，但里边是一长串的十六进制的代码，这时候可以放到010editor中，选择file下的import hex，即可导出，寻找到文件头即可。&lt;/p&gt;
&lt;p&gt;而文件内容隐写，就是直接将KEY以十六进制的形式写在文件中，通常在文件的开头或结尾部分，分析时通常重点观察文件开头和结尾部分。如果在文件中间部分，通常搜索关键词KEY或flag来查找隐藏内容。&lt;/p&gt;
&lt;p&gt;windows下直接把文件拖到010editor中，查找关键词或寻找明显与文件内容不和谐的部分，通常优先观察文件首部与尾部，搜索flag或key等关键词寻找。
或使用npp，ndd工具也可以，操作类似。&lt;/p&gt;
&lt;p&gt;不过其实单文件追加一般也并不会如此单纯，比如隐写了一个压缩包，分离后发现被加密了，不过这一点我们在伪加密部分再讲。&lt;/p&gt;
&lt;p&gt;多文件追加的一些特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一张图后面串了多个文件。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;binwalk&lt;/code&gt; 会列出&lt;strong&gt;多个偏移&lt;/strong&gt;，每个偏移对应一个文件。
同上，不过多文件追加的时候有可能会在文件与文件的交界处留有密文，使用以下命令可以查看&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;xxd -s 前一个文件尾偏移 -l 256 图片&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之EXIF</title><link>https://imjiazi.top/posts/misc5/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc5/</guid><description>EXIF中的数据是可以被任意编辑的</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794204804976-6iqjm5.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EXIF（Exchangeable Image File Format，可交换图像文件格式）可以用于记录数码照片的信息与数据。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;EXIF中的数据是可以被任意编辑的，按照JPEG的规格在JPEG中插入一些图像/数字相机的信息数据以及缩略图像，可以通过与JPEG兼容的浏览器/图片浏览器/图像处理等软件来查看Exif格式的图像文件，与浏览器通常的JPEG图像文件一样。&lt;/p&gt;
&lt;p&gt;可以通过右键图片查看属性，在相关选项卡中查找flag信息。（不过通过浏览器以及右键查看exif的能力有限，比如windows属性页不显示自定义的标签）
或使用exiftool命令：
1.查看JPG图片信息：
exiftool.exe 文件名（会输出一大片信息，包括分辨率，厂商，拍摄时间，EOTF，色域等信息。）&lt;/p&gt;
&lt;p&gt;2.添加exif信息：
exiftool -变量名=&quot;参数&quot; 路径&lt;/p&gt;
&lt;p&gt;3.搜索exif中相关字段：
exiftool *|grep flag
不过也可以使用010或winhex进行搜索&lt;/p&gt;
&lt;p&gt;4.清空所有EXIF
exiftool -all= 图片.jpg&lt;/p&gt;
&lt;p&gt;常见参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-a&lt;/code&gt;：显示重复标签&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-u&lt;/code&gt;：显示未知标签（&lt;strong&gt;关键&lt;/strong&gt;，很多题 flag 就在这里）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-g1&lt;/code&gt;：按组分类显示，方便搜寻&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-b&lt;/code&gt; 输出二进制（提取缩略图用）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-s&lt;/code&gt; 显示短标签名，方便脚本&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-csv&lt;/code&gt; / &lt;code&gt;-json&lt;/code&gt; 多文件对比或结构化输出&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;注：写EXIF会更改文件，做题时需要提前备份留存。&lt;/p&gt;
&lt;p&gt;且JPEG 的 EXIF 里常嵌缩略图（通常 160×120 左右），是相机/软件自动生成的。flag 可能在缩略图里：
使用以下命令尝试提取缩略图
exiftool -b -ThumbnailImage 图片.jpg &amp;gt; thumb.jpg
exiftool -b -PreviewImage 图片.jpg &amp;gt; preview.jpg
如果 &lt;code&gt;-b&lt;/code&gt; 提取出来是 0 字节，说明这张图没有该字段，换另一个标签或跳过。&lt;/p&gt;
&lt;p&gt;而PNG 没有 EXIF，但元数据藏在 &lt;code&gt;tEXt/zTXt/iTXt&lt;/code&gt; 文本块里，&lt;code&gt;exiftool -a -u -g1&lt;/code&gt; 和 &lt;code&gt;pngcheck -v&lt;/code&gt; 都能读；&lt;code&gt;tEXt&lt;/code&gt; 是明文；&lt;code&gt;zTXt&lt;/code&gt; 是 zlib 压缩，需要解压；&lt;code&gt;iTXt&lt;/code&gt; 可能压缩。&lt;code&gt;pngcheck -v&lt;/code&gt; 能看到块类型，010 看 chunk data，zTXt 用 zlib 解。&lt;/p&gt;
&lt;h1&gt;&lt;strong&gt;高频字段表&lt;/strong&gt;&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Comment&lt;/td&gt;
&lt;td&gt;注释，最高频&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ImageDescription&lt;/td&gt;
&lt;td&gt;图像描述&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Artist / Copyright&lt;/td&gt;
&lt;td&gt;作者/版权&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UserComment&lt;/td&gt;
&lt;td&gt;可能是 Hex/Base64，需解码&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XPComment / XPAuthor / XPKeywords&lt;/td&gt;
&lt;td&gt;Windows 扩展字段，&lt;strong&gt;必须 &lt;code&gt;-u&lt;/code&gt; 才显示&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Make / Model / Software&lt;/td&gt;
&lt;td&gt;可能被改成 flag&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPSLatitude / GPSLongitude&lt;/td&gt;
&lt;td&gt;坐标题，转地图&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ThumbnailImage&lt;/td&gt;
&lt;td&gt;缩略图，必提取&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;未知/自定义标签&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-u&lt;/code&gt; 才显示&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded></item><item><title>MISC——图片隐写之图片修复</title><link>https://imjiazi.top/posts/misc3/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc3/</guid><description>出题者故意修改损坏文件头/文件尾/关键字段，使得工具无法识别，我们需要先行把他修改为正常结构，再继续寻找flag.</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794204263626-mxb7gz.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;当文件出现损坏时，使用file这种基于文件签名（magic）的命令已经无法识别出这是一个什么文件，而返回值是data文件。（因为只改后缀而不改内容，file依旧会识别真实类型。不过返回data也可能是因为未知格式、加密/压缩数据、文件头前有垃圾）&lt;/p&gt;
&lt;p&gt;这种题目则需要我们去依据文件头修复文件，使用010直接补充上文件头即可，这是杂项题中文件识别的基本题。&lt;/p&gt;
&lt;p&gt;当然，在MISC题型中，故意损坏文件不仅仅会出现在图片中，还可能出现在压缩包、PDF、磁盘镜像文件中。&lt;em&gt;&lt;strong&gt;本质就是出题者故意修改损坏文件头/文件尾/关键字段，使得工具无法识别，我们需要先行把他修改为正常结构，再继续寻找flag。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;这里不对其他文件作说明
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;拿到图片后可以按照这个顺序来试着判断是否是直接附加或修复题
file 文件名                                                  # 返回data或类型不正确
xxd 图片 | head                                         # 看前 16 字节文件头
xxd 图片 | tail                                            # 看文件尾
strings -n 6 图片 | grep -iE &apos;flag|ctf|key&apos;   # 扫明文
pngcheck -v 图.png                                 # PNG 专用：块结构/CRC&lt;/p&gt;
&lt;p&gt;如果 &lt;code&gt;file&lt;/code&gt; 返回 &lt;code&gt;data&lt;/code&gt;，但文件大小正常、&lt;code&gt;strings&lt;/code&gt; 有可疑内容，大概率是&lt;strong&gt;文件头被破坏&lt;/strong&gt;，不是加密。&lt;/p&gt;
&lt;p&gt;更进一步，则是会嵌套写入一个或多个文件，如图片，压缩包等。&lt;/p&gt;
&lt;p&gt;从图片修复来说，有四个方面如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;文件头修复&lt;/li&gt;
&lt;li&gt;文件尾修复&lt;/li&gt;
&lt;li&gt;PNG宽高/CRC校验修复&lt;/li&gt;
&lt;li&gt;JPEG/GIF头尾修复&lt;/li&gt;
&lt;li&gt;多文件合并&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;文件头与文件尾直接查表对应，通过010进行修改即可。
CRC 全称 &lt;strong&gt;（Cyclic Redundancy Check），循环冗余校验&lt;/strong&gt;。&lt;strong&gt;它是根据一段数据算出来的固定长度“校验值”，用来检测数据有没有被改动或传输出错。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一旦文件的宽高等数据被修改，CRC一定会错，不过CRC出错，却不一定是宽高被改，也可能是CRC被单独修改，只要注意这点，根据原理两者大可论为一谈。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pngcheck -v&lt;/code&gt; 报 CRC 错误，就说明这个块的数据被改过，或者 CRC 本身被改过，大概率就是文件修复题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;不过区分两种情况&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;只改了 CRC 值&lt;/strong&gt;：数据是好的，CRC 被故意改坏 → 使用TweakPNG 直接重算 CRC 即可。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;改了数据（如宽高）导致 CRC 错误&lt;/strong&gt;：要先恢复数据，再重算 CRC；只修 CRC 没有作用。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;甚至有时候出题者给你一张图片，但是喜欢绕弯，硬是将一份文件砍成三四份再发（还有一个md的值用于计算文件的完整性），那么此时就需要合并文件。在linux下，可以使用cat（查看文件）关键词查看文件，合并成一份。&lt;/p&gt;
&lt;p&gt;文件合并方法：
例： cat 文件名 文件名 文件名…… &amp;gt; 合并后文件名
然后使用md5sum 文件名 来查看文件md5值，进行核对，便知成功与否。&lt;/p&gt;
&lt;p&gt;windows下则使用copy来进行合并文件，使用dir可以查看文件。
格式：copy /B 文件1+文件2 合并后文件名
windows下计算md5命令：certutil -hashfile 文件名 MD5&lt;/p&gt;
&lt;p&gt;工具：&lt;/p&gt;
&lt;p&gt;TweakPNG 是一款简易的PNG图像浏览工具，用于查看和编辑 PNG 的 chunk 结构：块类型、长度、CRC，支持删除/修改块和重算 CRC。&lt;/p&gt;
&lt;p&gt;适用场景：文件头正常却无法打开的文件，利用tweakPNG修改CRC&lt;/p&gt;
&lt;p&gt;例：当png文件正常但无法打开文件，可能是CRC检验出错，用tweakPNG打开png，会弹出CRC校验错误的弹窗。&lt;/p&gt;
&lt;p&gt;第一种，通过工具直接修改CRC校验值即可&lt;/p&gt;
&lt;p&gt;第二种，需要借助python脚本，爆破宽高进行修复，然后再计算CRC校验值&lt;/p&gt;
&lt;p&gt;这种题目再次进阶就不仅仅只是隐写图片了，而是其他的各种文件，如压缩包、pdf、word等&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之GIF隐写</title><link>https://imjiazi.top/posts/misc7/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc7/</guid><description>GIF通过在某一张图片或多张图片中写入信息，加快GIF播放速度，使得肉眼难以识别flag。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794204988373-fh7n35.jpg&quot; alt=&quot;肥鱼.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;GIF（Graphics Interchange Format,图片交换格式）文件是由CompuServe公司开发的图片文件格式，非常适合于较为简单的图像，可利用小动画或低分辨率电影剪辑等，每一帧动态变化都是一张图片。
在线GIF制作：http://www.soogif.com/gifTool&lt;/p&gt;
&lt;p&gt;GIF通过在某一张图片或多张图片中写入信息（可能是隐藏信息），加快GIF播放速度，使得肉眼难以识别flag。
这时我们可以通过分离图片，来获得具体的图片，在windows中可以直接拖到ps中查看图层。
在Linux下，可以使用convert gif文件名 %02d.png命令分离图片
然后可以使用eog *.png来查看分离出的图片
&lt;strong&gt;使用StegSolve 打开 GIF，菜单栏选 &lt;code&gt;Frame Browser&lt;/code&gt;&lt;/strong&gt;，也可以直接把每一帧像幻灯片一样列出来。&lt;/p&gt;
&lt;p&gt;当然，也不是所有的GIF隐写题都会把明文藏在某一张图片中，而是有大量非明文的信息，这时通过分析我们可以考虑分离组合文件
ls *.png | while read filename; do convert  $filename -transparent white $filename; done
//遍历图片传递给while循环，通过循环去除白色，存储在filename中
ls *.png | while read filename; do convert $filename 00.png -gravity center -composite 00.png ; done
//遍历图片组合成00.png&lt;/p&gt;
&lt;h5&gt;GIF帧延迟/时间轴隐写&lt;/h5&gt;
&lt;p&gt;有些GIF甚至图片之间并没有任何变化，这时候就可以考虑是否为时间轴隐写
#查看每一帧的延迟时间（单位：百分之一秒）
identify -format &quot;%s: %T\n&quot; 图片.gif
//提取出来的数字（比如 10, 40, 20）往往需要转成十六进制或 ASCII。&lt;/p&gt;
&lt;p&gt;GIF 文件尾部也有结束标记 &lt;code&gt;3B&lt;/code&gt;。和 PNG/JPEG 一样，尾部的附加数据可以用 &lt;code&gt;binwalk&lt;/code&gt; 扫，或者用 010 看尾部。&lt;br /&gt;
另外，GIF 有特殊的 &lt;strong&gt;Comment Extension 块（0x21 0xFE）&lt;/strong&gt;，有时候出题人会把 flag 直接写在注释块里。用 &lt;code&gt;exiftool&lt;/code&gt; 或 &lt;code&gt;strings&lt;/code&gt; 扫一眼就知道。&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之LSB</title><link>https://imjiazi.top/posts/misc6/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc6/</guid><description>人类的眼睛只能识别大致1kw种颜色，而剩下无法被眼睛识别的颜色仍有许多。</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794204891475-pzncy6.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;LSB（最低有效位（Least Significant Bit））在大多数PNG图像中，每个像素都有R、G、B三原色组成（部分还包含A通道表示&lt;strong&gt;透明度&lt;/strong&gt;），每种颜色一般用8位数据表示（0x00~0xFF，即256种颜色），即一共含有256^3种颜色（16777216种）。&lt;/p&gt;
&lt;p&gt;人类的眼睛只能识别大致1kw种颜色，而剩下无法被眼睛识别的颜色仍有许多。LSB隐写其实就是去修改RGB颜色分量的最低二进制位，而我们的眼睛也不会注意到隐写前后的变化。
每个像素可以携带3bit的信息&lt;/p&gt;
&lt;p&gt;LSB替换隐写基本思想就是用嵌入的秘密信息取代载体图像的最低比特位，原本的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。&lt;/p&gt;
&lt;p&gt;而在比赛中常用于检测LSB的工具是&lt;strong&gt;stegsolve&lt;/strong&gt;和&lt;strong&gt;zsteg&lt;/strong&gt;（较针对于PNG、BMP文件的LSB隐写JPEG 不适用。linux下，安装命令为：root@kali:/#gem install zsteg）&lt;/p&gt;
&lt;p&gt;zsteg检测LSB隐写:zsteg 文件名
zsteg -a 图片.png                            #查看有无LSB隐藏数据&lt;br /&gt;
zsteg -v 图片.png | head -40           #显示前40行，列出组合的尝试结果与置信度
zsteg -E &quot;b1,rgb,lsb,xy&quot; 图片.png      #精确的提取参数&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;b1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;每个通道取 &lt;strong&gt;1 比特&lt;/strong&gt;（bit depth 1）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rgb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;使用 &lt;strong&gt;R、G、B 三个通道&lt;/strong&gt;（也可 &lt;code&gt;b&lt;/code&gt;、&lt;code&gt;r&lt;/code&gt;、&lt;code&gt;g&lt;/code&gt;、&lt;code&gt;a&lt;/code&gt;、&lt;code&gt;rgba&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lsb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;最低位优先&lt;/strong&gt;（Least Significant Bit first）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;行优先&lt;/strong&gt;读取（先横后竖；&lt;code&gt;yx&lt;/code&gt; 是列优先）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;LSB隐写术也分加密与未加密
一般而言，stegsolve和zsteg工具针对的是未加密的LSB隐写文件
而cloacked-pixel工具是强制加密再嵌入的工具，使用此工具嵌出来的LSB一定是加密的&lt;/p&gt;
&lt;p&gt;Stegsolve
当两张图片外观、大小、像素都基本相同时，可以考虑进行结合分析，即将两个文件的像素RGB值进行XOR\ADD\SUB等操作，尝试获取有用信息，Stegsolve可以方便的进行这些操作。（使用场景，两张图片基本相同）&lt;/p&gt;
&lt;p&gt;cloacked-pixel工具
python2 lsb.py analyse 图片.png                   # 检测 LSB 分布是否异常均匀
python2 lsb.py extract 图片.png out 密码      # 提取，必须给密码
file out                                                            # 看提取出什么&lt;/p&gt;
&lt;p&gt;silent Eye工具
&lt;strong&gt;silent eye属于“加密 LSB”的一种具体实现&lt;/strong&gt;，但不能和“加密 LSB”画绝对的等号。准确来说，它是一种带加密/压缩功能的lsb隐写工具，当stegsolve与zsteg无法得到明文时，就可以考虑使用silent eye 工具&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;如果附件是 &lt;code&gt;.bmp&lt;/code&gt; 格式（SilentEye 最爱），或者题目描述里提到了“安静、音频、听觉”，优先试 &lt;strong&gt;SilentEye&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;题目要是没给密码，先用 SilentEye 直接点 Decode 试试（因为它可以不加密，或者允许空密码）；如果是 &lt;code&gt;.png&lt;/code&gt; 且题目明确给了一个复杂的密码，大概率是 &lt;strong&gt;cloacked-pixel&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>MISC——图片隐写之二维码隐写</title><link>https://imjiazi.top/posts/misc8/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc8/</guid><description>二维码隐写通常是以**破损、反色、缺角、或 01 矩阵**的形式出现</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205078221-hfk2ur.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在 CTF 中，二维码很少直接让你“掏出手机扫一下”就出 flag。它通常是以&lt;strong&gt;破损、反色、缺角、或 01 矩阵&lt;/strong&gt;的形式出现，考察的是你“修复图形”和“还原数据”的能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;特征&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;题目附件直接给了一张二维码图片，但扫不出来。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;分离出的文件里，有一张损坏的二维码（缺定位角、中间有污损、颜色反转）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;提取出一段纯文本，内容全是 &lt;code&gt;0&lt;/code&gt; 和 &lt;code&gt;1&lt;/code&gt;（01 矩阵）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;图片被切成了几块（碎片拼接）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;工具安装：&lt;/h3&gt;
&lt;p&gt;apt install zbar-tools
zbarimg 图片.png   //使用工具进行扫码&lt;/p&gt;
&lt;p&gt;如果二维码被反色，可以使用StegSolve工具或者ps进行反相
Linux下命令：convert 原图.png -negate 反色图.png&lt;/p&gt;
&lt;p&gt;QRazyBox网页工具&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;导入图片&lt;/strong&gt;：在 &lt;code&gt;Tools&lt;/code&gt; -&amp;gt; &lt;code&gt;Extract QR Information&lt;/code&gt; 载入图片，它会自动读取格式信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;手动填补&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;利用左侧的画笔工具，&lt;strong&gt;黑色块选“Fill”&lt;/strong&gt;，&lt;strong&gt;白色块选“Empty”&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;如果是被遮挡或污损的区域，根据你肉眼看到的边缘规律，手动把它涂黑或涂白。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动纠错（关键）&lt;/strong&gt;：涂完之后，点击 &lt;code&gt;Tools&lt;/code&gt; -&amp;gt; &lt;code&gt;Reed-Solomon Decoding&lt;/code&gt;（或者直接点右上角的 &lt;code&gt;Decode&lt;/code&gt; 按钮）。
&lt;ul&gt;
&lt;li&gt;二维码有约 30% 的纠错能力，你只需补全明显的定位角和格式信息，剩下的残损它会自动帮你算出来并解码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;有时候你从图片的 LSB、文件尾部或者文本里提取出来一长串的 &lt;code&gt;0&lt;/code&gt; 和 &lt;code&gt;1&lt;/code&gt;，比如：&lt;br /&gt;
&lt;code&gt;111111100110101011111110100...&lt;/code&gt;时，就有可能时01矩阵隐写，一般可以转换为二维码，可以使用脚本去跑出来。&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之盲水印</title><link>https://imjiazi.top/posts/misc9/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc9/</guid><description>所谓盲水印，即人类肉眼不可见的一种水印方式</description><pubDate>Mon, 09 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794205122296-bh4ais.jpg&quot; alt=&quot;肥鱼.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;所谓盲水印，即人类肉眼不可见的一种水印方式，现已广泛推广，大多用以保护权益，不仅仅是图片，其实音频也可以添加盲水印，这些都需要我们使用特定的工具来进行提取。&lt;/p&gt;
&lt;p&gt;盲水印通常写在图片的频域和空域。空域技术就是在信息空间嵌入信息，LSB隐写其实就是一种在空域添加信息的方式。&lt;strong&gt;在 CTF 中，盲水印通常特指频域水印&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;工具：
WaterMark
&lt;a href=&quot;https://www.52pojie.cn/thread-1980917-1-1.html&quot;&gt;盲水印工具WaterMark.exe - 吾爱破解 - 52pojie.cn&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>你好，世界</title><link>https://imjiazi.top/posts/hello/</link><guid isPermaLink="true">https://imjiazi.top/posts/hello/</guid><description>甲子の小秘境今天正式开张，往后会在这里记录代码、游戏和茶。</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这里是甲子の小秘境。&lt;/p&gt;
&lt;p&gt;往后会在这里记录：&lt;/p&gt;
&lt;p&gt;代码、游戏与茶~&lt;/p&gt;
&lt;p&gt;欢迎常来。&lt;/p&gt;
</content:encoded></item><item><title>MISC——常见编码</title><link>https://imjiazi.top/posts/misc1/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc1/</guid><description>编码是CTF中常见的加密方式，而flag以明文的方式出现，这时认识一些常见的编码就相当重要了。</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在CTF中flag往往并不是以明文的方式出现，而是会进行一些编码或加密。&lt;/p&gt;
&lt;p&gt;网站：
&lt;a href=&quot;https://www.toolhelper.cn/EncodeDecode/Base64&quot;&gt;Base64 编码/解码 - 锤子在线工具&lt;/a&gt;
&lt;a href=&quot;https://toolb.cn/corevalue&quot;&gt;社会主义核心价值观编码器 - ToolB&lt;/a&gt;
&lt;a href=&quot;https://my.chenyu.me/buddha/&quot;&gt;与佛论禅&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/1793698885880-ejqc62.jpg&quot; alt=&quot;EWSMe9YPTV2vLgg.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;常见的编码方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Base家族（Base64是最常见的编码，flag编码后为“ZmxhZw==”）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Base32（特征为全大写+数字2-7）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hex编码（即16进制编码（base16），flag编码后为666c6167）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;URL编码（&lt;code&gt;flag{test}&lt;/code&gt; → &lt;code&gt;flag%7Btest%7D&lt;/code&gt;，空格 → &lt;code&gt;%20&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;莫尔斯电码（摩斯电码由.和-组成）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HTML编码（&lt;code&gt;&amp;lt;&lt;/code&gt; → &lt;code&gt;&amp;amp;lt;&lt;/code&gt;，&lt;code&gt;{&lt;/code&gt; → &lt;code&gt;&amp;amp;#123;&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ROT13（凯撒密码的变种，即在26字母中往后顺延13位，而数字不会变动，flag-&amp;gt;synt）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ROT47(是对可打印的ASCII码偏移47，数字与字符都会变)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unicode（&lt;code&gt;\u0066\u006c\u0061\u0067&lt;/code&gt; → &lt;code&gt;flag&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;凯撒密码（凯撒密码是一种&lt;strong&gt;替换密码&lt;/strong&gt;：把每个英文字母按照一个&lt;strong&gt;固定的偏移量&lt;/strong&gt;向后（或向前）移动若干位，超过 &lt;code&gt;Z&lt;/code&gt; 就绕回 &lt;code&gt;A&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;社会主义核心价值观编码&lt;/strong&gt;：12 个词替换。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;与佛论禅/佛曰&lt;/strong&gt;：常带“佛曰：”前缀。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;熊曰、兽音（嗷呜啊~）&lt;/strong&gt;：看关键词。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ook!&lt;/strong&gt;：&lt;code&gt;Ook. Ook?&lt;/code&gt; 形式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JSFuck （没有正常字母、数字和引号、逗号，只由[]!+()，六种字符组成，需用function构造器执行字符串代码）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;控制台无法粘贴就输入&quot;allow pasting&quot;&lt;/p&gt;
</content:encoded></item><item><title>MISC——图片隐写之直接附加</title><link>https://imjiazi.top/posts/misc2/</link><guid isPermaLink="true">https://imjiazi.top/posts/misc2/</guid><description>所谓隐写就是将信息或文件隐藏在某些文件中，而发掘这些被隐藏信息的过程就是隐写分析。</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/uploads/1794204065707-fht3kt.jpg&quot; alt=&quot;1793698885880-ejqc62.jpg&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;所谓隐写就是将信息或文件隐藏在某些文件中，而发掘这些被隐藏信息的过程就是隐写分析。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;文件的&lt;strong&gt;基本结构&lt;/strong&gt;分为文件头+文件内容（+文件尾），不是&lt;em&gt;&lt;strong&gt;所有&lt;/strong&gt;&lt;/em&gt;的文件都有文件尾，程序通过识别到文件的文件头从而分析文件的&lt;strong&gt;真实&lt;/strong&gt;类型。&lt;/p&gt;
&lt;p&gt;一般浏览器在读取到拥有文件尾的文件时，读到结束标记后就会停止解析，所以&lt;s&gt;尾部追加数据通常不影响正常显示&lt;/s&gt;，换而言之，就是文件尾部追加的内容并不会影响文件的正常浏览。（但不是所有格式、所有解析器都这样；有些格式靠长度字段读取，追加数据可能被忽略或报错。）&lt;/p&gt;
&lt;p&gt;而直接将内容追加至有文件尾的文件末尾就是最常见的隐写术，即直接附加。&lt;/p&gt;
&lt;p&gt;无论是jpg、png还是其他的文件，都是由一些特定的数据块组成的。
如png分为四个关键数据块：IHDR（文件头数据块）、PLTE（调色板数据块（&lt;strong&gt;不是所有&lt;/strong&gt;png都有））、IDAT（图像数据块）、IEND（图像结束数据），以及一些辅助数据块组成。（flag也可能藏在文本块中，不一定在文件尾）&lt;/p&gt;
&lt;p&gt;每个数据块都由四部分组成：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;length长度&lt;/li&gt;
&lt;li&gt;chunk type code数据块类型码&lt;/li&gt;
&lt;li&gt;chunk data数据块数据&lt;/li&gt;
&lt;li&gt;CRC循环冗余校验码&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一般做题会先使用file命令来检查文件后缀是否正确，原理其实也是上下文所述。
语法：file 文件名&lt;/p&gt;
&lt;p&gt;PNG文件总是由固定的字节（89 50 4E 47 0D 0A 1A 0A）开始，IEND数据块的长度总00 00 00 00，数据标识总是49 45 4E 44，CRC固定为AE 42 60 82。一般PNG文件以（00 00 00 00 49 45 4E 44 AE 42 60 82）为结尾&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/1794204113378-y3bc7m.png&quot; alt=&quot;Pasted image 20261103191617.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/1794204147244-4uu03v.png&quot; alt=&quot;Pasted image 20261103191630.png&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;直接附加的隐写方法，可能会在文件头和文件尾部直接附加明文flag或加密flag，但是稍微进阶一些的题目，用肉眼去查看的方法就容易失效，有时会在文件尾追加其他文件，而其他文件与本体文件的文件尾与文件头的交接处也可能存在flag。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;而当我们学会接触简单的文件尾附加之后，就可以尝试进阶一些的题目了。&lt;/p&gt;
&lt;p&gt;这种文件结构题进一步，给出的附件就可能不是一个完好的文件了，而是一个破损或缺失部分文件头的文件通过故意将文件头破坏而导致无法识别这是一个什么文件。&lt;/p&gt;
</content:encoded></item></channel></rss>