繼續小傢伙的開發

2021-04-16 09:33:26 字數 759 閱讀 4036

這幾天假期全部貢獻給小傢伙了!

前兩天的進展比較緩慢,卡在了截獲api上,在本程序上一切正常,但是一注入到別的程序,截獲了一兩次就會發生崩潰.由於使用的方法是改寫**段的方式,所以可能是同步的問題,但是我實驗的都是單執行緒啊,一直不願意相信是這個原因.後來實在沒有別的方法可以想了,只好實驗一下.我想如果能夠把待截獲的api的執行碼拷貝到乙個新的空間s,加以儲存,然後改寫原來的api開頭部分,使之跳轉到我的函式a,a裡面再去呼叫s裡面的原始api,應該就可以,這樣改寫只會發生一次.實驗了一下,發現問題依舊.

上google搜尋了一下,終於還是用起了detours函式庫,簡單地看了一下他的原理和用法,感覺和我的想法差不多啊(呵呵),不過不大理解他為什麼要改寫pe的段。先不追究了,實現我的功能才是正道。因為我想要注入到別的程序當中,所以使用了動態的方法,便以出來一實驗還是同樣的問題---崩潰!這下我的認真考慮一下了,肯定是什麼地方沒有考慮到!仔細想了一遍,唯一的不同就是初始化api鉤子的時機不一樣:我是在熱鍵的觸發下,而一般的例子都是在dllmain中。看來還是多執行緒(程序)衝突的問題!稍微改了一下,當然只是在目標程序體才會進行api鉤子動作,一切正常。又實驗了一下自己原來的想法,似乎成功過一下,後來該來改去的又不行了,唉,看來腦子比較亂了!

改dll中api**的方法比較危險,並且有多程序併發的情況需要處理,這就需要保證在改寫**段時只有乙個執行者,乙個比較保險的方法就是在dllmain裡面動作。但是還是不明白為什麼鉤記事本之類的單程序時也會出現問題,難道是我感興趣的動作剛好會觸發乙個新的程序?有事件要好好研究一下程序,執行緒,dll之間的互動!

盤點一下小傢伙發展情況

小傢伙的發展情況是要經常記的,我記得在生她之前曾盤算要天天記日記,說不定將來還可以用做人類生長發育研究方面珍貴的一手資料呢。要記錄的事項比較雜,想到什麼就記什麼吧,恐怕還記不全。近乙個月前看了 功夫熊貓 是英文版的,但是小朋友看什麼語言的電影好像都是可以的。看到烏龜爺爺仙逝的那一幕,雖然表現手法及其...

遇到就更新 C C 中一些容易犯錯的小傢伙

想要造輪子,c c 功力不可少,不往高處談設計,先把腳底下的坑填了再說。這些小細節,遇到就更新,你上你也行!先來點個題,與本文其他內容無關。這可能是宇宙中最難以回答的問題了,它似乎牽扯到了哲學和倫理。不管怎樣,c 起初都被認為是帶類的c c with classes 那他起碼也得比c語言更厲害一點,...