青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

道。道。道

安全特性不等于安全的特性

   :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理

常用鏈接

搜索

  •  

最新評論

(8).編譯項目ActiveKey,生成ActiveKey.DLL和ActiveKey.lib。

  接著,我們還需要創(chuàng)建一個外殼程序?qū)⑷帚^子安裝了Windows系統(tǒng)中,這個外殼程序編寫步驟如下:

  (1).創(chuàng)建一個對話框模式的應(yīng)用程序,項目名為Simulate。

  (2).在主對話框中加入一個按鈕,使用ClassWizard為其創(chuàng)建CLICK事件。

  (3).將ActiveKey項目Debug目錄下的ActiveKey.DLL和ActiveKey.lib拷貝到Simulate項目目錄下。

  (4).從“工程”菜單中選擇“設(shè)置”,彈出Project Setting對話框,選擇Link標(biāo)簽,在“對象/庫模塊”中輸入

ActiveKey.lib。

  (5).將ActiveKey項目中的ActiveKey.h頭文件加入到Simulate項目中,并在Stdafx.h中加入#include ActiveKey.h。

  (6).在按鈕單擊事件函數(shù)輸入如下代碼

   void CSimulateDlg::OnButton1()
   {
// TODO: Add your control notification handler code here
if( !bSetup )
{
m_hook.Start();//激活全局鉤子。
}
else
{
m_hook.Stop();//撤消全局鉤子。
}
bSetup = !bSetup;

   }?

  (7).編譯項目,并運行程序,單擊按鈕激活外掛。

  (8).啟動畫筆程序,選擇文本工具并將筆的顏色設(shè)置為紅色,將鼠標(biāo)放在任意位置后,按F10鍵,畫筆程序自動移動

鼠標(biāo)并寫下一個紅色的大寫R。圖一展示了按F10鍵前的畫筆程序的狀態(tài),圖二展示了按F10鍵后的畫筆程序的狀態(tài)。


圖一:按F10前狀態(tài)(001.jpg)


圖二:按F10后狀態(tài)(002.jpg)


?

 五、封包技術(shù)

  通過對動作模擬技術(shù)的介紹,我們對游戲外掛有了一定程度上的認(rèn)識,也學(xué)會了使用動作模擬技術(shù)來實現(xiàn)簡單的動作

模擬型游戲外掛的制作。這種動作模擬型游戲外掛有一定的局限性,它僅僅只能解決使用計算機(jī)代替人力完成那么有規(guī)律

、繁瑣而無聊的游戲動作。但是,隨著網(wǎng)絡(luò)游戲的盛行和復(fù)雜度的增加,很多游戲要求將客戶端動作信息及時反饋回服務(wù)

器,通過服務(wù)器對這些動作信息進(jìn)行有效認(rèn)證后,再向客戶端發(fā)送下一步游戲動作信息,這樣動作模擬技術(shù)將失去原有的

效應(yīng)。為了更好地“外掛”這些游戲游戲外掛程序也進(jìn)行了升級換代,它們將以前針對游戲用戶界面層的模擬推進(jìn)到數(shù)

據(jù)通訊層,通過封包技術(shù)在客戶端擋截游戲服務(wù)器發(fā)送來的游戲控制數(shù)據(jù)包,分析數(shù)據(jù)包并修改數(shù)據(jù)包;同時還需按照游

戲數(shù)據(jù)包結(jié)構(gòu)創(chuàng)建數(shù)據(jù)包,再模擬客戶端發(fā)送給游戲服務(wù)器,這個過程其實就是一個封包的過程。

  封包的技術(shù)是實現(xiàn)第二類游戲外掛的最核心的技術(shù)。封包技術(shù)涉及的知識很廣泛,實現(xiàn)方法也很多,如擋截WinSock

、擋截API函數(shù)、擋截消息、VxD驅(qū)動程序等。在此我們也不可能在此文中將所有的封包技術(shù)都進(jìn)行詳細(xì)介紹,故選擇兩種

游戲外掛程序中最常用的兩種方法:擋截WinSock和擋截API函數(shù)。

  1. 擋截WinSock

  眾所周知,Winsock是Windows網(wǎng)絡(luò)編程接口,它工作于Windows應(yīng)用層,它提供與底層傳輸協(xié)議無關(guān)的高層數(shù)據(jù)傳輸

編程接口。在Windows系統(tǒng)中,使用WinSock接口為應(yīng)用程序提供基于TCP/IP協(xié)議的網(wǎng)絡(luò)訪問服務(wù),這些服務(wù)是由

Wsock32.DLL動態(tài)鏈接庫提供的函數(shù)庫來完成的。

  由上說明可知,任何Windows基于TCP/IP的應(yīng)用程序都必須通過WinSock接口訪問網(wǎng)絡(luò),當(dāng)然網(wǎng)絡(luò)游戲程序也不例外。

