學習VM上運行dnf(整理)

選自http://bbs.pediy.com/showthread.php?t=129810&highlight=dnf

本文是對該文章進行一些整理加自己的思考和提問 以便在日後的學習中帶着問題去學

1.dnf上HOOK了三個函數,無法再虛擬機上使用,遊戲一旦加載驅動直接藍屏。

 

2.系統藍屏,調試器又收不到信號,同時用工具檢測到,遊戲的驅動掛鉤了,用IDA檢測到使用了KdDisableDebugger來禁用雙機調試


3.正常的思路是把他們全部恢復過來,即禁用KdDisableDebugger

 

4.作者不贊同直接修改KdDisableDebugger的代碼,反而喜歡直接把調用KdDisableDebugger的代碼給NOP掉

 

5.首先找到對:KdReceivePacket 和 KdSendPacket   HOOK的代碼,在實體機上找   ;如何找 爲何找

 

6.然後掛上雙機調試,開啓遊戲,但是別點登陸,否則系統又藍了!

7.回到WINDBG,然後下斷點,bp          nt!IopLoadDriver+0x66a                        ;爲什麼是nt!IopLoadDriver+0x66a
  

 

8.然後g 運行 回到虛擬機,登陸游戲 一會就中斷到調試器中

 

9.發現中斷處是一個call 進入該call

 

10.算出它的驅動的基地址 設爲EE276000                             ;怎麼算的

11.然後找到它HOOK的地址
輸入命令
s -b EE276000 L5000 89 19 0F 20 C0 0D 00 00 01

12.反彙編uf ee27837c

13.HOOK的位置直接NOP掉就行了                           ;如何知道哪裏是hook

14.輸入 g  發現重新啓動


15.目前只處理了兩個地方,還有個KdDisableDebugger

16.作者沒有處理 給了個思路,驅動中的重啓代碼    ;好了 至此徹底看不懂 有需要朋友的可以看原版

  系統不同,下的地址也不同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章