C 簡單遊戲外掛程式製作 以Warcraft 為例

2021-05-26 21:36:24 字數 1584 閱讀 9623

一、宣告windows api 中的函式和常量

//鍵盤hook結構函式

[structlayout(layoutkind.sequential)]

public class keyboardhookstruct

#region dllimport

//設定鉤子

[dllimport("user32.dll", charset = charset.auto, callingconvention = callingconvention.stdcall)]

public static extern int setwindowshookex(int idhook, hookproc lpfn, intptr hinstance, int threadid);

[dllimport("user32.dll", charset = charset.auto, callingconvention = callingconvention.stdcall)]

//抽掉鉤子

public static extern bool unhookwindowshookex(int idhook);

[dllimport("user32.dll", charset = charset.auto, callingconvention = callingconvention.stdcall)]

//呼叫下乙個鉤子

public static extern int callnexthookex(int idhook, int ncode, intptr wparam, intptr lparam);

//取得模組控制代碼 

[dllimport("kernel32.dll", charset = charset.auto, callingconvention = callingconvention.stdcall)]

private static extern intptr getmodulehandle(string lpmodulename);

//尋找目標程序視窗

[dllimport("user32.dll")]

public static extern intptr findwindow(string lpclassname,

string lpwindowname);

//設定程序視窗到最前 

[dllimport("user32.dll")]

public static extern bool setforegroundwindow(intptr hwnd);

//模擬鍵盤事件 

[dllimport("user32.dll")]

public static extern void keybd_event(byte bvk, byte bscan, int32 dwflags, int32 dwextrainfo);

//釋放按鍵的常量

private const int keyeventf_keyup =2;

本例所使用的函式比較少,它們都在系統的user32.dll裡,包括:設定和取消鉤子、呼叫下乙個鉤子、匯入程序、模擬鍵盤等等。我們依次匯入它們。

這些函式的命名規範合理,幾乎只根據函式名就能知道其功能。

C 簡單遊戲外掛程式製作 以Warcraft 為例

網上有很多外掛程式製作的教程,大多是講針對大型網路遊戲的,主要包含一些抓包 反彙編 c 的知識綜合。事實也如此,常見的外掛程式都是使用vc 寫的,從來沒有過c 或者其他.net語言編寫的外掛程式。其實作為遊戲外掛程式來說,主要就是三個功能 模擬鍵盤操作 模擬滑鼠操作 修改記憶體資料。修改記憶體資料比...

C 簡單遊戲外掛程式製作 以Warcraft 為例

網上有很多外掛程式製作的教程,大多是講針對大型網路遊戲的,主要包含一些抓包 反彙編 c 的知識綜合。事實也如此,常見的外掛程式都是使用vc 寫的,從來沒有過c 或者其他.net語言編寫的外掛程式。作為微軟.net技術的忠實粉絲,這難免是一種遺憾。不過不要緊,下面流牛木馬就教大家兩招,包教包會,免收學...

C 簡單遊戲外掛程式製作 以Warcraft 為例

網上有很多外掛程式製作的教程,大多是講針對大型網路遊戲的,主要包含一些抓包 反彙編 c 的知識綜合。事實也如此,常見的外掛程式都是使用vc 寫的,從來沒有過c 或者其他.net語言編寫的外掛程式。其實作為遊戲外掛程式來說,主要就是三個功能 模擬鍵盤操作 模擬滑鼠操作 修改記憶體資料。修改記憶體資料比...