當前位置:編程學習大全網 - 編程語言 - 學VC++HOOK編程的經歷

學VC++HOOK編程的經歷

寫hook的程序如果只是掛到自己程序內的鉤,也可以不必寫dll,掛在外部程序上才需要DLL.

別把hook的作用看得無所不能.其實沒什麽了不起的.windows系統通過消息實現多進程,所有的中斷通過系統捕獲後分析並發消息到個進程的消息隊列,hook其實就是改變了原本消息到程序的鉤子.

相必妳是要掛在外部程序上,妳就需要解決以下問題.

1.dll的編寫.可以直接開個純dll工程,HOOK的DLL使用標準接口.就是最簡單dll調用方法.COM,ATL,等等可以不看了

2.dll和妳的程序通信問題.dll工作在外部程序的程序空間,妳的在DLL內部實現的消息到妳的傳遞(可以用通道).或者把妳的地址直接轉交給DLL所有操作在DLL中完成(普遍這樣做)

MSDN裏提供了SPY示例,可以按上面說的把工程拆開思考.妳回很快掌握的.

我沒特意去掌握壹個方法或函數的用法,winApi函數在用時查查MSDN就可以了.那麽多我也不可能都記住,只需要知道API接口怎麽聲明,怎麽封送數據.畢竟API要封送的函數也好,變量也好,等等,都比較固定.MSDN也對這些做了壹壹介紹.如果還不太明白那麽按示例寫個簡單的API調用程序多使用,多嘗試不同的申明就能明白API的使用規則.

至於DLL的理解很多地方沒有提,因為那實在太基本了,基本的沒有必要說明,DLL只是壹種文件存儲方式.它能讓系統認識,並能變為可執行的代碼段.是程序的壹組成部分.可以拆開存儲的壹個部分.在DLL的使用上和普通函數沒什麽不壹樣,可以把DLL看做工程中編譯了的cpp程序.我們使用DLL只要把他裝載進程序空間,聲明對函數方法就行.至於COM,ATL等等的dll,他門是具有有標準定義接口的dll.根本使用和普通使用壹樣.只是開發環境會自動實現壹些繁瑣的工作.本意是提高效率,以至於新手初見這些時對程序流程理解上跨度比較大難免變的混亂.

  • 上一篇:上海海事大學附屬職業學校專業有哪些?專業介紹
  • 下一篇:矽膠的材質是什麽?矽膠對身體有害嗎?
  • copyright 2024編程學習大全網