国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C# inline-hook / api-hook

2019-11-17 02:14:07
字體:
供稿:網(wǎng)友
C# inline-hook / api-hook

我查閱了一下相關(guān)C#方面的資料,卻沒有發(fā)現(xiàn)有提供過關(guān)于api-hook方面的資

料包括應(yīng)用庫由此本人編寫一套inline-hook的庫用于支持x64、x86上的基于在

clr的公共語言,如: c#、c+/clr、vb.net 全部都可以使用該類庫改變底層api執(zhí)

行結(jié)果,如我們需要制作抓包工具,或者攔截某個ActiveX對象內(nèi)部調(diào)用的函數(shù)

用處廣泛 有些人在制作“截包”工具時是通過使用SPI,但也可以通過本技術(shù)實現(xiàn)

調(diào)用MessageBox.Show("Hello world", "Advapi32")時會跳轉(zhuǎn)到CB_MessageBox函數(shù)

MessageBox.Show()這個方法在下層中會調(diào)用MessageBoxW函數(shù),不信我們可以試

[csharp]view plaincopy
  1. [DllImport("user32",EntryPoint="MessageBoxW",CharSet=CharSet.Unicode)]
  2. publicstaticexternintMessageBox(IntPtrhWnd,stringlpText,stringlpCaption,uintuType);
  3. [STAThread]
  4. staticvoidMain(string[]args)
  5. {
  6. InlineHookich=newInlineHook();
  7. ich.Install(ich.Get
  8. //MessageBox.Show("Helloworld","Advapi32");
  9. MessageBox(IntPtr.Zero,"Helloworld","Advapi32",0);
  10. Console.ReadKey(false);
  11. }

試,上面的代碼執(zhí)行后結(jié)果與最上面的相同。本類庫提供分別需求.net 2 / 4的兩種

不同的類庫,基本滿足開發(fā)的需要 不過這一塊一直是C++方面的哦不過我相信以后

會是C#做這一塊,不過與其等到到時候再提供類庫 不如早些提供類庫,大家不需要

去研究我類庫中怎么去實現(xiàn)的,雖然類庫我稍微混淆了一下 不過你們要去學(xué)習(xí)也不

是很困難,不過我是懶得去討論在下層怎么實現(xiàn)的 DLL是沒有打入版權(quán)的信息,很

簡單你在屬性中看不到任何信息,除了一個內(nèi)部名稱之外沒有任何信息,所以你不

必擔(dān)心下面是解釋InlineHook中導(dǎo)出的函數(shù)接口及釋義。

InlineHook.GetProcAddress(string strLibraryName, string strMethodName) //取函數(shù)地址(庫文件,函數(shù)名)

InlineHook.GetProcAddress(System.Delegate d) // 取函數(shù)地址(有效委托)

InlineHook.Install(System.IntPtr oldMethodAddress, System.IntPtr newMethodAddress)// 安裝鉤子(源函數(shù)地址,新函數(shù)地址)

InlineHook.Resume()// 恢復(fù)鉤子

InlineHook.Suspend()// 掛起鉤子

InlineHook.Uninstall()// 卸載鉤子

Sample:

CAT(inline-hook) http://pan.baidu.com/s/1kTKjFPt // 示例地址含類庫

每個版本文件夾中都包含x86 / x64兩份不同的類庫,如果使用本類庫有疑惑的地方可以在本人下方留言。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 林西县| 昌江| 同德县| 罗城| 长沙市| 磐石市| 赤城县| 利津县| 新巴尔虎左旗| 延庆县| 临猗县| 寿光市| 花莲市| 清水河县| 乐陵市| 肥西县| 辽源市| 灌阳县| 辽宁省| 马龙县| 洛隆县| 宁陵县| 吉木萨尔县| 北川| 通渭县| 红安县| 民县| 金华市| 那坡县| 凌云县| 安丘市| 皋兰县| 嘉禾县| 郎溪县| 偏关县| 鸡西市| 阜阳市| 蒙阴县| 化州市| 孝感市| 牟定县|