一、宣告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語言編寫的外掛程式。其實作為遊戲外掛程式來說,主要就是三個功能 模擬鍵盤操作 模擬滑鼠操作 修改記憶體資料。修改記憶體資料比...