好吧,我正在慢慢學習C++。我熟悉所有的控制檯語法和所有內容,但現在我正在進行Windows編程。現在我試圖做的是創建一個注入到一個進程中的DLL,所以它被吸引了。我希望C++應用程序做的所有事情都有一個文本,如果它被成功注入,就會說「掛鉤」,還有一個發生錯誤時發生錯誤。或者,即使我可以在沒有DLL的情況下執行此操作,只需打開一個可執行文件,並且當我試圖掛鉤的某個進程打開後,狀態將更改爲「掛鉤」。此外,我有一個safaribooksonline.com帳戶,所以如果您有任何建議,請將其寫下。謝謝C++鉤子進程和顯示狀態
3
A
回答
3
我想你可能會看着這個倒退。在C/C++中,應用程序'拉'一個DLL,而不是將一個DLL'注入'到應用程序中。通常對於插件/鉤子,有一些機制可以通知應用程序DLL的可用性(通常只是它存在於特定的目錄中),而配置文件或其他邏輯用於指示應用程序顯式加載庫,提取功能或兩個,並打電話給他們。
對於Windows編程,我建議查找LoadLibrary()API調用的示例。你可能會發現a tutorial或兩個如何做到這一點。
1
如果通過「掛鉤」您的意思是「讓我的DLL在該進程的地址空間中運行」,則您需要CreateRemoteThread()
。這是相當先進的,難以調試,因爲你的錯誤使其他程序崩潰。順便說一下,這就是很多惡意軟件的工作原理。
如果您的意思是「讓我的DLL在其他進程中得到活動通知」,您需要SetWindowsHookEx()
。
0
聲音就像你希望一旦應用程序啓動時注入?你可以通過微軟的Detours DetourCreateProcessWithDll()
來做到這一點。示例here。
相關問題
- 1. C#7za.exe進程狀態
- 2. mysql顯示進程列表查詢顯示狀態=空
- 3. 使用AJAX和ASP.NET MVC顯示進程狀態
- 4. 使進度條顯示下載狀態
- 5. GDB和LLDB 「燕子」 狀態的子進程在OS X
- 6. 在子查詢中顯示錶狀態?
- 7. 在Perl中檢查子進程狀態
- 8. MySQL顯示狀態
- 9. 以編程方式從關閉鉤子訪問退出狀態
- 10. tortoisehg和預置狀態掛鉤
- 11. 只需檢查c狀態進程
- 12. 進程終止狀態-1073741819在C
- 13. 從c子進程中獲取退出狀態
- 14. 在C++中檢查子進程的狀態
- 15. PNR狀態進程
- 16. 顯示狀態欄第一個顯示進度
- 17. 如何向客戶端(web)顯示巨大進程的狀態
- 18. ASP.NET:向用戶顯示後臺進程狀態
- 19. 如何在Linux中顯示進程狀態(阻塞,非阻塞)
- 20. 如何通過javascript worker顯示循環進程狀態
- 21. 漸進增強和初始顯示狀態
- 22. 正在下載狀態和進度條不顯示
- 23. 顯示每個線程的狀態
- 24. 顯示應用程序狀態iOS
- 25. 顯示狀態:當它完成出口國和隱藏狀態
- 26. 更新和顯示狀態charis上的狀態chage
- 27. 通過狀態和顯示總的每個狀態的在Java
- 28. 顯示列表和OpenGL狀態
- 29. 同時顯示git diff和git狀態
- 30. 始終顯示狀態欄和軟鍵