1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          常見注入手法第四講,SetWindowsHookEx全局鉤子注入.以及注入QQ32位實戰.

          來源:互聯網轉載 時間:2024-01-29 08:00:41

          常見注入手法第四講,SetWindowsHookEx全局鉤子注入.以及注入QQ32位實戰.

          PS:上面是操作.最后是原理

          一丶需要了解的API

            使用全局鉤子注入.我們需要了解幾個WindowsAPI. 不需要太多.?

          1. 設置鉤子API

          HHOOK WINAPI SetWindowsHookEx(  _In_  int    idHook,            設置鉤子的類型.意思就是我要設置的鉤子是什么鉤子. 可以是監視窗口過程.可以是監視消息隊列.  _In_ HOOKPROC lpfn,             根據鉤子類型.設置不同的回調函數.  _In_ HINSTANCE hMod,            鉤子設置的Dll實例句柄,就是DLL的句柄  _In_ DWORD dwThreadId             設置鉤子的線程ID. 如果為0 則設置為全局鉤子.);                          HHOOK 返回值. 是一個鉤子過程句柄.

          2.獲取模塊句柄API

          HMODULE WINAPI GetModuleHandle(  _In_opt_ LPCTSTR lpModuleName           獲取的實例句柄的文件名.可以是Dll可以使exe  如果為NULL 這是當前dll/exe的實例句柄);                                       返回值 返回實例句柄.

          3.取消設置鉤子API

          BOOL WINAPI UnhookWindowsHookEx(  _In_ HHOOK hhk                        參數一是 SetWindowHookEx的返回值.也就是鉤子過程句柄. );                                      返回值: 返回值是BOOL類型.表示設置是否成功或者失敗.

          4.繼續調用鉤子鏈中的鉤子過程.

          LRESULT WINAPI CallNextHookEx(  _In_opt_ HHOOK hhk,          保存的鉤子過程,也就是SetWindowsHookEx返回值.  _In_      int     nCode,            根據SetWindowsHookEx設置的鉤子回調而產生的不同的nCode代碼. 什么意思? 意思就是如果設置的鉤子類型是鼠標消息.那么那個nCode就是鼠標消息.如果是鍵盤這是鍵盤  _In_ WPARAM wParam,                 同2參數一樣.附加參數. 根據鉤子回調類型.附加參數有不同的意義.比如如果是鼠標.那么這個有可能代表的就是鼠標的x位置.鍵盤就可能是鍵代碼  _In_ LPARAM lParam                  同3參數一樣.附加參數.);

          5.鉤子回調

          鉤子回調根據SetWindowsHookEx參數1來設定的.比如如果我們設置WH_CBT 那么我們設置的回調函數就是CBT回調. 具體查詢MSDN

          LRESULT CALLBACK CBTProc(         這個回調函數里面寫我們的代碼就可以了.  _In_  int     nCode,  _In_ WPARAM wParam,  _In_ LPARAM lParam);

          二丶全局鉤子注入步驟.

          其實看上面幾個API其實注入就不難了.

          那么鑒于學習.說一下注入的步驟.

          1.調用SetWindowsHookEx設置鉤子.

          2.在設置過程中.需要一個回調.所以我們填入一個回調.

          3.回調函數中調用CallNextHookEx函數. 如果不調用.那么相當于我們設置了不反悔.程序可能出現問題.當然是按需返回.

          4.取消HOOK設置.

          步驟就四步.那么我們開始.

          1.建立DLL工程. 建立DLL工程可以使用VC++6.0 也可以使用VS系列都可以.這里就不在累贅. 建立DLL工程很簡單.如果不會網絡百度.

          2.工程中添加一個HOOK.h的頭文件.以及一個HOOK.cpp的實現文件.

          3.編寫代碼.

          HOOK.h中的代碼.

          #pragma once#define MYWINDAPIEXPORT __declspec(dllexport)HHOOK g_HookProc;  //定義為全局HOOK                     返回的鉤子過程void MYWINDAPIEXPORT SetHook();//設置HOOK鉤子.          //我們的啟動函數.導出函數.外部設置HOOKvoid MYWINDAPIEXPORT UnHook();                         //取消設置HOOKLRESULT CALLBACK MyProc(int nCode, WPARAM wParam, LPARAM lParam); //設置HOOK過程中需要的回調函數

          HOOK.cpp的代碼.

          #include <Windows.h>#include "HOOK.H"void MYWINDAPIEXPORT SetHook(){    g_HookProc = ::SetWindowsHookEx(WH_CBT, MyProc,GetModuleHandle(TEXT("Win32Project1.dll")),0); //參數1.HOOK的類型. Hook的回調地址 模塊句柄. 線程ID,為0代表是全局鉤子    }void MYWINDAPIEXPORT UnHook()                                                                    //取消設置HOOK{    if (NULL != g_HookProc)        ::UnhookWindowsHookEx(g_HookProc);}LRESULT CALLBACK MyProc(int nCode, WPARAM wParam, LPARAM lParam)  //我們自己的程序處理             {    /*    執行我們的程序    */    ::MessageBox(NULL, NULL, NULL, NULL);    return CallNextHookEx(g_HookProc, nCode, wParam, lParam);                                    //繼續調用鉤子過程}

          上面的.h + cpp就是我們的的代碼的.那么我們還需要一個外部程序來調用我們的導出函數 SetHOOK() 以及 UnHOOK.

          因為SetHook 和 UnHOOK導出函數是在dll中使用的.所以我們想要使用 這兩個函數有兩種方法.

          1.靜態調用:? 再生成DLL的時候會生成對應的lib. 我們需要在我們的程序中 添加 .h頭文件. 使用宏指令包含.lib文件.

          2.動態調用. 動態調用涉及到兩個API. 一個是Loadlibaray()? GetProcAddress() 第一個是獲取dll的實例句柄. 第二個是根據實例句柄以及函數名來獲取函數的地址. 也稱為函數指針.

          這里采用第一種方法.如果采用第二種方法.也可以.但是我們的代碼需要加上 extends "C" 來導出.不然就名稱粉碎了.那么使用GetProcAddress填寫函數名就獲取不到函數指針了.

          新建MFC工程.

          1.添加HOOK.h頭文件.

          2.使用宏命令包含我們的dll的lib? #pragam comment(lib,"xxxx.lib")

          3.在Hook按鈕點擊位置調用導出函數SetHOOK.

          4.在UnHOOK按鈕點位置.調用導出函數UnHOOK.

          1.界面:

          2.我們原有的HOOK.H文件.

          3.靜態使用的lib庫.

          4.按鈕點擊里面的函數調用.

          5.使用工具查看是否注入了DLL 推薦是Pchunter工具.

          可以看到已經注入了.

          PS: 因為我們寫的是32位DLL所以注入的程序都是32位的.如果是64位DLL那么注入到程序應該為64.詳情請查詢MSDN SetWindosHookEx.

          三丶原理講解

          ?上面講了這么多操作.原理應該不是太懂.

          ?其實SetWindowsHookEx就是在應用程序執行過程中.替我們加了一層. 而我們提供回調地址那么當操作來了就會通知我們回調.這個時候我們回調函數就可以做我們的事情了.

          比如:

          ??  A函數 -> B函數 -> C函數.? 正常執行流程是 A函數調用B B調用C.

          而我們添加了一層.

            A - 我們 (利用CallNextHookEx決定是否調用下一個過程) 是 - >B ->C

          ? ? ? ?A ->我們(不是的情況下) 不調用B.?

          DLL怎么注入的疑問?

            上圖我們寫的這么多.并沒有針對QQ或者其他32位程序注入DLL. 為什么會注入了DLL.

          原理:

            原理就是我們的窗口程序. 直接使用DLL里面的SetWindowsHookEx設置了一個回調. 而這個API是給全局所有應用程序都設置了這個回調.那么如果有32位程序會觸發回調.那么我們的DLL就會注入到里面去了.

          標簽:setwindowhookex-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          PSP怎么換主題?你可以把下載的主題文件放到PSP/THEME中,然后打開PSP設置,在主題設置中選擇你喜歡的主題。CXMB是一個PSP主題插件。通過這個插件,PSP theme不僅可以改變界面下按鈕的圖標,還可以改變按鈕的位置、界面的結構、菜單字體、音量按鈕、系統音效甚至開機畫面。不過主題包安裝起來比較麻煩,不小心操作的話PSP會轉磚。樓主要用的話,很多論壇都有。你可以試試。里面會有更詳細的說...

          蚌埠醫學院郵編?地址:安徽省蚌埠市東海大道2600號,233030。蚌埠學院國慶放幾天?放七天假,10月1日到10月7日。蚌埠大學,位于安徽省蚌埠市,是教育部批準的以工、理、管、文、教、藝為主的普通本科院校[1]2004年,學校合并成立蚌埠學院、蚌埠教育學院、蚌埠職工大學,更名為蚌埠學院。2019年,學校正式納入安徽省省級碩士項目建設單位。蚌埠學院環境科學專業怎么樣?蚌埠學院的師資力量一般。環境科...

          怎樣將ansys中文版換成英文版?在設置中找到語言設置,切換到英語確認即可。ansys19.2怎么漢化?因為沒有中文版,所以無法調整中文版。ansys18.1英文版怎么改中文?下載后再連接中文版就行了。沒有我附加的操作。ansys為什么不出中文版?有中文版,但是你可以 不要用經典的ansys,應該用ansys workbench。界面非常友好,3d界面非常豐富,項目界面可以輕松處理多場耦合。ans...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>