[英]How do I find out what is sent through ws2_32.dll recv() function
[英]c++ hooking ws2_32.dll recv
我正在嘗試學習掛鈎,並且只想掛鈎 .exe 的發送/接收功能。
我將項目構建為 .dll,然后將其注入到 .exe
編輯:解決了
據我所知,有 3 種掛接 API 調用的方法:
JMP yourfunc
或具有類似效果的東西重寫它的代碼來JMP yourfunc
API 調用。方法 1 是一種非常流行的方法,它甚至在關於 Hooking的Wikipedia 頁面以及各種示例中都有描述,如果您使用 Google 搜索它,例如this one或this one 。
方法 2 有點棘手,您必須構建一個與您正在模仿的 DLL 具有相同名稱和導出的 DLL,並繞過所有您對掛鈎不感興趣的函數並為您編寫自定義代碼。 我發現這種方法非常干凈,因為您不必修改內存,也不必使用外部程序顯式注入此 DLL,Windows 只會為您完成,而且還有一個優點,它通常在反調試和反黑客檢測。 這是一個如何做到這一點的示例(32 位)。
方法 3 是微軟最喜歡的. 它有一個特別好的優點:您可以掛鈎任何函數、方法或虛擬調用。 它不依賴於外部調用的函數來掛鈎它,因此掛鈎 DirectX 方法非常流行。 這是 FRAPS、Discord Overlay、Overwolf Overlay 以及幾乎所有其他在游戲中放置疊加層或記錄游戲玩法的軟件所使用的方法。 您不需要專門使用 Microsoft Detours,還有通用的替代方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.