利用 dnSpy 修复 offvis 中的 DirectoryEntries 的逻辑

下载[原创]CFB复合文档文件格式研究中的cases.dll,用dnSpy打开,有类似下面的代码
image
打算复现一下,
可以更健壮一些,如
右键选择编辑方法(C#)
image
if(!Data.Seek(this.GetSectorOffset((uint)num14)))
{
AddParsingNote(ParsingNoteType.Error, "Failed to seek to the next directory sector! This file may need to be defragmented!");
break;}
编译,结果提示
严重程度 代码 描述 文件 行
错误 CS0221 Constant value '-4' cannot be converted to a 'ulong' (use 'unchecked' syntax to override) main.cs 41

image
uint? value2 = this.OLESSHeader.DifatSect1.SectorNumber.Value; 下方输入
const uint FAT_TERMINAL = 0xFFFFFFFCU;
查找(ulong)-4替换为FAT_TERMINAL
image
编译模块,保存模块。
接着修复 DIFAT 数组不能正确反应非连续的 DIFAT 扇区的情况,将在下一篇文章讲述。

posted @ 2025-07-07 18:33  geyee  阅读(8)  评论(0)    收藏  举报