日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)VC|VC++ → 在VC中 Hook Api lib 0.5 源代碼

      在VC中 Hook Api lib 0.5 源代碼

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2011/4/11 14:27:26字體大。A-A+

      作者:海風(fēng)月影點(diǎn)擊:197次評(píng)論:0次標(biāo)簽: Hook api

      HOOK iPhone版appv1.03蘋果版
      • 類型:休閑益智大。42.4M語言:英文 評(píng)分:10.0
      • 標(biāo)簽:
      立即下載

       使得hook更加靈活,支持卸載

      計(jì)算指令長度使用另一個(gè)LDE32,代碼簡(jiǎn)潔,很容易看懂

      Stub更加簡(jiǎn)潔,保存了寄存器,可以支持hook __fastcall的函數(shù)

      增加了一個(gè)結(jié)構(gòu)體HOOKENVIRONMENT,一般情況下用不到,主要用來卸載的^_^

      使用中有什么問題跟帖說明

      /*
      //////////////////////////////////////////////////////////////////////////
      HookApi 0.5

      thanks to xIkUg ,sucsor

      by 海風(fēng)月影[RCT] , eIcn#live.cn
      2008.04.15

      //////////////////////////////////////////////////////////////////////////
      //更新內(nèi)容
      2008.04.15 0.5

      1,重新寫了Stub,換了一種模式,使hook更加自由,將hookbefore和hookafter合并
      HookProc的定義方式與以前有所不同:

      HookProc的函數(shù)類型和原來的api一樣,只是參數(shù)比原API多2個(gè)
      DWORD WINAPI HookProc(DWORD RetAddr ,__pfnXXXX pfnXXXX, ...);

      //參數(shù)比原始的API多2個(gè)參數(shù)
      RetAddr //調(diào)用api的返回地址
      pfnXXX //類型為__pfnXXXX,待hook的api的聲明類型,用于調(diào)用未被hook的api

      詳見My_LoadLibraryA
      原始的LoadLibraryA的聲明是:

      HMODULE WINAPI LoadLibraryA( LPCSTR lpLibFileName );

      那么首先定義一下hook的WINAPI的類型
      typedef HMODULE (WINAPI __pfnLoadLibraryA)(LPCTSTR lpFileName);

      然后hookproc的函數(shù)聲明如下:
      HMODULE WINAPI My_LoadLibraryA(DWORD RetAddr,
      __pfnLoadLibraryA pfnLoadLibraryA,
      LPCTSTR lpFileName
      );

      比原來的多了2個(gè)參數(shù),參數(shù)位置不能顛倒,在My_LoadLibraryA中可以自由的調(diào)用未被hook的pfnLoadLibraryA
      也可以調(diào)用系統(tǒng)的LoadLibraryA,不過要自己在hookproc中處理好重入問題

      另外,也可以在My_LoadLibraryA中使用UnInstallHookApi()函數(shù)來卸載hook,用法如下:
      將第二個(gè)參數(shù)__pfnLoadLibraryA pfnLoadLibraryA強(qiáng)制轉(zhuǎn)換成PHOOKENVIRONMENT類型,使用UnInstallHookApi來卸載

      例如:
      UnInstallHookApi((PHOOKENVIRONMENT)pfnLoadLibraryA);


      至于以前版本的HookBefore和HookAfter,完全可以在自己的HookProc里面靈活使用了


      2,支持卸載hook
      InstallHookApi()調(diào)用后會(huì)返回一個(gè)PHOOKENVIRONMENT類型的指針
      需要卸載的時(shí)候可以使用UnInstallHookApi(PHOOKENVIRONMENT pHookEnv)來卸載

      在HookProc中也可以使用UnInstallHookApi來卸載,參數(shù)傳入HookProc中的第二個(gè)參數(shù)

      注意:當(dāng)HookProc中使用UnInstallHookApi卸載完后就不能用第二個(gè)參數(shù)來調(diào)用API了~~,切記!

      2008.04.15 0.41
      1,前面的deroko的LdeX86 有BUG,678b803412 會(huì)算錯(cuò)
      換了一個(gè)LDX32,代碼更少,更容易理解

      2,修復(fù)了VirtualProtect的一個(gè)小BUG


      0.4以前
      改動(dòng)太大了,前面的就不寫了
      */

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)