由此我們可以想象一下,如果我們可以控制WinSock接口的話,那么控制游戲客戶端程序與服務(wù)器之間的數(shù)據(jù)包也將易如

反掌。按著這個思路,下面的工作就是如何完成控制WinSock接口了。由上面的介紹可知,WinSock接口其實是由一個動態(tài)

鏈接庫提供的一系列函數(shù),由這些函數(shù)實現(xiàn)對網(wǎng)絡(luò)的訪問。有了這層的認(rèn)識,問題就好辦多了,我們可以制作一個類似的

動態(tài)鏈接庫來代替原WinSock接口庫,在其中實現(xiàn)WinSock32.dll中實現(xiàn)的所有函數(shù),并保證所有函數(shù)的參數(shù)個數(shù)和順序、

返回值類型都應(yīng)與原庫相同。在這個自制作的動態(tài)庫中,可以對我們感興趣的函數(shù)(如發(fā)送、接收等函數(shù))進(jìn)行擋截,放

入外掛控制代碼,最后還繼續(xù)調(diào)用原WinSock庫中提供的相應(yīng)功能函數(shù),這樣就可以實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)包的擋截、修改和發(fā)

送等封包功能。

  下面重點介紹創(chuàng)建擋截WinSock外掛程序的基本步驟:

  (1) 創(chuàng)建DLL項目,選擇Win32 Dynamic-Link Library,再選擇An empty DLL project。

  (2) 新建文件wsock32.h,按如下步驟輸入代碼

  ① 加入相關(guān)變量聲明:

   HMODULE hModule=NULL; //模塊句柄
   char buffer[1000]; //緩沖區(qū)
   FARPROC proc; //函數(shù)入口指針?

  ② 定義指向原WinSock庫中的所有函數(shù)地址的指針變量,因WinSock庫共提供70多個函數(shù),限于篇幅,在此就只選擇

幾個常用的函數(shù)列出,有關(guān)這些庫函數(shù)的說明可參考MSDN相關(guān)內(nèi)容。

   //定義指向原WinSock庫函數(shù)地址的指針變量。
   SOCKET (__stdcall *socket1)(int ,int,int);//創(chuàng)建Sock函數(shù)。
   int (__stdcall *WSAStartup1)(WORD,LPWSADATA);//初始化WinSock庫函數(shù)。
   int (__stdcall *WSACleanup1)();//清除WinSock庫函數(shù)。
   int (__stdcall *recv1)(SOCKET ,char FAR * ,int ,int );//接收數(shù)據(jù)函數(shù)。
   int (__stdcall *send1)(SOCKET ,const char * ,int ,int);//發(fā)送數(shù)據(jù)函數(shù)。
   int (__stdcall *connect1)(SOCKET,const struct sockaddr *,int);//創(chuàng)建連接函數(shù)。
   int (__stdcall *bind1)(SOCKET ,const struct sockaddr *,int );//綁定函數(shù)。
   ......其它函數(shù)地址指針的定義略。?

  (3) 新建wsock32.cpp文件,按如下步驟輸入代碼

  ① 加入相關(guān)頭文件聲明:

   #include
   #include
   #include "wsock32.h"?

  ② 添加DllMain函數(shù),在此函數(shù)中首先需要加載原WinSock庫,并獲取此庫中所有函數(shù)的地址。代碼如下:

   BOOL WINAPI DllMain (HANDLE hInst,ULONG ul_reason_for_call,LPVOID lpReserved)
   {
    if(hModule==NULL){
     //加載原WinSock庫,原WinSock庫已復(fù)制為wsock32.001。
   hModule=LoadLibrary("wsock32.001");
  }
    else return 1;
//獲取原WinSock庫中的所有函數(shù)的地址并保存,下面僅列出部分代碼
if(hModule!=NULL){
     //獲取原WinSock庫初始化函數(shù)的地址,并保存到WSAStartup1中。
proc=GetProcAddress(hModule,"WSAStartup");
   WSAStartup1=(int (_stdcall *)(WORD,LPWSADATA))proc;
     //獲取原WinSock庫消除函數(shù)的地址,并保存到WSACleanup1中。
    proc=GetProcAddress(hModule i,"WSACleanup");
    WSACleanup1=(int (_stdcall *)())proc;
     //獲取原創(chuàng)建Sock函數(shù)的地址,并保存到socket1中。
    proc=GetProcAddress(hModule,"socket");
     socket1=(SOCKET (_stdcall *)(int ,int,int))proc;
     //獲取原創(chuàng)建連接函數(shù)的地址,并保存到connect1中。
     proc=GetProcAddress(hModule,"connect");
     connect1=(int (_stdcall *)(SOCKET ,const struct sockaddr *,int ))proc;
     //獲取原發(fā)送函數(shù)的地址,并保存到send1中。
     proc=GetProcAddress(hModule,"send");
     send1=(int (_stdcall *)(SOCKET ,const char * ,int ,int ))proc;
     //獲取原接收函數(shù)的地址,并保存到recv1中。
     proc=GetProcAddress(hModule,"recv");
     recv1=(int (_stdcall *)(SOCKET ,char FAR * ,int ,int ))proc;
     ......其它獲取函數(shù)地址代碼略。
   }
   else return 0;
   return 1;
}

  ③ 定義庫輸出函數(shù),在此可以對我們感興趣的函數(shù)中添加外掛控制代碼,在所有的輸出函數(shù)的最后一步都調(diào)用原

