WinHex手工分析FAT表追踪目录簇链:从原理到数据恢复实战
1. 文件系统取证中FAT表的核心作用1.1 为什么FAT表是目录链追踪的关键入口在数据恢复和磁盘取证的实际工作中FAT文件系统是最常遇到的场景之一。U盘、SD卡、老式移动硬盘、相机存储卡大量设备默认采用FAT16或FAT32格式。当用户误删除文件、分区表损坏、或者目录项被清空时文件内容往往还完整躺在数据区只是“路标”被抹掉了。这时候FAT表就是重新把路标画出来的核心依据。FAT全称File Allocation Table直译就是文件分配表。你可以把它想象成一栋大楼每层房间的入住登记表每个房间号对应一个表项表项里写着“下一个住人的房间号是多少”。对于文件来说这个“房间”就是簇。一个文件如果大于一个簇就会被拆成多个簇存放FAT表负责把这些簇串成一条链。目录本身在FAT文件系统里也被当作文件处理所以目录同样占用簇同样有簇链。很多人做恢复时只盯着目录项里的起始簇号觉得找到起点就万事大吉。但目录项只告诉你第一个簇在哪后面的簇全靠FAT表串起来。如果FAT表被破坏或者你读错了表项目录链就会断轻则只能看到目录里的前几个文件重则整个目录树错乱。所以“利用FAT表找出目录的下一个簇”这件事本质上是掌握FAT文件系统目录遍历的底层能力是手工恢复和取证分析的基本功。1.2 目录也是文件理解目录簇链的本质这里要先破除一个常见的误解很多人以为目录是“特殊结构”和普通文件不一样。在FAT文件系统里目录就是一个内容特殊的文件。它的数据区存放的是一条条32字节的目录项每条目录项描述一个文件或子目录。目录本身也占簇也有簇链也受FAT表管理。举个例子一个目录如果包含很多文件32字节目录项装不下一个簇系统就会给它分配第二个簇然后在FAT表中把第一个簇的表项指向第二个簇。你打开这个目录时系统先读目录项里的起始簇号然后查FAT表顺着链把目录的所有簇都读出来才能看到完整文件列表。这就解释了为什么删除文件后目录还在、但文件打不开目录的簇链可能没动但文件的簇链被标记为空闲了。反过来如果目录本身的簇链断了你连文件列表都看不全。所以追踪目录的下一个簇既是理解文件系统结构的入口也是实际恢复中必须跨过的一道坎。1.3 WinHex在手工分析中的定位WinHex是一款十六进制编辑器同时具备磁盘编辑和数据分析能力。它不像那些一键恢复软件把过程全包了而是把磁盘的原始字节摊开给你看。对于学习文件系统原理、做精细取证、处理一键工具搞不定的疑难杂症WinHex这类工具是不可替代的。用WinHex分析FAT表找目录下一个簇核心操作就三步定位FAT表起始位置、根据当前簇号计算表项偏移、读取表项值判断下一个簇。听起来简单但实际做的时候FAT表可能有多个副本、簇号有保留值、FAT32的高四位有特殊含义、目录项有长短文件名之分每一步都有坑。下面我会把这些细节全部拆开结合具体操作讲清楚。2. 动手前的准备工作与关键参数计算2.1 确认文件系统类型与FAT表位置打开WinHex后第一件事不是急着跳转而是先搞清楚你面对的是什么文件系统。用WinHex打开一个磁盘或分区镜像按AltF1或者从菜单里选择“查看”→“模板管理器”可以调出分区表模板。但更直接的办法是看引导扇区。FAT文件系统的引导扇区DBR在分区的第0扇区。用WinHex跳转到该分区的起始扇区如果你打开的是整个物理磁盘需要先通过分区表找到分区起始LBA你会看到类似这样的结构偏移0x0B处是每扇区字节数通常5120x0D处是每簇扇区数0x0E处是保留扇区数0x10处是FAT表个数通常20x11处是根目录项数FAT160x16处是FAT表大小FAT160x24处是FAT表大小FAT320x2C处是根目录起始簇FAT32。这些参数不是摆设它们直接决定FAT表的起始位置和表项计算方式。我见过有人拿着FAT32的公式去算FAT16的表项偏移结果读出来的值完全对不上还以为是磁盘坏了。所以先把这几个关键偏移记牢参数FAT16偏移FAT32偏移说明每扇区字节数0x0B0x0B通常512每簇扇区数0x0D0x0D决定簇大小保留扇区数0x0E0x0EFAT表起始前的保留区FAT表个数0x100x10通常为2FAT表大小0x160x24单位是扇区根目录起始簇无0x2CFAT16根目录固定区域FAT表起始扇区 分区起始扇区 保留扇区数。这个公式两种FAT通用。比如保留扇区数是32分区从LBA 2048开始那FAT表就从LBA 2080开始。在WinHex里跳转到这个扇区你就能看到FAT表的原始数据了。2.2 计算FAT表项偏移的两种公式FAT16和FAT32的表项宽度不同计算方式必须区分开。这是最容易出错的地方我单独拎出来讲。FAT16每个表项占2字节表项值就是下一个簇号或者结束标记、坏簇标记。计算公式是表项偏移 当前簇号 × 2。比如当前簇号是5偏移就是100x0A从FAT表起始位置往后数10个字节读2个字节就是下一个簇号。FAT32每个表项占4字节但只有低28位有效高4位被保留。计算公式是表项偏移 当前簇号 × 4。读出来的4字节值要和0x0FFFFFFF做与运算把高4位清掉才是真正的簇号。比如读出来是0x0FFFFFF8与运算后是0x0FFFFFF8这是结束标记读出来是0x10000005与运算后是0x00000005下一个簇就是5。注意FAT32的高4位保留不是随便说说的。有些工具在写FAT表时会把这4位当标志位用如果你不清掉算出来的簇号会大得离谱跳转到错误位置。我踩过这个坑读出来一个0x30000012直接按这个值去跳转结果跑到了磁盘末尾的空白区。2.3 用WinHex定位目录起始簇要追踪目录的下一个簇得先知道目录的当前簇号。这个信息藏在目录项里。如果你已经知道某个子目录的目录项位置直接跳过去看偏移0x1A处的2字节FAT16或偏移0x14处的高2字节加偏移0x1A处的低2字节FAT32那就是起始簇号。如果是从根目录开始找FAT16的根目录在FAT表之后的固定区域位置 保留扇区数 FAT表个数 × FAT表大小。FAT32的根目录起始簇记录在引导扇区偏移0x2C处通常是2。在WinHex里你可以用“位置”→“转到偏移量”功能输入扇区号乘以512得到的字节偏移直接跳到目标位置。比如根目录起始簇是2每簇扇区数是8分区起始扇区是2048那根目录数据区起始扇区 2048 (2-2) × 8 2048。等等这里要注意簇号到扇区的转换公式是数据区起始扇区 (簇号 - 2) × 每簇扇区数。数据区起始扇区 分区起始扇区 保留扇区数 FAT表个数 × FAT表大小 根目录项数 × 32 / 每扇区字节数FAT16才有根目录项数FAT32此项为0。这个计算链条比较长我建议在纸上把每一步写下来再操作。WinHex虽然可以直接跳转但你得知道跳到哪里。3. 用WinHex读取FAT表追踪目录簇链的完整实操3.1 从目录项提取起始簇号假设我们面对的是一个FAT32格式的U盘镜像已经用WinHex打开。我们要追踪一个名为“DATA”的子目录看看它的簇链是怎么走的。第一步找到“DATA”的目录项。如果它在根目录下先跳到根目录数据区。根目录起始簇是2每簇8扇区分区起始LBA 2048保留扇区32FAT表2个每个大小512扇区。数据区起始扇区 2048 32 2 × 512 2048 32 1024 3104。根目录簇2对应的扇区 3104 (2-2) × 8 3104。在WinHex里跳到字节偏移 3104 × 512 1589248。在根目录数据区里你会看到一条条32字节的目录项。每条目录项的第一个字节如果是0x00表示后面没有更多目录项了如果是0xE5表示这个目录项被删除了如果是其他值就是文件名第一个字符。找到“DATA”对应的目录项看偏移0x14处的高2字节和偏移0x1A处的低2字节组合成32位值取低28位就是起始簇号。假设读出来是0x00000005那“DATA”目录的起始簇就是5。实操心得WinHex的模板功能可以帮你自动解析目录项。在目录项起始位置右键选择“模板”→“FAT目录项”它会用彩色标注每个字段的含义省得你一个个数偏移。但模板不是万能的遇到长文件名目录项时它可能只显示短名部分需要你手动结合0x0B处的属性字节判断。3.2 计算FAT表项偏移并读取下一个簇现在我们知道“DATA”目录的起始簇是5。接下来要查FAT表看簇5的下一个簇是谁。FAT表起始扇区 2048 32 2080。字节偏移 2080 × 512 1064960。在WinHex里跳到这里这就是FAT表的开头。FAT32表项偏移 簇号 × 4 5 × 4 20。从FAT表起始位置往后数20字节也就是字节偏移 1064960 20 1064980。在WinHex里跳到这里读4个字节。假设读出来的十六进制值是 0x0000000A。和0x0FFFFFFF做与运算结果是0x0000000A也就是十进制10。这说明“DATA”目录的下一个簇是10。再查簇10的下一个簇偏移 10 × 4 40字节偏移 1064960 40 1065000。读4字节假设是 0x0FFFFFFF。这是结束标记说明“DATA”目录的簇链是 5 → 10 → 结束一共占用两个簇。3.3 验证簇链并跳转到下一个簇的数据区光读FAT表还不够得验证一下。跳转到簇10的数据区看看里面是不是目录项。簇10对应的扇区 3104 (10-2) × 8 3104 64 3168。字节偏移 3168 × 512 1622016。在WinHex里跳过去你应该能看到32字节对齐的目录项结构第一个字节可能是文件名首字符或者0x00。如果这里看到的是乱码或者全零那说明FAT表读错了或者这个簇已经被覆盖。这时候要回头检查FAT表起始位置对不对表项偏移算得对不对高4位清了吗每簇扇区数有没有搞错我实际做的时候习惯把每一步的中间值记在记事本里分区起始LBA、保留扇区数、FAT表大小、FAT表起始扇区、当前簇号、表项偏移、读出的原始值、与运算后的值、下一个簇号。这样一旦出错能快速定位是哪一步的问题。3.4 处理FAT表副本与一致性检查FAT文件系统通常有两个FAT表FAT1和FAT2。正常情况下它们内容完全一致系统用FAT1FAT2作为备份。但实际中我遇到过FAT1被破坏、FAT2完好的情况也遇到过两个表不一致的情况。FAT2的起始扇区 FAT1起始扇区 FAT表大小。比如FAT1从2080开始大小512扇区FAT2就从2592开始。在WinHex里可以同时打开两个位置对比。如果FAT1的某个表项读出来是0而FAT2对应位置有正常值那大概率FAT1被破坏了应该以FAT2为准。注意不是所有工具都会同步更新两个FAT表。有些廉价设备或某些操作系统在写入时只更新FAT1导致FAT2是旧的。做恢复时如果FAT1和FAT2不一致要结合目录项、数据区实际内容来判断哪个更可信不能盲目用FAT2覆盖FAT1。4. 常见问题与排查技巧实录4.1 读出的下一个簇号异常怎么办这是最常见的问题。你按公式算出来一个簇号跳过去发现是空白区或者根本不是目录数据。可能的原因有这几个第一FAT表起始位置算错了。回头检查保留扇区数是否读对FAT表个数是否真的是2FAT表大小字段有没有看错偏移。FAT16的FAT表大小在0x16FAT32在0x24这两个别搞混。第二簇号到扇区的转换公式用错了。记住是“数据区起始扇区 (簇号 - 2) × 每簇扇区数”那个减2很容易漏。簇号0和1是保留的数据区从簇2开始。第三FAT32的高4位没清。读出来的值如果大于0x0FFFFFFF说明高4位有东西必须与运算。第四当前簇号本身取错了。目录项里的起始簇号FAT32是偏移0x14的高2字节加偏移0x1A的低2字节不是偏移0x1A单独2字节。这个组合方式我第一次用的时候也搞反了。4.2 目录项被删除后如何追踪如果目录项被删除了第一个字节变成0xE5但后面的起始簇号字段通常还在。你可以手动把0xE5改成任意有效字符或者直接读取偏移0x1A处的值作为起始簇。但要注意删除操作可能把起始簇号清零了这时候就得靠FAT表反查扫描FAT表找那些被标记为空闲但曾经形成链的簇。还有一种情况是目录项被覆盖了完全找不到起始簇。这时候只能靠数据区特征扫描比如目录数据区通常有大量32字节对齐的条目可以通过搜索“.”和“..”目录项来定位目录起始。4.3 簇链成环或断裂的修复思路FAT表损坏时可能出现簇链成环簇5指向簇10簇10又指回簇5。这时候如果你用程序遍历会陷入死循环。手工分析时要记录已经访问过的簇号发现重复就停止把环断开。断裂则是某个簇的表项值是0或者无效值链在这里断了。如果断点后的数据还能找到可以尝试从断点后的簇继续追踪或者根据文件大小估算还缺几个簇在FAT表里搜索空闲簇来补链。但补链有风险可能把别的文件数据串进来做之前一定要备份原始镜像。4.4 常见问题速查表现象可能原因排查方法下一个簇号大得离谱FAT32高4位未清与0x0FFFFFFF做与运算跳转后是空白区簇号到扇区转换漏减2重新计算数据区起始扇区FAT表读出的值与预期不符FAT表起始位置错误检查保留扇区数和FAT表大小两个FAT表不一致FAT1被破坏或未同步对比FAT2结合数据区判断目录项起始簇为0目录项被删除或覆盖扫描数据区找“.”目录项簇链成环FAT表被破坏记录访问过的簇手动断环实操心得做这类分析时永远在镜像副本上操作不要直接动原始磁盘。WinHex可以打开磁盘镜像文件也可以对物理磁盘做只读挂载。我习惯先用dd或类似工具把目标分区完整镜像出来再在镜像上做所有实验。这样即使改错了FAT表重新复制一份镜像就行不会造成二次破坏。4.5 提高效率的WinHex使用技巧WinHex有一些功能可以大幅提升分析速度。比如“数据解释器”面板可以实时显示光标位置的字节按不同格式解释的值读FAT表项时直接看解释器里的无符号32位值省得手动算。还有“同步和比较”功能可以同时滚动两个FAT表快速发现不一致的位置。另外WinHex支持脚本和API。如果你要批量追踪很多目录的簇链可以写个简单脚本自动计算偏移、读取表项、输出簇链。但脚本只是辅助理解原理才是根本。我见过有人脚本跑出来的结果不对却不知道错在哪就是因为底层公式没搞明白。5. 从目录簇链延伸到文件恢复的实战思路5.1 用簇链重建被删除目录的完整结构掌握了追踪目录下一个簇的方法后恢复被删除目录就有了清晰的路径。假设一个目录的目录项被删除但FAT表里它的簇链还保留着有些删除操作只清目录项不动FAT表你可以这样做先从目录项残留信息或数据区扫描找到起始簇号然后顺着FAT表把整条簇链读出来。每读一个簇就把它里面的32字节目录项解析出来提取子文件和子目录的信息。如果子目录的目录项还在继续追踪子目录的簇链递归下去就能把整个目录树重建出来。这个过程手工做很繁琐但逻辑非常清晰。实际恢复时可以先用WinHex把簇链数据导出再用脚本解析目录项效率会高很多。5.2 碎片化目录的簇链拼接目录数据通常不会碎片化太严重因为系统倾向于给目录分配连续的簇。但如果磁盘使用率很高目录也可能被拆成不连续的簇。这时候FAT表就是唯一的线索。你只能一个簇一个簇地追每追到一个簇就解析里面的目录项看是否有“.”和“..”条目来判断这是目录开头还是中间部分。碎片化严重时簇链可能跨越很大的扇区范围。WinHex的“位置列表”功能可以把你访问过的位置记录下来方便回溯和整理。我一般会边追边在纸上画簇链图标出每个簇的扇区范围和里面发现的文件名最后拼出完整结构。5.3 从FAT表反推文件大小与簇数量知道了一个目录的起始簇和结束簇结合每簇字节数就能算出目录占用的总字节数。但目录的实际有效数据可能小于簇容量因为最后一个簇通常不会填满。要精确知道目录里有多少条目录项需要看最后一个簇里从哪个偏移开始全是0x00那之前的就是有效目录项。这个计算对恢复很有用如果你知道一个目录原本有20个文件但只恢复了15个可以检查最后一个簇的剩余空间看是否有被覆盖的目录项残留。有时候删除操作只清了目录项的第一个字节后面的文件名和起始簇号还在通过逐字节检查还能抢救出一部分。5.4 不同FAT版本的差异处理FAT12、FAT16、FAT32在表项宽度和计算方式上都有差异。FAT12每个表项12位计算更麻烦需要跨字节读取。FAT16是2字节FAT32是4字节但只用28位。实际工作中FAT16和FAT32最常见FAT12多见于软盘和极小的存储卡。判断FAT类型不能只看分区大小要看引导扇区里的文件系统类型字符串偏移0x36处FAT16偏移0x52处FAT32和簇数量。簇数量小于4085通常是FAT12小于65525是FAT16再大是FAT32。WinHex的模板可以自动识别并显示但手工分析时最好自己确认一遍。注意有些设备格式化时会把FAT32的保留扇区数设得很大或者FAT表大小字段有特殊值。遇到不认识的参数不要硬套公式先查该文件系统的官方规范确认每个字段的含义再动手。6. 个人实操体会与进阶建议6.1 手工分析的价值在于理解底层一键恢复工具确实方便但它们把文件系统当成黑盒遇到非标准结构或严重损坏时就无能为力了。手工用WinHex分析FAT表、追踪簇链虽然慢但每一步都看得见、摸得着。你清楚地知道数据从哪里来、为什么在那里、下一步该去哪。这种理解在遇到疑难杂症时就是救命稻草。我刚开始学的时候对着FAT表算了一下午才搞明白簇号到扇区的转换。但那次之后再看任何FAT文件系统的磁盘脑子里都能自动浮现出它的结构图。这种直觉是靠手工操作积累出来的看文档看不会。6.2 建立自己的分析笔记和检查清单每次做分析我都会在记事本里记下磁盘型号、文件系统类型、关键参数值、每一步的计算结果、遇到的问题和解决方法。时间长了这些笔记就成了自己的知识库。下次遇到类似情况翻出笔记对照能省很多时间。检查清单也很重要。比如追踪簇链前先确认分区起始LBA读了吗保留扇区数对吗FAT表个数是1还是2FAT表大小字段偏移看对了吗当前簇号从目录项哪个偏移取的这些检查点过一遍能避免大部分低级错误。6.3 从FAT扩展到其他文件系统的思路理解了FAT的簇链机制再去看NTFS的MFT、exFAT的簇位图、ext4的inode树会发现很多概念是相通的。都是“元数据指向数据区”的模式只是实现方式不同。FAT用链表NTFS用属性列表exFAT用位图加连续分配。掌握了FAT的手工分析方法学其他文件系统会快很多。如果你对数据恢复感兴趣我建议从FAT入手用WinHex把每个结构都亲手看一遍、算一遍。然后再去碰NTFS和exFAT。这个学习路径最扎实也最不容易被工具绑架。工具会更新换代但底层原理几十年没大变过。最后分享一个小技巧WinHex里按CtrlShiftC可以把当前光标位置的字节偏移复制到剪贴板按CtrlG可以输入偏移跳转。分析时把这两个快捷键用熟效率能提升不少。另外把常用扇区大小、FAT表偏移这些值记在便签上贴在屏幕边比每次翻文档快得多。

