Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
tscopy — Python工具,解析NTFS $MFT以在事件响应期间复制被锁定的文件,通过读取原始磁盘位置绕过操作系统锁定。支持递归、通配符和多文件复制,并带有缓存以提升性能。 | Kitploit
工具/GitHubGitHub/trustedsec/tscopy
磁盘取证取证分析数据恢复数字取证事件响应
GitHubtrustedsec/tscopy

tscopy

Python工具,解析NTFS $MFT以在事件响应期间复制被锁定的文件,通过读取原始磁盘位置绕过操作系统锁定。支持递归、通配符和多文件复制,并带有缓存以提升性能。

查看仓库
103234年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

TScopy

TScopy Logo

更新于 2022-03-31

介绍 TScopy

在事件响应(IR)工作中,需要具备分析文件系统中文件的能力。有时这些文件被操作系统(OS)锁定,因为它们正在使用中,特别是事件日志和注册表配置单元,这尤其令人沮丧。TScopy 允许以管理员权限运行的用户,通过解析文件在文件系统中的原始位置并绕过操作系统来复制锁定文件。

还有其他执行类似功能的工具,例如我们曾使用过的 RawCopy,它是本工具的基础。然而,RawCopy 存在一些缺点,促使我们开发了 TScopy,包括性能、体积以及将其集成到其他工具中的能力。

这篇博客旨在介绍 TScopy,同时也寻求帮助。所有软件开发中,工具使用得越多,就能发现更多的边缘情况。我们希望大家尝试该工具并报告任何错误。

什么是 TScopy?

TScopy 是一个 Python 脚本,用于解析 NTFS $MFT 文件以定位并复制特定文件。通过解析主文件表(MFT),该脚本绕过了操作系统对文件的锁定。该脚本最初基于 RawCopy 的工作。RawCopy 使用 AutoIT 编写,难以根据我们的需求进行修改。将其移植到 Python 的决定是因为需要将这一功能原生集成到我们的工具集中。

TScopy 设计为可独立运行的程序,或作为 Python 模块包含在内。Python 实现利用了位于 https://github.com/williballenthin/python-ntfs 的 python-ntfs 工具。TScopy 在 python-ntfs 的基础功能上进行了扩展,以从原始磁盘中隔离每个文件的位置。

TScopy 的不同之处

TScopy 使用 Python 编写并组织成类,使其比 AutoIT 更易于维护和阅读。AutoIT 可能被防病毒或检测软件标记为恶意,因为某些恶意软件利用了其潜力。

TScopy 与 RawCopy 的主要区别在于能够在单次执行中复制多个文件并缓存文件结构。如下图所示,TScopy 提供了下载单个文件、多个逗号分隔的文件、目录内容、通配符路径(单个文件或目录)以及递归目录的选项。

TScopy 在遍历目标文件的完整路径时,会缓存每个目录和文件的位置。然后利用此缓存优化对其他文件的搜索,确保后续文件复制更快。这是相对于 RawCopy 的显著优势,RawCopy 为每个文件遍历整个路径。

TScopy 选项

root@kitploit:~
.\TScopy_x64.exe -h

usage: 
    TScopy_x64.exe -r -o c:\test -f c:\users\tscopy\ntuser.dat 
        Description: 仅将 ntuser.dat 文件复制到 c:\test 目录
    TScopy_x64.exe -o c:\test -f c:\Windows\system32\config 
        Description: 复制 config 目录中的所有文件,但不复制其下的子目录。
    TScopy_x64.exe -r -o c:\test -f c:\Windows\system32\config 
        Description: 复制 config 目录中的所有文件和子目录。
    TScopy_x64.exe -r -o c:\test -f c:\users\*\ntuser*,c:\Windows\system32\config 
        Description: 使用通配符和列表复制 users 账户下所有以 ntuser 开头的文件,并递归复制注册表配置单元。
    

通过解析 MFT 复制受保护文件。必须以管理员权限运行。

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  Full path of the file or directory to be copied.
                        Filenames can be grouped in a comma ',' seperated
                        list. Wildcard '*' is accepted.
  -o OUTPUTDIR, --outputdir OUTPUTDIR
                        Directory to copy files too. Copy will keep paths
  -i, --ignore_saved_ref_nums
                        Script stores the Reference numbers and path info to
                        speed up internal run. This option will ignore and not
                        save the stored MFT reference numbers and path
  -r, --recursive       Recursively copies directory. Note this only works with
                        directories.

有一个隐藏选项 '--debug',用于启用调试输出。

示例

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\SYSTEM -o e:\outputdir

将 SYSTEM 注册表复制到 e:\outputdir 新文件将位于 e:\outputdir\windows\system32\config\SYSTEM

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\SYSTEM -o e:\outputdir -i

将 SYSTEM 注册表复制到 e:\outputdir,但忽略任何先前缓存的文件,并且不将当前缓存保存到磁盘

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\SYSTEM,c:\windows\system32\config\SOFTWARE -o e:\outputdir

将 SYSTEM 和 SOFTWARE 注册表复制到 e:\outputdir

root@kitploit:~
TScopy_x64.exe -f c:\windows\system32\config\ -o e:\outputdir

将 config 目录的内容复制到 e:\outputdir

root@kitploit:~
TScopy_x64.exe -r -f c:\windows\system32\config\ -o e:\outputdir

递归复制 config 目录的内容到 e:\outputdir

root@kitploit:~
TScopy_x64.exe  -f c:\users\*\ntuser.dat -o e:\outputdir

将每位用户的 NTUSER.DAT 文件复制到 e:\outputdir

root@kitploit:~
TScopy_x64.exe  -f c:\users\*\ntuser.dat* -o e:\outputdir

对于每位用户,复制所有以 NTUSER.DAT 开头的文件到 e:\outputdir

root@kitploit:~
TScopy_x64.exe  -f c:\users\*\AppData\Roaming\Microsoft\Windows\Recent,c:\windows\system32\config,c:\users\*\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt -o e:\outputdir

对于每位用户,复制所有跳转列表、注册表配置单元和 PowerShell 历史命令到 e:\outputdir

错误报告信息

请在 GitHub 页面的 issues 部分报告错误。

错误修复与增强

版本 4.0

  • 修正了包含稀疏数据的文件复制问题。Issue #13(复制 c:$extend$usnjrnl$j 时出错)
  • 文件不再先读入内存再写入磁盘。现在按数据运行读取进行写入。应减少大文件的内存使用。

版本 3.0

  • 增加了对备用数据流的支持。请求根文件并复制 ADS 流
  • 驱动器字母的通配符。仅支持固定驱动器。例如 "*:$MFT" 将查找所有本地驱动器的 $MFT
  • 日志记录问题。失败的复制再次报告失败。
  • 删除了文件路径大小限制 256。

版本 2.0

  • Issue 1: 将 sys.exit 改为 raise Exception
  • Issue 2: 文件的双重复制问题。全名和短名。
  • Issue 3: 增加了递归复制目录的功能
  • Issue 4: 增加了路径中通配符的支持。目前仅支持 *
  • Issue 5: 移除了硬编码的 MFT 大小。MFT 大小由引导扇区确定
  • Issue 6: 将 TScopy 类转换为单例模式。这允许类只实例化一次,并重用当前的 MFT 元数据对象进行所有复制。
  • Issue 7: 属性类型 ATTRIBUTE_LIST 现在得到处理。
  • Issue 9: 文件未处理属性类型 ATTRIBUTE_LIST。这导致 SOFTWARE 等注册表配置单元文件静默失败。
  • 更改: 代码中添加了常规注释
  • 更改: 输入参数已更改。将三个不同选项 --file、--list 和 --directory 缩减为 --file。
  • 更改: 后端重构以支持新功能。

TODO:

下载工具