學VC HOOK程式設計的經歷

2022-12-29 16:20:56 字數 1328 閱讀 9986

1樓:

寫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.根本使用和普通使用一樣.只是開發環境會自動實現一些繁瑣的工作.

本意是提高效率,以至於新手初見這些時對程式流程理解上跨度比較大難免變的混亂.

2樓:皇家救星

要知道的分幹嘛?

我還不知道知道的分能有什麼用呢。

留名,我也想學hook

ps:我見過一同學用.net給系統裝鍵盤鉤子,好像很簡單,只要幾個函式就行,比vc簡單多了

--------------------------------------------

哦,其實我以前曾經試過寫過鉤子的

不過只寫出了區域性鉤子,全域性鉤子沒寫出來

因為要dll程式設計,看不大明白

--------------------------------------------

3樓:匿名使用者

學那幹嘛 !!~~好玩嗎???不如找點輕鬆的工作 !~~~都是符文 看著都眼暈

嘿嘿我小人了 !~~~~~那麼 我一會試試研究一下這個問題

我想學程式設計 怎麼學程式設計?

數學不好或者不喜歡數學 就儘量別學程式設計了。會很吃力的。學資料庫吧 相對簡單一些vf 或 access 都行。說得對啊,數學不好,基本摸搞。怎麼學程式設計 摘要。學程式設計的注意點 1 要確定好自己一定能學下去,不能是三分鐘的熱度,只是學個熱鬧,這樣永遠沒有辦法學的會。2 一定要打好基礎,剛開始學...

少兒程式設計都學的什麼小碼王少兒程式設計學什麼

少兒編bai程入門用的是duscratch程式語言,美國麻省理工zhi大學開發的一款積木dao式程式設計軟體,可以用於和機版器人 遊戲創作等等進權行互動 到了比較高年級的階段,就會開始學習python,使用python可以在未來從事大資料處理,ai研究等方向 而為了更好的入學的孩子會學習c c 是底...

學習程式設計與專業有關嗎?我學英語的,可以學程式設計嗎

沒多大bai關係的,it行業是入門du門檻比較低的一zhi個行業,英語基礎dao不錯已經 專算是你的一個屬優勢了。it 培訓基本上都是3至6個月,或6至9個月,至於時間這個具體要看你學什麼。零基礎和準耶這邊基本上不存在什麼問題,很多機構的課程都是針對零基礎的學生設定的,比如說我們的,學起來會很輕鬆的...