查看: 267|回复: 0

[电脑应用] 磁盘暴力填充器 安全销毁磁盘数据

[复制链接]
累计签到:707 天
连续签到:2 天

256

主题

676

回帖

3万

积分

督查

PAI-清风

名望
5333
星币
1053
星辰
71
好评
535

夜猫子勋章实习版主勋章版主勋章灌水天才奖鼎力支持奖热心助人奖优秀会员奖明星会员奖魅力会员奖欢乐天使奖在线大神动漫大使幸运猪伯乐奖星座专属勋章星辰勋章我是土豪督察勋章国庆节勋章

发表于 2023-9-5 12:34:15 | 显示全部楼层 |阅读模式

注册登录后全站资源免费查看下载

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. <#*,:&cls
  2. [url=home.php?mod=space&uid=11189]@echo[/url] off
  3. cd /d "%~dp0"
  4. set "batchfile=%~f0"
  5. powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create([IO.File]::ReadAllText($env:batchfile,[Text.Encoding]::GetEncoding(0) )) )"
  6. pause
  7. exit /b
  8. #>

  9. # 文件大小
  10. $fillSize = 5gb
  11. # 目标磁盘
  12. $drvLetter = "c:"
  13. # 数据类型:1=以随机填充,2=指定填充字节
  14. $fillType = 1
  15. # 指定字节
  16. [byte]$fillByte = 0x88
  17. # 循环次数
  18. $fillCount = 300

  19. $drvInfo = New-Object System.IO.DriveInfo -ArgumentList $drvLetter
  20. $drvInfo
  21. if (-not $drvInfo.IsReady) {
  22.   Write-Error '该磁盘未就绪'
  23.   return
  24. }

  25. $buff = New-Object 'byte[]' -ArgumentList 1mb

  26. if ($fillType -eq 1) {
  27.   $rnd = New-Object Random
  28.   $rnd.NextBytes($buff)
  29. }elseif ($fillType -eq 2) {
  30.   for ($i = 0; $i -lt $buff.Count; $i++) {
  31.     $buff[$i] = $fillByte
  32.   }
  33. }

  34. $listFills = New-Object 'System.Collections.Generic.List[string]'
  35. for ($i = 1; $i -lt $fillCount+1; $i++) {
  36.   $listFills.Clear()
  37.   try {
  38.     "第 ${i} 次填充"
  39.     while ($drvInfo.AvailableFreeSpace -gt $fillSize) {
  40.       $outName = [Guid]::NewGuid().ToString()
  41.       $outFile = [IO.Path]::Combine($drvInfo.RootDirectory.FullName, $outName)
  42.       $listFills.Add($outFile)
  43.         try {
  44.           $stream = New-Object System.IO.FileStream -ArgumentList ($outFile, 'Create', 'Write', 'Read', 1mb)
  45.           $ctr = 0
  46.           do {
  47.             $stream.Write($buff, 0, $buff.Count)
  48.             $ctr += $buff.Count
  49.           } until ($ctr -ge $fillSize)
  50.           $stream.SetLength($fillSize)
  51.         } finally {
  52.           if ($stream) {
  53.             $stream.Close()
  54.             $stream = $null
  55.           }
  56.         }
  57.     }
  58.   } finally {}
  59.   "正在删除文件"
  60.   Remove-Item -LiteralPath $listFills -Force
  61.   trap {}
  62. }
复制代码



103654idmagwegffeqifze.png 此代码只写不读,填满自动删除。如果中断需要手动删除残留文件,它是不会自动删除的。
工作原理:固态硬盘有PE次数,一旦被消耗完硬盘将变得不可靠。


使用方法:把代码另存为bat文件即可,测试内容自己修改后运行。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网--教开服-游戏源码

偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网-游戏源码

Powered by Discuz! X3.5

GMT+8, 2025-9-14 18:13 , Processed in 0.085586 second(s), 37 queries .

快速回复 返回顶部 返回列表