detours

    0熱度

    1回答

    我試圖使用微軟的彎路進行基本掛鉤。我的程序能夠成功運行CreateProcessWithDllEx並注入一個dll。但是,我似乎無法恢復實際的掛鉤程序。我正在使用記事本進行測試,並且可以看到notepad.exe在我的進程列表中運行,但記事本窗口實際上並未出現。 我的DLL如下: #undef UNICODE #include <cstdio> #include <windows.h> #i

    0熱度

    1回答

    我想使用Deviare V2 API攔截來自測試應用程序的winapi調用。問題是鉤子和系統調用處於相同的過程中,因此調用不會被攔截。 如果我爲他們每個人打開單獨的進程,那麼攔截將起作用。其他人有沒有這種情況/問題? 事情是我試圖添加一些單元測試代碼的和平,而不是修改現有的生產代碼來包裝/模擬所有系統調用我想我可以簡單地攔截所有這些調用,並假裝他們,因爲我希望。

    1熱度

    2回答

    我有一個應用程序,它向文件寫入一些文本數據。 我想要做的是鉤住寫作過程。我迷上了MS Detours,CreateFile,WriteFile和WriteFileEx函數。 CreateFile會正確捕獲這些文本文件的創建/打開,但WriteFile的鉤子不會。它捕獲許多其他的東西,但不是這些。掛鉤工作正常。我檢查過他們。 而且進程監視器顯示了這些寫操作爲WriteFile的操作(ADV名IRP_

    1熱度

    1回答

    我最近一直在研究繞行功能(只在Linux中),到目前爲止我已經取得了巨大的成功。直到找到this,我纔開發自己的繞路班。我對代碼進行了現代化處理,並將其轉換爲C++(作爲課程的一部分)。該代碼就像任何其他的繞行實現一樣,它用JMP將原始函數地址替換爲我自己指定的「鉤子」函數。它還爲原始功能創建了一個「蹦牀」。 一切都完美無瑕,但我想做一個簡單的調整。我使用純C++編程,我沒有使用全局函數,所有東西

    0熱度

    2回答

    我繞過LoadLibraryA,爲了阻止函數被調用到我的應用程序中。它是爲了阻止'注入'。如果你從未見過這些,請參考着名的CDetour圖書館。 它掛鉤了加載庫函數,甚至成功返回,也阻止未知的dll被加載到內存中。有小費嗎? bool (__stdcall* LoadLibraryA) (LPCSTR); bool LoadLibraryADetoured(LPCSTR szMsg) {

    6熱度

    1回答

    我有一個彎路問題。衆所周知,Detours只能在5個字節的空間中移動(即'jmp'調用和4個字節的地址)。正因爲如此,在一個類(方法)中不可能有'鉤子'函數,所以你不能提供'this'指針,因爲沒有足夠的空間(here's這個問題更加徹底的解釋)。所以我一整天都在爲解決方案進行頭腦風暴,現在我想要關於這個問題的想法,所以我不開始一個3-5天的項目,不知道它是否可行。我想讓'鉤子'函數成爲類方法,我

    1熱度

    1回答

    我有一個C++測試項目,有一堆存根函數具有相同的實現。這些存根意味着在運行時使用Windows Detours進行「替換」。問題是,在發佈模式下,編譯器將所有這些存根指向相同的實現。爲了說明這一點,請考慮以下代碼: #include <iostream> using namespace std; void A() { cout << "stub" << endl; } void B() {

    0熱度

    3回答

    我一直在編程最近的彎路和所有的它。我繞道了很多不同的功能; thiscall,stdcall,cdecl,虛函數等。但有一件事我沒有管理(這可能甚至不可能),那就是鉤住基類虛函數。例如;有一個Car類聲明一個虛函數(空)Drive。然後有3個其他車類繼承汽車並實施Drive。 如果我勾住車內的(基類)Drive功能(使用一個簡單的「JMP」鉤)將它由Car後裔被觸發,當他們引發Drive,如果他們

    2熱度

    1回答

    我的系統:微軟Windows XP專業版32位 IDE /編譯器:微軟的Visual C++ 2010 Express Edition的 庫:走彎路3.0快遞 目標:寫簡單的數據包記錄器。 我的代碼: mydll.cpp #include <cstdio> #include <windows.h> #include <detours.h> #pragma comment(lib,"deto

    2熱度

    2回答

    我一直在使用與Microsoft Detours相同的方法練習彎路(用jmp和地址替換前五個字節)。最近我一直在通過修改虛擬表來閱讀關於繞行的內容。如果有人能夠通過提及這種方法的一些優點和缺點,與前面提到的方法相比,我會很感激的。 我也想問一下堆棧上的vatch和對象。考慮以下情況: // Class definition struct Foo { virtual void Call(voi