Skip to content

djh-sudo/jumplists

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Jumplists

Windows右键固定栏的应用程序时,会出现最近使用的项目,便于用户快速访问。这是Windows自动保存的信息,在电子取证时,可以作为相关的证据支撑。

JumpList文件符合一种OLE-CF结构,即Object Linking and Embedding(OLE) Compound File(CF)Windows中很多文件都符合这种结构,例如pptwordexcel

FileHeader

512字节是文件头,文件头记录一些基本信息。

偏移量 大小 描述
0 8 文件幻术,通常为\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1
8 16 Class identifier (GUID),一般全部为0
24 2 子版本号
26 2 主版本号
28 2 字节序,\xff\xfe大端;\xfe\xff小端
30 2 扇区(sector)大小
32 2 小扇区(mimi-sector)大小
34 2 Reserved保留字段
36 4 Reserved保留字段
40 4 Reserved保留字段
44 4 用于SAT的扇区数量
48 4 目录的起始扇区号(SID)
52 4 Reserved保留字段
56 4 标准流的大小(通常是4096)
60 4 SSAT的起始扇区号(SID
64 4 用于SSAT的扇区数量
68 4 第一个MSAT的扇区号(SID)
72 4 MSAT的扇区数量
76 109 * 4 MSAT表,包含了109SID

文件头占据512字节,之后每512字节便是一个sector,编号从0开始。这个编号也称为扇区标识符SID

扇区与SID

SID有一些特殊的值。

SID (Name) Meaning
-1 Free SID 空闲的sector
-2 End SID链结束标记
-3 SAT SID sector用于存放SAT
-4 MSAT SID sector用于存放MSAT

根据SAT存储的SID,可以构建多条SAT链,这些流就存储在这些链中。从目录中能够找到DestList开始的位置,之后按照DestList的格式解析即可。 解析完SAT表之后,可以构建许多条SAT链,类似的,可以进一步构建SSAT链。文件头中给出了SSAT的起始扇区号,可以在SAT表找到起始偏移的位置,之后构建SSAT链即可。

DestList

最近访问的文件信息存储在DestLists目录下。在Windows10Windows 7中,DestLists文件结构略有差异,代码以Windows 10/11为例。

按照Destlist结构解析,便能获取访问文件的绝对路径(ab path)和最近一次访问时间(LastAccessTime)等重要信息。 而其他目录对应DestList中的每一个项,这些目录存储的信息大部分都是LNK格式的文件,这些文件存储了文件的创建时间、修改时间,工作目录等信息,必要时,可以进一步解析这些目录。 同时,大部分的LNK文件大小都不会超过4096字节,因此这些目录中的数据基本都从Root Entry中获取!

demo

程序运行结果见示意图。

demo

Ref

OLE-CF结构

About

Windows Jumplits 文件分析

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages