亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Self-Delete程序之Delphi版本,終于搞定了。

2019-11-18 18:43:37
字體:
來源:轉載
供稿:網友
  //轉貼者:以前看過陸麟先生翻譯過一篇這樣的文章,是c版本的,我用delphi改寫了沒成功,今天去清華bbs轉悠看見了這篇delphi版本的,特貼出來

發信人: Litoad (Rick), 信區: Delphi

標  題: Self-Delete程序之Delphi版本,終于搞定了。 (轉載)

發信站: BBS 水木清華站 (Mon Jun  4 20:51:55 2001)

【 以下文字轉載自 PRogramming 討論區 】

發信人: Litoad (Rick), 信區: Programming

標  題: Self-Delete程序之Delphi版本,終于搞定了。

發信站: BBS 水木清華站 (Mon Jun  4 20:50:42 2001)

到Borland的論壇去問了問,確實跟laoduan說得一樣,要

自己GetProcAddress。代碼如下:

program Project1;

uses

  Windows;

procedure DeleteSelf;

var

  hModule: THandle;

  buff:    array[0..255] of Char;

  hKernel32: THandle;

  pExitProcess, pDeleteFileA, pUnmapViewOfFile: Pointer;

begin

  hModule := GetModuleHandle(nil);

  GetModuleFileName(hModule, buff, sizeof(buff));

  CloseHandle(THandle(4));

  hKernel32        := GetModuleHandle('KERNEL32');

  pExitProcess     := GetProcAddress(hKernel32, 'ExitProcess');

  pDeleteFileA     := GetProcAddress(hKernel32, 'DeleteFileA');

  pUnmapViewOfFile := GetProcAddress(hKernel32, 'UnmapViewOfFile');

  asm

    LEA         EAX, buff

    PUSH        0

    PUSH        0

    PUSH        EAX

    PUSH        pExitProcess

    PUSH        hModule

    PUSH        pDeleteFileA

    PUSH        pUnmapViewOfFile

    RET

  end;

end;

begin

  DeleteSelf;

end.

現在有一點比較古怪,那就是必須把代碼放在一個Procedure里,

直接放在begin ... end.中間是不行的。也許是全局變量不能使用

的緣故,但為什么不能使用,還是不是很清楚。

還有,不GetProcAddress,直接如下寫:

    PUSH  OFFSET  UnmapViewOfFile

trace的結果是執行進入了KERNEL32.UnmapViewOfFile的,只是在

函數內RET $4出就出錯了,跳到了一個莫名其妙的地方。為什么會

這樣?難道是Delphi的編譯器的問題嗎?

另外,Borland論壇上RE的代碼不是上面的,不過效果跟我寫的一樣

。但是FreeLibrary(p)跟UnmapViewOfFile(hModule)效果一樣嗎?

代碼如下:

program Project1;

uses

  windows;

procedure DeleteSelf;

var

   module : HMODULE;

   buf : array [ 0 .. MAX_PATH - 1 ] of char;

   p : ULONG;

   hKrnl32 : HMODULE;

   pExitProcess, pDeleteFile, pFreeLibrary : pointer;

begin

  module := GetModuleHandle ( nil );

  GetModuleFileName ( module, buf, sizeof ( buf ) );

  CloseHandle ( THandle ( 4 ) );

  p := ULONG ( module ) + 1;

  //上面這一句什么意思?

  hKrnl32 := GetModuleHandle ( 'kernel32' );

  pExitProcess := GetProcAddress ( hKrnl32, 'ExitProcess' );

  pDeleteFile := GetProcAddress  ( hKrnl32, 'DeleteFileA' );

  pFreeLibrary := GetProcAddress ( hKrnl32, 'FreeLibrary' );

  asm

    lea eax, buf

    push 0

    push 0

    push eax

    push pExitProcess

    push p

    push pDeleteFile

    push pFreeLibrary

    ret

  end;

end;


上一篇:於Delphi的Case述句中使用字串當作判別變數

下一篇:詳細教你如何使用delphi中thread的線程編程

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99久久99精品免观看粉嫩| 国产精品热视频| 久久久精品国产网站| 992tv成人免费视频| 亚洲天天在线日亚洲洲精| 日韩免费av片在线观看| 欧美成人午夜免费视在线看片| 国产精品人人做人人爽| 久久久av免费| 亚洲一区二区三区香蕉| 欧美电影《睫毛膏》| 国产在线视频一区| 日韩欧美999| 中文字幕无线精品亚洲乱码一区| 91啪国产在线| 国产成人精品日本亚洲专区61| 欧美一级高清免费| 91国语精品自产拍在线观看性色| 亚洲片在线观看| 国产精品欧美一区二区三区奶水| 欧美国产精品va在线观看| 亚洲精品自拍第一页| 久久精品亚洲94久久精品| 欧美亚洲视频在线观看| 国产v综合ⅴ日韩v欧美大片| 亚洲成人久久一区| 国产精品私拍pans大尺度在线| 黑人精品xxx一区| 奇米成人av国产一区二区三区| 91理论片午午论夜理片久久| 在线国产精品视频| 日本精品中文字幕| 久久综合88中文色鬼| 2019中文字幕在线免费观看| 国产精品人人做人人爽| 亚洲欧美www| 欧美日本中文字幕| 日韩av中文字幕在线播放| 福利视频一区二区| 亚洲最大成人网色| 在线性视频日韩欧美| 亚洲免费视频一区二区| 色噜噜久久综合伊人一本| 成人久久久久久| 欧美国产日韩精品| 色婷婷久久av| www.日韩.com| 日韩中文在线中文网在线观看| 综合国产在线视频| 日本免费在线精品| 亚洲精品av在线播放| 日韩国产精品一区| 亚洲午夜久久久影院| 日韩国产高清污视频在线观看| 欧美精品亚州精品| 日韩免费不卡av| 国产97人人超碰caoprom| 国产色婷婷国产综合在线理论片a| 秋霞av国产精品一区| 揄拍成人国产精品视频| 精品久久久av| 亚洲精品丝袜日韩| 国产日韩欧美91| 色综合久久久久久中文网| 久久久国产一区二区| 国产午夜精品麻豆| 中文字幕亚洲图片| 亚洲香蕉成人av网站在线观看| 国产成人精品视频| 亚洲成人av片| 富二代精品短视频| 亚洲人成绝费网站色www| 国产精品第一视频| 在线不卡国产精品| 久久大大胆人体| 黑人狂躁日本妞一区二区三区| 国产精品视频免费在线观看| 国产精品自在线| 欧美视频不卡中文| 国产一区二中文字幕在线看| 亚洲精品久久久久| 亚洲天堂色网站| 亚洲电影av在线| 欧美在线免费视频| 青草青草久热精品视频在线网站| 亚洲欧美三级在线| 亚洲欧美一区二区精品久久久| 亚洲欧洲xxxx| 久久色在线播放| 97精品国产91久久久久久| 一本色道久久综合狠狠躁篇的优点| 9.1国产丝袜在线观看| 日本一本a高清免费不卡| 国产精品久久久久久久午夜| 国内精品久久久久久| 欧美高清videos高潮hd| 成人网在线免费看| 自拍视频国产精品| 欧美视频一区二区三区…| 日韩一区二区久久久| 亚洲欧美在线第一页| 成人午夜一级二级三级| 亚洲欧美日韩国产中文| 亚洲理论电影网| 国产精品久久久久久久天堂| 91久久久亚洲精品| 亚洲理论电影网| 国产91免费看片| 91精品国产综合久久香蕉| 日韩免费精品视频| 亚洲石原莉奈一区二区在线观看| 久久夜色精品国产亚洲aⅴ| 国产一区二中文字幕在线看| 国产成人欧美在线观看| 国产成人免费av| 美女国内精品自产拍在线播放| 国产日韩在线看片| 欧美插天视频在线播放| 色999日韩欧美国产| 亚洲第一页在线| 成人444kkkk在线观看| 国产精品久久久久久五月尺| 亚洲国产精久久久久久| 亚洲成在人线av| 日韩精品高清在线观看| 成人精品视频99在线观看免费| 欧美激情亚洲视频| 久久精品在线视频| 国产精品色婷婷视频| 久久91亚洲人成电影网站| 久久免费视频这里只有精品| 中文字幕久久亚洲| 欧美精品在线播放| 92裸体在线视频网站| 欧美高清第一页| 亚洲一区久久久| 日韩欧美在线视频免费观看| 国产精品精品一区二区三区午夜版| 国产欧美日韩综合精品| 久久久久国产精品免费网站| 日韩中文字幕视频在线观看| 国产精品ⅴa在线观看h| 成人免费观看49www在线观看| 日韩在线高清视频| 精品一区二区三区三区| 亚洲精品在线视频| 欧美性生交大片免网| 亚洲美女免费精品视频在线观看| 欧美人在线观看| 国产日韩欧美电影在线观看| 中文字幕日韩在线播放| 欧美激情视频网站| 亚洲人成网站777色婷婷| 中文字幕亚洲欧美日韩在线不卡| 欧美国产日韩一区二区在线观看| 亚洲日本成人女熟在线观看| 国产精品久久久久久久久久新婚| 国产精品视频内| 亚洲男人av在线| 视频在线观看99| 超碰91人人草人人干| 亚洲成人在线网| 成人网在线观看| 欧美亚洲免费电影|