WinSock庫的同名函數(shù)。部分輸出函數(shù)定義代碼如下:

//庫輸出函數(shù)定義。
//WinSock初始化函數(shù)。
    int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData)
    {
     //調(diào)用原WinSock庫初始化函數(shù)
     return WSAStartup1(wVersionRequired,lpWSAData);
    }
    //WinSock結(jié)束清除函數(shù)。
    int PASCAL FAR WSACleanup(void)
    {
     return WSACleanup1(); //調(diào)用原WinSock庫結(jié)束清除函數(shù)。
    }
    //創(chuàng)建Socket函數(shù)。
    SOCKET PASCAL FAR socket (int af, int type, int protocol)
    {
     //調(diào)用原WinSock庫創(chuàng)建Socket函數(shù)。
     return socket1(af,type,protocol);
    }
    //發(fā)送數(shù)據(jù)包函數(shù)
    int PASCAL FAR send(SOCKET s,const char * buf,int len,int flags)
    {
   //在此可以對發(fā)送的緩沖buf的內(nèi)容進(jìn)行修改,以實現(xiàn)欺騙服務(wù)器。
   外掛代碼......
   //調(diào)用原WinSock庫發(fā)送數(shù)據(jù)包函數(shù)。
     return send1(s,buf,len,flags);
    }
//接收數(shù)據(jù)包函數(shù)。
    int PASCAL FAR recv(SOCKET s, char FAR * buf, int len, int flags)
    {
   //在此可以擋截到服務(wù)器端發(fā)送到客戶端的數(shù)據(jù)包,先將其保存到buffer中。
   strcpy(buffer,buf);
   //對buffer數(shù)據(jù)包數(shù)據(jù)進(jìn)行分析后,對其按照玩家的指令進(jìn)行相關(guān)修改。
   外掛代碼......
   //最后調(diào)用原WinSock中的接收數(shù)據(jù)包函數(shù)。
     return recv1(s, buffer, len, flags);
     }
    .......其它函數(shù)定義代碼略。

posted on 2006-11-18 16:54 獨孤九劍 閱讀(388) 評論(0)  編輯 收藏 引用 所屬分類: Win32Visual C++ 8.0misc
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            红桃视频欧美| 一区二区高清在线| 一区二区三区av| 亚洲黄色在线看| 亚洲丶国产丶欧美一区二区三区 | 国产中文一区二区三区| 国产欧美精品一区二区色综合| 国产精品久久久对白| 国产精品久久久久毛片大屁完整版| 欧美午夜精品久久久久久孕妇| 欧美日韩国产美| 国产精品网站一区| 在线观看av一区| 亚洲欧洲另类国产综合| 99在线视频精品| 欧美一区二区三区视频免费| 久久久久综合网| 亚洲国产成人porn| 日韩视频中文| 欧美专区18| 欧美另类久久久品| 国产色综合天天综合网| 亚洲经典在线| 香蕉免费一区二区三区在线观看| 欧美在线黄色| 久久久久国产精品一区二区| 亚洲国产99| 亚洲小视频在线观看| 欧美在线视频日韩| 欧美日韩视频在线一区二区观看视频 | 久久一区欧美| 国产精品久久久久久久久| 激情视频一区二区三区| 亚洲一级片在线看| 麻豆精品精品国产自在97香蕉| 亚洲精品久久久久久久久久久久 | 欧美日韩福利视频| 激情综合视频| 午夜在线精品偷拍| 亚洲国产日韩欧美| 久久久久五月天| 国产农村妇女精品一二区| 亚洲精品在线免费观看视频| 久久久久国产一区二区三区| 亚洲美女精品一区| 欧美a级理论片| 国模精品一区二区三区色天香| 亚洲无线视频| 亚洲人成网站在线观看播放| 另类亚洲自拍| 一区二区三区在线免费视频 | 亚洲国产精品一区制服丝袜| 久久狠狠婷婷| 狠狠噜噜久久| 久久一区免费| 久久精品成人一区二区三区| 国产日韩精品一区| 午夜精品av| 亚洲午夜国产成人av电影男同| 欧美日韩精品在线播放| 99国产精品久久久久久久成人热| 亚洲第一精品影视| 欧美阿v一级看视频| 亚洲欧洲一区二区在线播放| 欧美激情精品| 欧美黄色小视频| 99国产精品| 在线亚洲一区| 国产人成精品一区二区三| 久久精品国产免费看久久精品| 午夜精品福利一区二区蜜股av| 国产精品欧美在线| 欧美一区二区三区在线播放| 亚洲免费网站| 国产亚洲一二三区| 免费视频一区| 欧美激情视频一区二区三区在线播放 | 亚洲精品一二区| 欧美国产在线视频| 一区二区久久久久| 亚洲午夜精品久久久久久app| 国产精品视频免费在线观看| 久久国产主播| 另类av导航| 亚洲无线一线二线三线区别av| 亚洲免费在线播放| 一区二区三区在线观看视频 | 久久久久久精| 亚洲精品在线观| 亚洲天堂av高清| 国语自产精品视频在线看一大j8| 免费欧美在线视频| 国产精品高潮呻吟| 美腿丝袜亚洲色图| 欧美日韩在线播放三区| 久久久蜜桃精品| 欧美日本精品在线| 久久大综合网| 欧美男人的天堂| 久久激情网站| 欧美日产一区二区三区在线观看| 午夜精品久久久久久久久久久久久 | 欧美国产日产韩国视频| 国产精品久久久一区麻豆最新章节 | 亚洲精品一二区| 极品尤物一区二区三区| 夜夜嗨av一区二区三区网站四季av | 亚洲一区久久久| 久久久av网站| 亚洲综合好骚| 免费观看在线综合| 久久成人免费日本黄色| 欧美美女bb生活片| 美日韩免费视频| 国产麻豆综合| 夜夜爽99久久国产综合精品女不卡| 黄色精品在线看| 亚洲欧美影院| 亚洲视频专区在线| 欧美成人影音| 欧美福利视频| 韩日精品视频| 午夜精品国产更新| 亚洲在线成人精品| 欧美大片一区二区| 欧美成人嫩草网站| 伊人成人在线视频| 欧美专区日韩视频| 亚洲青色在线| 国产亚洲免费的视频看| 一区二区免费在线观看| 日韩视频在线一区| 欧美不卡三区| 亚洲成人在线免费| 国内一区二区在线视频观看| 国产精品99久久久久久久久久久久 | 久久婷婷成人综合色| 久久精品视频导航| 国产嫩草影院久久久久 | 亚洲欧美日韩系列| 欧美亚洲一区三区| 国产欧美短视频| 午夜精品久久99蜜桃的功能介绍| 亚洲一区免费网站| 国产精品免费网站| 午夜精品理论片| 欧美影片第一页| 国产一区91| 久久精品夜色噜噜亚洲a∨| 久久久国产午夜精品| 国产在线精品自拍| 久久久久久久久一区二区| 免费看成人av| 一区二区免费在线视频| 国产精品福利网| 性感少妇一区| 欧美高清视频在线| 99热免费精品| 国产精品一区二区三区乱码| 午夜激情综合网| 欧美va天堂| 一本久道久久综合狠狠爱| 欧美日韩一区免费| 亚洲愉拍自拍另类高清精品| 欧美在线播放一区| 一区二区三区无毛| 欧美激情一区二区三区全黄| 亚洲毛片av| 久久精品国产成人| 亚洲精品欧洲精品| 韩国三级在线一区| 激情文学一区| 欧美激情1区| 亚洲男女毛片无遮挡| 免费看的黄色欧美网站| 正在播放日韩| 国语自产偷拍精品视频偷| 欧美电影电视剧在线观看| 中国亚洲黄色| 欧美电影免费观看高清| 亚洲永久在线| 伊人婷婷欧美激情| 欧美日韩在线播| 裸体丰满少妇做受久久99精品 | 久久久噜久噜久久综合| 夜夜嗨av一区二区三区网站四季av| 国产乱码精品一区二区三区不卡| 蜜臀av国产精品久久久久| 亚洲综合色激情五月| 亚洲第一在线综合网站| 亚洲日本免费电影| 久久午夜电影| 亚洲午夜一二三区视频| 伊人天天综合| 国产日韩欧美91| 欧美日韩在线免费| 免费在线观看成人av| 久久gogo国模啪啪人体图| 亚洲作爱视频| 日韩午夜在线观看视频|