相关新闻

DSGE模型的信息鲁棒框架构建与经济预测应用

DSGE模型的信息鲁棒框架构建与经济预测应用

1. 项目概述在经济预测领域,动态随机一般均衡(DSGE)模型一直是政策制定者和研究者的重要工具。然而,传统DSGE模型建立在"完全信息"这一理想化假设之上,这与现实经济中普遍存在的信息不对称、信息滞后等问题形…

2026/10/14 9:12:53 阅读更多 →
Python智慧农业系统开发:物联网与数据分析实践

Python智慧农业系统开发:物联网与数据分析实践

1. 项目背景与核心价值智慧农业管理系统作为现代农业与信息技术结合的典型应用,正在改变传统农业生产方式。这个基于Python的毕业设计项目,不仅符合计算机专业实践要求,更具备实际产业应用价值。系统通过物联网设备采集环境数据,结…

2026/10/14 9:12:53 阅读更多 →
Bash 脚本实现 Linux 文件系统同步:rsync 增量同步与定时任务实战

Bash 脚本实现 Linux 文件系统同步:rsync 增量同步与定时任务实战

1. 文件同步这件事,为什么值得用脚本认真做文件同步听起来像是运维日常里最不起眼的一环,但真到用的时候,坑比想象中多得多。我最早接触这个需求,是因为手头有几台机器需要定期把日志、配置和产物目录保持一致,一开始靠…

