ssdt 表結構及hook的一般理解

2022-03-31 08:14:38 字數 1859 閱讀 4314

0: kd> dd keservicedescriptortable

8055d700  80505460 00000000 0000011c 805058d4

8055d710  00000000 00000000 00000000 00000000

8055d720  00000000 00000000 00000000 00000000

8055d730  00000000 00000000 00000000 00000000

8055d740  00000002 00002710 bf80c349 00000000

8055d750  f7aeaa80 863d0340 863650f0 806f70c0

8055d760  025d954c 00000000 c136d144 00000001

8055d770  04a0f484 01cdcd68 00000000 00000000

第n個函式位址為:80505460 + 4 * n

第1個函式位址為:80505460 + 4 * 1

hookopenprocess測試從windbg

找出keservicedescriptortable起始位址

0: kd> dd keservicedescriptortable

8055d700  80505460 00000000 0000011c 805058d4

8055d710  00000000 00000000 00000000 00000000

8055d720  00000000 00000000 00000000 00000000

8055d730  00000000 00000000 00000000 00000000

8055d740  00000002 00002710 bf80c349 00000000

8055d750  f7aeaa80 863d0340 863650f0 806f70c0

8055d760  025d954c 00000000 1ffd4a44 00000004

8055d770  63676d84 01cdcd6a 00000000 00000000

找出openprocess的位址

首先找出他的序號為 0x7a

則位址為: 80505460 + 4 * 0x7a =  80505648

修改openprocess的位址 為00001234(亂改的)

0: kd> ed 80505648 00001234

檢視修改後的位址

0: kd> dd 80505648

80505648  00001234 805ee730 805ee394 805ab3d0

80505658  80615828 805c4baa 805cc696 805ee74e

80505668  805ee504 80617770 80646176 805ca4bc

80505678  805f8b10 805f473a 805f4926 805b93e8

80505688  8060f7e6 80577ed6 80617110 80617110

80505698  80540bc6 806113d8 80612038 8057ae64

805056a8  805bf61c 8057b1b2 8060f8ae 8057802a

805056b8  806168ac 8057ba1e 805d6c28 805a63c8

檢視工具檢測的結果

一般樹性結構

一.一般樹結點和樹的adt template class gtnode gtnode e v,gtnode lc null,gtnode rs null e value gtnode parent gtnode leftmostchild gtnode rightsibling bool islea...

廣義表一般概念

廣義表也是一種特殊的線性表,與線性表相比表中的資料元素可以是具體資料也可以是列表。記住 ls a1,a2,an 廣義表中ai為具體資料被稱為原子,廣義表中ai為列表被稱為子表。若作為廣義表中子表是該廣義表本身,可稱廣義表是遞迴的,此廣義表實際上是無限的列表。若廣義表非空,表中的第乙個元素 a1 為表...

GeneralTree 一般樹形結構類

這個類用於一般樹形,每個節點可以有多個分支,且數目不定。可以看做是二叉樹的變形形式。乙個節點除了父指標外還有左右兩個指標。左指標為孩子節點的起始指標,右指標為同父節點的兄弟節點的指標 例如 a的左指標為b,右指標為c,c的左指標為e,右指標為d 則,a,c,d為同兄弟節點。b為a的子節點,e為c的子...