The Sleuth Kit发展史
版本发布记录
本文包含The Sleuth Kit®每个版本(从3.0.0版本开始)的变更描述。
新版本
使用Github页面确定每个版本的变更内容。
旧版本
4.8.0(2020年1月24日)
C/C++
- 添加了Pool层以支持APFS。注意:API可能会更改
- 在libtsk和部分命令行工具中添加了有限的APFS支持
- 加密支持尚未完成
- Blackbag Technologies提交了初始PR。Basis Technology进行了一些小的重构
- 重构逻辑镜像工具并进行小修复
- 来自Google模糊测试工作和Afarsec的Jonathan B的各种错误修复
- 修复了循环属性列表导致的无限NTFS循环。由X报告
- 修复了来自github用户uckelman-sf的文件系统错误
数据库
- 更新数据库模式以支持池
- 在黑板属性中添加JSON概念
- 模式支持级联删除以启用数据源删除
Java
- 添加了Pool类和相关基础设施
- 添加了支持从数据库删除数据源的方法
- 通过重构最近引入的时间线过滤类,移除了JavaFX依赖
- 在黑板助手包中添加了附件支持
4.7.0(2019年10月14日)
详见NEWS.txt文件。
C/C++
- 扩展了数据库模式以存储tsk_events和相关表
- 创建文件和工件时自动添加基于时间的数据。由Autopsy时间线使用
- 逻辑镜像工具可以将文件保存为单个文件而不是VHD(节省空间)
- 移除了导致有符号/无符号打印问题的PRIuOFF和其他宏
Java
- Travis和Debian包使用OpenJDK而不是OracleJDK
- 新的黑板助手包(blackboardutils),使创建工件更容易
- 扩展了黑板范围,包括新的postArtifact()方法,可将事件数据添加到数据库并向监听器广播事件
- SleuthkitCase现在有一个用于数据库相关事件的EventBus
- 新的TimelineManager和相关过滤类以支持新的事件表
4.6.7(2019年8月2日)
详见NEWS.txt文件。
C/C++代码
- 首次发布新的逻辑镜像工具
- 修复了空间不足情况下的VHD镜像写入器问题
Java
- 扩展了通信管理器API
- 改进了SleuthkitCase.addLocalFile()的性能
4.6.6(2019年4月26日)
详见NEWS.txt文件。
C/C++代码
- 为E01文件在数据库中设置采集详情
- 修复NTFS解压缩问题(来自Joe Sylve)
- 修复缓存失败时的镜像读取问题(Joe Sylve)
- 修复HFS+大型目录文件问题(Joe Sylve)
- 修复srch_strings中的空闲内存问题(Derrick Karpo)
Java
- 修复了本地文件可以使用相对路径的问题
- 为Web数据添加了更多黑板工件和属性
- 向CaseDbManager添加了启用表检查和修改的方法
- 获取和设置采集详情的API
- 添加了向数据库添加卷和文件系统的方法
- 添加了为分配文件添加LayoutFile的方法
- 更改了JNI句柄的处理以更好地支持多案例
4.6.5(2019年1月15日)
详见NEWS.txt文件。
C/C++代码
- 修复HFS边界检查
Java代码
- 定义了新的工件和属性
- 修复了数据源的SleuthkitCase.getContentById()中的错误
- 修复了LayoutFile.read()中可能允许读取文件末尾之后的错误
案例数据库模式
- 在案例数据库中添加了哈希值和采集详情的新字段
- 在案例数据库中存储"创建的架构版本"
4.6.4(2018年11月9日)
详见NEWS.txt文件。
Java代码
- 增加数据库中的最大语句数以防止负载下的错误
- 为SQLite重试设置最大超时
注意:没有C/C++命令行/库更改。仅支持Autopsy 4.9.1发布的更改。
4.6.3(2018年10月14日)
详见NEWS.txt文件。
C/C++代码
- 修复了损坏索引和0哈希的Hashdb错误
- 在ExtX代码中添加了测试数字幂的新代码
Java代码
- 允许通用数据库访问的新类
- 检查重复工件的新方法
- 为常用内容添加了缓存
数据库模式
- 添加了检查员表
- 标签现在与检查员关联
- 更改了逻辑文件的parent_path以与FS文件保持一致
4.6.2(2018年8月8日)
详见NEWS.txt文件。
C/C++代码
- 各种编译器警告修复
- 在镜像写入器中添加了小延迟,以免使其他线程饥饿
Java
- 添加了更多锁定以确保在其他线程使用时不会关闭句柄
- 添加了API以支持更多按数据源查询
- 在检测对象是否有子项时添加了基于内存的缓存
4.6.1(2018年5月8日)
详见NEWS.txt文件。
- 来自Google模糊测试的大量边界检查修复。感谢Google。
- 来自uckelman-sf和其他人的清理和修复
- PostgreSQL、libvhdi和libvmdk支持Linux/OS X
- 修复了istat中NTFS GUID的显示 - Eric Zimmerman的报告。
- NTFS istat显示所有FILE_NAME属性的详细信息,而不仅仅是第一个。Eric Zimmerman的报告。
- 报告可以是URL
- 报告是内容
- 添加了通信图形视图的API
- JNI库提取到包含用户名的名称以避免冲突
- 数据库版本从升级到8.0,因为报告现在是内容
4.6.0(2018年2月21日)
详见NEWS.txt文件。
- 新的通信相关Java类和数据库表。
- Autopsy Linux构建的Java构建更新
- 黑板工件现在是Java中的内容对象,也是数据库中tsk_objects表的一部分。
- 增加了缓存大小。
- 来自Google模糊测试的大量边界检查修复。感谢Google。
- 来自uckelman-sf的HFS修复。
4.5.0(2017年10月15日)
详见NEWS.txt文件。
新功能
- 支持LZVN压缩的HFS文件(来自Joel Uckelman)
- 使用E01的扇区大小(有助于4k扇区大小)
- 数据库模式的更具体版本号
- 数据库中的新本地目录类型,以与虚拟目录区分
- 数据库中的所有黑板工件现在都是"内容"。附件现在可以是其父消息的子项。
- 在tsk_files表中添加了扩展名作为列。
错误修复
- 更快的HFS硬链接解析
- 来自Google模糊测试工作的大量修复。
4.4.2(2017年8月7日)
详见NEWS.txt文件。
- 用于NTFS USN日志的usnjls工具(来自noxdafox)
- 在数据库的MIME类型列中添加了索引
- 如果存在本地SQLite3则使用它(来自uckelman-sf)
- 黑板工件有一个shortDescription方法
- 修复了最高HFS+ inum查找(来自uckelman-sf)
- 修复ISO9660崩溃
- 各种性能修复和添加的线程安全检查
4.4.1(2017年5月30日)
详见NEWS.txt文件。
- 使用新的IMAGE_WRITER结构读取本地驱动器时可以创建稀疏VHD文件。目前由Autopsy使用。
- 大量清理和修复。包括内存泄漏、Unicode清理、缺少的NTFS文件(在极少数情况下)、非常长的文件夹结构和数据库插入
4.4.0(2017年1月18日)
详见NEWS.txt文件。
- 在Windows中编译现在使用Visual Studio 2015
- tsk_loaddb现在为空闲空间添加新文件,JNI相应升级。
- Java API更新
4.3.1(2016年10月25日)
详见NEWS.txt文件。
- NTFS适用于4k扇区
- 在Java中添加了支持以编码形式(XORed)存储本地文件
- 在数据模型中添加了Java Account对象
- 向黑板工件添加了审查状态的概念
- 升级了PostgreSQL版本
- 各种小错误修复
4.3.0(2016年7月19日)
详见NEWS.txt文件。
- PostgreSQL支持(仅Windows)
- 新的Release_NoLibs Visual Studio目标
- 通过libvmdk和libvhdi支持虚拟机格式(仅Windows)
- 模式更新(数据源表、MIME类型、属性存储类型)
- tsk_img_open可以接受外部创建的TSK_IMG_INFO
- 各种小错误修复
4.2.0(2015年9月16日)
详见NEWS.txt文件。
- 添加了ExFAT支持
- 新的数据库模式
- 新的Sqlite哈希数据库
- 各种错误修复
- NTFS更关注序列,仅当匹配时才加载元数据。
- 添加了辅助哈希数据库索引
4.1.3(2014年1月25日)
详见NEWS.txt文件。
- 修复了可能使UFS/ExtX在inode_lookup中崩溃的错误。
- ISO9660代码中的更多边界检查
- 镜像层边界检查
- 更新SQLITE-JDBC版本
- 更改了java加载本地库的方式
- YAFFS2备用区域的配置文件
- 镜像层中返回名称的新方法
- Yaffs2清理。
- 转义SQLite数据库中的所有字符串
- SQlite代码使用NTTFS序列号来匹配父ID
4.1.2(2013年9月25日)
详见NEWS.txt文件。
- fiwalk现在在linux上编译!抱歉。
4.1.1(2013年9月24日)
详见NEWS.txt文件。
- 时间线中的FILE_NAME时间
- Cellebrite磁盘镜像自动检测
- 64位Windows目标
- 修复了Sqlite代码不使用NTFS序列的错误
- Jar文件包含本地库
4.1.0(2013年6月17日)
详见NEWS.txt文件。
核心新功能
- 添加了YAFFS2支持(来自viaForensics的补丁)。
- 添加了Ext4支持(来自kfairbanks的补丁)
框架
- 添加了Linux和MAC支持。
- 添加了L01支持。
- 添加了按名称、路径和扩展名查找文件的API。
- 移除了已弃用的TskFile::getAttributes方法。
- 为AutoBuild工具支持移动了代码。
Java绑定
- 添加了DerivedFile数据模型支持
- 向Content添加了公共方法,以在对象被gc’d之前添加关闭其tsk句柄的能力
- 向ReadContentInputStream添加了更快的skip()和随机搜索支持
- 通过将常用方法上推到AbstractFile来重构数据模型
- 修复了小内存泄漏
- 改进了java绑定数据模型的回归测试框架
4.0.2(2013年2月4日)
核心新功能
- 现在包含了fiwalk。
核心错误修复
- 修复了fcat以在NTFS文件上工作(仍然不支持ADS)。
- 修复了tsk_loaddb / SQLite中的HFS+支持 - 未添加根目录。
- NTFS代码在列出目录内容时现在查看所有MFT条目。它过去只查看未分配的条目以获取孤立文件。这修复了目录b树中缺少分配文件的镜像。
- 在搜索所有文件的MFT条目时,NTFS代码使用序列号。
- 更改了Libewf检测代码以更可靠地支持v2 API(ID:3596212)。
- 如果$SDS是块大小的倍数,NTFS $SII代码在极少数情况下可能崩溃。
框架
- 向TskImgDB添加了新的API,返回镜像的基本名称。
- 对框架进行了许多性能改进。
- 在框架中移除了在管道配置文件中指定模块扩展的要求。
- 添加了黑板工件以表示操作系统和网络服务用户帐户。
Java绑定
- 更多查询文件的方法
- 添加到数据库时获取当前目录的方法。
- 稍微修改了类结构
- 为子项/父项添加了更多延迟加载。
- 来自C++的更好异常抛出
4.0.1(2012年11月13日)
包含小新功能和错误修复。
新功能
- 显示更多DOS分区类型。
- 添加了fcat工具,接受文件名并导出内容(相当于一起使用ifind和icat)。
- 改进了FAT代码的性能(映射和dir_add)
- 改进了NTFS代码的性能(映射)
- 向block_walk添加了AONLY标志
- 更新了blkls和blkcalc以使用AONLY标志 - 快得多。
错误修复
- 修复了mactime问题,它可能选择不遵循夏令时的错误时区。
- 修复了框架中备用数据流的文件大小。
- 合并了来自ADF Solutions的内存泄漏修复和原始设备修复。
4.0.0(2012年10月2日)
这是4.0的第一个非beta版本,添加了框架和许多其他错误修复和功能。有关自3.2.3以来的完整新功能列表,请参阅下面的beta版本历史记录。此版本中自beta以来的新内容包括:
- 更好的FAT孤立文件搜索和循环检测。
- TskAuto中更好的错误报告
- 来自ATC-NY的更新HFS+代码
- 新的mactime -y参数以使用ISO8601格式
- 框架有新的EXIF模块和小更新。
- tsk_analyzeimg可以使用scalplel进行雕刻。
4.0.0(beta 1:2012年5月30日)
此版本添加了新的分析框架、C++类、Java绑定和其他使构建端到端取证系统更容易的东西。
- 具有第一组基本模块的框架(哈希计算、哈希查找、熵计算、RegRipper、ZIP文件提取、通过名称签名提取等) - 仅Windows
- 多线程支持
- C++包装类
- JNI绑定和数据模型类
- 所有未设置的时间显示为0而不是1970。
- 支持libewf v2
- 只需要指定拆分或E01中的第一个文件。
- 哈希工具中的EnCase哈希集支持。
- loaddb数据库的新表模式,支持更多数据类型(雕刻、本地文件等)。
- …
3.2.3(2011年10月7日)
此版本有一些小错误修复和功能。新功能包括:
- 只需要指定一组文件中的第一个E01文件
- 向tsk_recover添加了-d选项
- 即使扩展分区失败也加载DOS分区
错误修复包括:
- 清理损坏的孤立FAT名称
- RAW CD支持
3.2.2(2011年6月10日)
此版本有一些小错误修复。新功能包括:
- 支持RAW CD
错误修复包括:
- ISO9660目录处理
- FAT删除文件检测
- FAT删除名称清理
3.2.1(2011年2月27日)
此版本有一些小错误修复。新功能包括:
- 如果没有卷系统,SQLite DB包含一个虚拟条目。
- 在Unix上构建时,构建目录可以与源目录不同。
错误修复包括:
- fls参数
- 某些Linux系统上pthreads的编译错误
- 不同的FAT目录条目检查
- mingw编译错误
- mactime CSV输出用引号包围文件名
3.2.0(2010年10月28日)
此版本有新功能和错误修复。感谢Anthony Lawrence对新功能的帮助。新功能包括:
- 新的tsk_recover工具,从镜像提取文件到本地目录。
- 新的tsk_loaddb工具,将文件系统元数据转储到SQLite数据库。
- 新的tsk_getimes工具,收集所有文件系统上的MAC时间数据(相当于在一系列卷上运行fls -m)
- 新的tsk_comparedir工具,比较目录和镜像以检测rootkit。
- 新的C++ TskAuto类,使创建分析所有文件的自动化工具更容易。
- 名称清理从库移到工具。
- img_cat -e和-s标志。
- 更改了默认NTFS $Data属性的命名方式。
- fsstat中的HFS+区分大小写标志。
错误修复包括:
- FAT性能
- 损坏NTFS文件的崩溃修复
- 在具有多个相同类型属性的碎片文件上添加属性运行。
3.1.3(2010年7月2日)
此版本有一些错误修复:
- FAT性能
3.1.2(2010年5月23日)
此版本有一些错误修复:
- FAT性能
- 读取错误
- ifind不停止
- mmls -B显示错误
3.1.1(2010年3月31日)
此版本有一些错误修复:
- ISO9660修复
- sorter修复
3.1.0(2010年1月13日)
这个期待已久的版本添加了新功能并有许多错误修复。新功能包括:
- HFS+支持
- 支持不是每个512字节的扇区(向每个命令行工具添加’-b’)
- NTFS SID数据现在可用
- mactime与Windows可执行文件一起分发
- 更好的GPT分区和DOS安全分区检测
- 更多AFFLIB格式和更好的加密文件支持
- Sigfind可以处理非原始文件
- 更好的间接块支持(添加了在3.0.0中丢失的功能)
- 许多错误修复。
3.0.1(2009年2月2日)
此版本包含几个错误修复。没有新功能。
3.0.0(2008年10月19日)
此主要版本包含许多新库和工具功能。
- 孤立文件(已删除文件,具有元数据结构,但没有可以从根目录访问的父目录)现在显示在$OrphanFiles目录中。
- FAT文件系统MBR和文件分配表现在可以作为根目录中的文件访问。
- 当使用’fls’(和相应的库API)时,每个目录中显示更多已删除文件。这过去需要为每个目录运行’ifind -p’,现在自动完成。
- 新的mmcat工具输出单个卷的内容。
- 新的mmls标志仅列出特定卷。
- 如果主MBR损坏,使用备份FAT MBR。
- d工具(dls、dcat等)现在命名为blk(blkls、blkcat等)
- sorter中新的’-b’选项指定最小文件大小。
- 添加了用于交叉编译的mingw支持
- 不需要回调设计的新库API和文档
- 小错误修复。