2026/10/14 9:12:53 阅读更多 →

最新新闻

macOS C++20开发环境配置:LLVM+VS Code+Clang完整闭环

macOS C++20开发环境配置:LLVM+VS Code+Clang完整闭环

1. 为什么 macOS 上配 C 环境总让人“卡在第一步”?Mac 用着顺手,写代码也清爽,但一到配 C 环境,很多人就停在了终端里那行command not found: g上——不是没装 Xcode,就是装了却找不到编译器路径;不是clan…

2026/10/14 10:07:26 阅读更多 →
Jenkins镜像源配置实战:构建加速的三大层级

Jenkins镜像源配置实战:构建加速的三大层级

1. 为什么Jenkins安装后第一件事不是写流水线,而是调教镜像源“Jenkins装好了,跑个mvn clean install卡在Downloading xxx-1.2.3.jar……一小时没动静”——这是某公司内部DevOps群上周出现频率最高的截图。我点开一看,下载地址是repo.maven.…

2026/10/14 10:07:26 阅读更多 →
职场沟通的隐形边界:用信息差与角色差避开最贵的坑

职场沟通的隐形边界:用信息差与角色差避开最贵的坑

职场沟通的隐形边界:我踩过最贵的坑,都是不会说话踩出来的在职场待得越久,我越发现一个扎心的事实:决定一个人能走多远的,往往不是专业能力,而是沟通方式。先说个我自己的例子。入职第三年,我负…

