[转载]彻底删除文件工具代码

信息来源:幻影旅团
文章作者:winewind

应该是不可恢复的,因为我是在删除前改写文件内容,最多恢复的也是改写后的内容。标准的做法应该是去系统文件表查询文件的每块具体位置,然后在这些位置上写入垃圾数据。不过太麻烦了,所以找了下面这个折衷的办法。或许有人会说,那我还不如自己动手,先改内容,再保存,再删除。是啊,我的这个程序还真没什么用场。。。。



# include "windows.h"

# include "stdio.h"



#pragma comment(lib, "kernel32.lib")



// Global Variables Declaration

char *pFileName = NULL;

HANDLE hFileDel;



// ERROR Handle Function

void ErrorExit(LPTSTR lpszFunction)

{

TCHAR szBuf[80];

LPVOID lpMsgBuf;

DWORD dw = GetLastError();



FormatMessage(

FORMAT_MESSAGE_ALLOCATE_BUFFER |

FORMAT_MESSAGE_FROM_SYSTEM,

NULL,

dw,

MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),

(LPTSTR) &lpMsgBuf,

0, NULL );



wsprintf(szBuf,

"%s failed with error %d: %s",

lpszFunction, dw, lpMsgBuf);



MessageBox(NULL, szBuf, "Error", MB_OK);



LocalFree(lpMsgBuf);

ExitProcess(dw);

}



// Main Function

int main(int argc, char *argv[])

{

if(argc != 2)

{

printf("Command Format: %s filename\n", argv[0]);

return -1;

}



pFileName = argv[1]; // the file to be deleted



// TODO: Open the Target File

hFileDel = CreateFile( pFileName,

GENERIC_READ | GENERIC_WRITE,

0,

NULL,

OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL,

NULL);

if(hFileDel == INVALID_HANDLE_VALUE) // file can not be opened

{

ErrorExit("CreatFile");

return -1;

}



LPSTR RubbishBuffer;

DWORD dwBytesWritten;

DWORD dwBufferLength;



// TODO: Get File Size

dwBufferLength = GetFileSize(hFileDel, NULL);



// TODO: Construct the Rubbish Buffer

int BufferSize = (int) dwBufferLength;

int i; // loop counter

char RubbishData[BufferSize], *p;

p = RubbishData;

for(i=0; i<BufferSize; i++)

{

*p = 'i';

p++;

}

//printf("the rubbish buffer is: %s\n", RubbishData);



// TODO: Overwrite the Original File with Rubbish Data

if(!WriteFile( hFileDel,

RubbishData,

dwBufferLength,

&dwBytesWritten,

NULL) )

{

ErrorExit("WriteFile Function");

return -1;

}



CloseHandle(hFileDel);



// TODO: Delete the Modified File

if(!DeleteFile(pFileName))

{

ErrorExit("DeleteFile");

return -1;

}



return 1;

}

转载于:https://www.cnblogs.com/suiyingjie/archive/2007/08/18/861228.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在当今社会中,人们越来越多地依靠计算机来办公。每个人也习惯于在计算机中保存自已的各种文档、视频、相片。这在方便每个人的同时,也会存在一些潜在的危险。比如自己已经用操作系统(指窗面操作系统Windows系列)删除过的文件,会被一些文件恢复文具进行恢复,这在某些时候会给人带来高兴。但对于你不想被恢复的已经删除过的文件来说,则是一种风险,因为里面有自己的机密。 局域网、互联网越来越广泛地应用到生活和工作中,计算机网络技术在给人带来方便的同时,也带来了机密文件被"窃取"的风险。再加上计算机病毒的猖獗传播,更加大了文件泄密的风险。 如何才能避免自己电脑上不用的机密文件被别人窃取? 就像办公室会放置一台碎纸机一样,把不用的纸质机密文件粉碎。那每个人的计算机中其实也需要这样的一台"碎纸机",把不需要的机密文档彻底删除,不会被删除恢复工具来恢复。这在另一方面也防止计算机病毒来"窃取"你的机密文件。 因于此,彻底删除文件(File Delete Absolutely) 1.02版本应运而生,你可以免费使用它。这款系统工具软件由中国的一名硕士生马根峰所开发,专门用来将自己电脑上不用的机密文件彻底删除,不会被任何文件恢复工具所恢复。使你能够完全保护好自己的机密。 大家可以进行免费使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值