磁盘数据擦除工具——disk_scrub

disk_scrub是我基于GitHub上的开源代码编写的磁盘数据擦除工具,有Windows和Linux两个版本。下面是工具介绍和使用方法。

0x00 介绍

disk_scrub已在 Windows10 和 Ubuntu 18.04 LTS上进行测试并能正常运行。其具有三种功能,如下:

1、物理盘或逻辑盘数据擦除
工具对整个物理设备(如整块硬盘、整个U盘等)进行数据销毁,全面清除文件在磁盘中的数据,进行物理盘擦除后,数据将被销毁且不可恢复。还可以对逻辑分区中的数据进行销毁,支持多种磁盘分区格式,实现对逻辑分区中所有数据的销毁且不可恢复。
2、逻辑盘剩余空间数据擦除
工具可以对逻辑盘上的剩余空间进行数据销毁,并且选择的磁盘分区格式可以不同的,实现对磁盘剩余空间残留数据的销毁且不可恢复。
3、目录及文件数据擦除
工具可以实现目录的销毁、全面清除目录及所属子目录、子文件在磁盘中的痕迹、可以全面清除文件在磁盘中的痕迹。

0x01 Linux版本disk_scrub

Linux版本disk_scrub说明

Linux版本disk_scrub基于大佬的scrub项目编写,指路:https://github.com/chaos/scrub

1、目录结构

disk_scrub(Linux)
|_ src
  |_    aes.c
  |_    aes.h
  |_    filldentry.c
  |_    filldentry.h
  |_    fillfile.c
  |_    fillfile.h
  |_    genrand.c
  |_    genrand.h
  |_    getsize.c
  |_    getsize.h
  |_    hwrand.c
  |_    hwrand.h
  |_    pattern.c
  |_    pattern.h
  |_    progress.c
  |_    progress.h
  |_    scrub.c
  |_    scrub.h
  |_    disk_scrub.c
  |_    sig.c
  |_    sig.h
  |_    util.c
  |_    util.h
|_ 说明
  |_ picture
  |_Readme.md
|_ Makefile.am
|_ NEWS
|_ AUTHORS
|_ README
|_ ChangeLog
Shell

2、安装说明

使用automake工具进行编译,生成可执行程序。过程如下:
1、进入源文件目录使用autoscan命令,生成configure.scan
2、进入configure.scan文件,在AC_INIT宏之后加入AM_INIT_AUTOMAKE(disk_scrub, 1.0),这里disk_scrub是你要编译成的软件的名称,1.0是版本号,即你的这些源程序编译将生成一个软件Test-1.0版。然后退出,把configure.scan文件改名为configure.in。
3、运行aclocal,生成aclocal.m4文件。
4、运行autoconf命令,生成Configure文件。
5、运行autoheader
6、运行automake --add-missing命令。其中重点关注是否有Makefile.am:error: required file './XXX' not found提示,其中XXX为某些文件名。如果出现这样的提示,请自行创建该文件(亲测使用vim创建对应文件名的空文件即可)。否则在后面使用automake时会提示无法生成Makefile.in文件,导致后续过程无法继续。
7、运行./Configure命令,生成Makefile。
8、运行make命令,编译链接工程,生成可执行文件。

Makefile.am已经编写完成,可以直接使用

如果想了解关于automake等工具的进一步使用,可以上网查阅资料,或者查看我的博客:

3、使用说明

编译完成后会生成disk_scrub可执行文件(具体编译完成的文件名由Makefile.am中指定,可以自行修改)。
使用命令sudo ./disk_scrub即可执行。

注意,程序执行需要root权限!

运行后界面如下:
运行图片
输入序号即可选择功能。
第一种功能:
功能一
第二种功能:
功能二
第三种功能:
功能三
输入要擦除的磁盘或目录后,可以输入序号选择擦除算法。如输入1使用nnsa算法,该算法先对磁盘进行两次随机数写入,后对磁盘进行0x00写入,最后验证。或输入12使用fillzero算法,该算法对磁盘进行一次快速0x00写入等,如下:
算法选择
最后等待程序完成即可。

0x02 Windows版本disk_scrub

Windows版本disk_scrub说明

Windows版本disk_scrub使用Python语言编写。

1、目录结构及说明

1、目录结构

disk_scrub(Windows)
|_ dll
  |_    Test
  |_ x86
    |_ func1.dll
  |_ x64
    |_ func1.dll
|_ 说明
  |_ pitcure
  |_Readme.md
|_ __pycache__
|_ disk_info.py
|_ func2.py
|_ func3.py
|_ scrub.py
Shell

2、说明

由于本程序在功能一的实现上使用了C语言编写的接口,所以需要调用C语言生动的dll动态链接库,存放在./dll文件夹中。dll文件夹中包含三个文件夹,分别是Test、x86和x64。其中Test是C语言工程文件,负责生成func1.dll动态链接库。剩下两个文件夹中是我已经生成好的dll文件,分别是32位和64位的文件。

注意:根据您使用的python是32位或64位选择调用哪个动态库!!在源码scrub.py文件中的第9行进行修改!!

2、安装说明

程序基于python3.7进行编写。使用前需要安装python3.7。
程序import了一些外部库,分别是:numpy、shutil、wmi、pywin32、dialog等。需要提前进行安装,命令如下:

pip install numpy
pip install pytest-shutil
pip install WMI
pip install pywin32
pip install pythondialog
Shell

如有其他依赖库没有安装,请自行安装

3、使用说明

程序主函数位于scrub.py文件中,使用该程序先进入程序根文件夹通过命令python scrub.py即可启动运行,启动后效果如下:
运行界面
输入序号即可选择功能。
第一种功能:
功能一
第二种功能:
功能二
第三种功能:
功能三

0x03 下载地址

Windows版本和Linux版本的工具源代码地址如下,有需要可以点击下方地址进行下载。

此处内容需要评论回复后(审核通过)方可阅读。

END
本文作者:
文章标题:磁盘数据擦除工具——disk_scrub
本文地址:http://hackerhome.top/index.php/archives/29/
版权说明:若无注明,本文皆由"岁月年华的秘密基地"原创,转载请保留文章出处。
最后修改:2021 年 02 月 28 日 04 : 21 PM
如果觉得我的文章对你有用,请随意赞赏