2026/10/14 10:07:26 阅读更多 →
Vue2与Vue3中axios的配置与封装实践

Vue2与Vue3中axios的配置与封装实践

1. 为什么我们需要关注axios在Vue中的使用作为前端开发者,我们每天都在和各种API打交道。记得我刚入行时,每次遇到接口调用问题都要折腾半天,直到发现了axios这个神器。它就像是一个专业的快递员,帮我们在前端和后端之间可靠地传递…

2026/10/14 10:07:26 阅读更多 →
UVM编码规范实战:Easier UVM模板与代码生成器避坑指南

UVM编码规范实战:Easier UVM模板与代码生成器避坑指南

简介:这份资源是Doulos出品的《Easier UVM Coding Guidelines》编码指南,面向已掌握SystemVerilog与UVM基础、希望提升验证代码一致性与复用性的硬件验证工程师及项目管理者。它针对团队中编码风格各异、维护成本高、验证环境难以从块级复用到系统级等痛…

2026/10/14 10:07:26 阅读更多 →
AI 把 C 改写成 Python,功能就迁移了吗?跨语言改写如何验证行为一致

AI 把 C 改写成 Python,功能就迁移了吗?跨语言改写如何验证行为一致

从“代码改写出来了”到“功能迁移完成”,中间还差一份行为证据。 用 AI 把 C 代码改写成 Python,最直观的变化是文件换了后缀,函数也能运行了。但调用方真正依赖的是:同样的输入得到什么结果,错误如何报告&#xff0c…

2026/10/14 10:06:21 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →