我們用OD除錯一個exe,比如一個按鈕,事件是一個messageboxA ,我們下斷點,進入系統領空,該函式的地址是一個指標,也就是一個虛擬地址.如果我們找到messageboxA的物理地址,把此處地址修改掉,不就成就了全域hook了嗎?
如何獲取物理地址?我想是否能通過CR3暫存器存放的頁目錄基址找到頁目錄,然后計算得出真實的物理地址.然后修改入口,從而實作劫持?
都是猜測,不知道合不合理?
有沒有大神來
uj5u.com熱心網友回復:
太底層了,都是高手。。。uj5u.com熱心網友回復:
看該函式呼叫是那個api檔案,然后通過查看dll函式的程式(網上有),打開那個dll檔案,里邊有實際的函式地址,然后在除錯中更換掉即可,不過可不是簡單的更換,有的直接更換了可以,有的不行,因為原來那個有回傳,還有原來的堆疊資料,一般先push 呼叫完了再pos就不會出錯啦,這是經驗,順便告訴你。uj5u.com熱心網友回復:
是全域hook的,做的好可以直接改寫msg全域引數和型別,但我不會uj5u.com熱心網友回復:
首先 你需要對dll檔案格式有一定的了解,在找到messageboxA的代碼段進行替換,這樣的操作可能會影響其他軟體的運行,而且想恢復原來的dll需要重新下載,建議不要這樣操作,,全域hook不會對原來的dll造成影響,,退出hook程式后 還能繼續使用以前的函式uj5u.com熱心網友回復:
你直接劫持dll就行了,或者分析下user32dll,然后記憶體注入就行了,還找什么物理地址uj5u.com熱心網友回復:
知道什么叫做刻舟求劍么?內核態是水,應用態是船,你在船上標記河底的位置是沒有意義的。
喜歡鉆研沒錯,但是你基礎太差,找個正規大學的教材學習下計算機組成原理吧。
uj5u.com熱心網友回復:
32位Windows系統及以后版本,都是在保護模式而非實模式下運行。保護模式下,無論你是用戶態程式還是內核態程式,所訪問的地址其實都是虛擬地址。虛擬地址通過段暫存器與段描述符表映射到線性地址,線性地址再通過分頁機制映射到物理地址。所以無論是采用內核態程式方式還是用戶態程式方式,你都無法直接訪問或者修改物理地址。uj5u.com熱心網友回復:
這個比喻好厲害,一下子就明白了,厲害
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/85722.html
標籤:安全技術/病毒
上一篇:問個雙系統安裝正版殺毒軟體的問題
