阅读:3001回复:2
谁获取过shadow table ?win32k.sys
ruti
|
|
沙发#
发布于:2009-01-29 22:23
.text:00016E0A Get_KeServiceDescriptorTableShadow proc near
.text:00016E0A ; CODE XREF: Init_KeServiceDescriptorTableShadow_Info+19p .text:00016E0A ; Init_KeServiceDescriptorTableShadow_Info+2Dp .text:00016E0A .text:00016E0A arg_0 = dword ptr 8 .text:00016E0A .text:00016E0A mov edi, edi .text:00016E0C push ebp .text:00016E0D mov ebp, esp .text:00016E0F mov eax, ds:KeAddSystemServiceTable .text:00016E14 mov ecx, [ebp+arg_0] ; kd> u KeAddSystemServiceTable l10 .text:00016E14 ; nt!KeAddSystemServiceTable: .text:00016E14 ; 804c3a16 55 push ebp .text:00016E14 ; 804c3a17 8bec mov ebp,esp .text:00016E14 ; 804c3a19 837d1803 cmp dword ptr [ebp+18h],3 .text:00016E14 ; 804c3a1d 56 push esi .text:00016E14 ; 804c3a1e 57 push edi .text:00016E14 ; 804c3a1f 7760 ja nt!KeAddSystemServiceTable+0x6b (804c3a81) .text:00016E14 ; 804c3a21 8b4518 mov eax,dword ptr [ebp+18h] .text:00016E14 ; 804c3a24 c1e004 shl eax,4 .text:00016E14 ; 804c3a27 83b82008488000 cmp dword ptr nt!KeServiceDescriptorTable (80480820)[eax],0 .text:00016E14 ; 804c3a2e 7551 jne nt!KeAddSystemServiceTable+0x6b (804c3a81) .text:00016E14 ; 804c3a30 83b86009488000 cmp dword ptr nt!KeServiceDescriptorTableShadow (80480960)[eax],0 .text:00016E14 ; 804c3a37 8d8860094880 lea ecx,nt!KeServiceDescriptorTableShadow (80480960)[eax] .text:00016E14 ; 804c3a3d 7542 jne nt!KeAddSystemServiceTable+0x6b (804c3a81) .text:00016E14 ; 804c3a3f 8b5508 mov edx,dword ptr [ebp+8] .text:00016E14 ; 804c3a42 8b7510 mov esi,dword ptr [ebp+10h] .text:00016E14 ; 804c3a45 8b7d14 mov .text:00016E17 push ebx .text:00016E18 mov ebx, [eax+ecx] ; KeServiceDescriptorTableShadow .text:00016E1B mov eax, ds:KeServiceDescriptorTable .text:00016E20 lea ecx, [eax-40000h] .text:00016E26 cmp ecx, ebx .text:00016E28 ja short loc_16E61 .text:00016E2A add eax, 40000h .text:00016E2F cmp eax, ebx .text:00016E31 jb short loc_16E61 .text:00016E33 push ebx ; VirtualAddress .text:00016E34 call ds:MmIsAddressValid .text:00016E3A cmp al, 1 .text:00016E3C jnz short loc_16E61 .text:00016E3E mov edx, ds:KeServiceDescriptorTable .text:00016E44 push esi .text:00016E45 push edi .text:00016E46 push 4 .text:00016E48 pop ecx .text:00016E49 mov edi, edx .text:00016E4B mov esi, ebx .text:00016E4D xor eax, eax .text:00016E4F repe cmpsd .text:00016E51 pop edi .text:00016E52 pop esi .text:00016E53 jnz short loc_16E61 .text:00016E55 mov eax, ebx .text:00016E57 sub eax, edx .text:00016E59 neg eax .text:00016E5B sbb eax, eax .text:00016E5D and eax, ebx .text:00016E5F jmp short loc_16E63 .text:00016E61 ; --------------------------------------------------------------------------- .text:00016E61 .text:00016E61 loc_16E61: ; CODE XREF: Get_KeServiceDescriptorTableShadow+1Ej .text:00016E61 ; Get_KeServiceDescriptorTableShadow+27j ... .text:00016E61 xor eax, eax .text:00016E63 .text:00016E63 loc_16E63: ; CODE XREF: Get_KeServiceDescriptorTableShadow+55j .text:00016E63 pop ebx .text:00016E64 pop ebp .text:00016E65 retn 4 .text:00016E65 Get_KeServiceDescriptorTableShadow endp 每个系统的不一样,一个传入的是0x1C,另外一个是0x1A |
|
板凳#
发布于:2009-06-22 22:52
lkd> x nt!keserviced*
8055d6c0 nt!KeServiceDescriptorTableShadow = <no type information> 8055d700 nt!KeServiceDescriptorTable = <no type information> lkd> dd 8055d700 8055d700 80505460 00000000 0000011c 805058d4 8055d710 00000000 00000000 00000000 00000000 8055d720 00000000 00000000 00000000 00000000 8055d730 00000000 00000000 00000000 00000000 8055d740 00000002 00002710 bf80c339 00000000 8055d750 b9c8ea80 b9f0c4a0 88ae7f9c 806f70c0 8055d760 00000000 00000000 ffeced30 ffffffff 8055d770 bdbeb870 01c9f33c 00000000 00000000 lkd> dd 80505460 80505460 805a5614 805f1ae8 805f531e 805f1b1a 80505470 805f5358 805f1b50 805f539c 805f53e0 80505480 806163cc 8061710e 805ecee6 805ecb3e 80505490 805d5b46 805d5af6 806169f2 805b6f7e 805054a0 8061600e 805a9a9e 805b1596 805d760a 805054b0 8050289c 80617100 80577ae6 80539be2 805054c0 8060f5dc 805bd4f8 805f5858 80624380 805054d0 805f9d68 805a5d02 806245d4 805a55b4 lkd> uf 805a5614 nt!NtAcceptConnectPort: 805a5614 689c000000 push 9Ch 805a5619 6850ab4d80 push offset nt!_real+0x118 (804dab50) 805a561e e86d75f9ff call nt!_SEH_prolog (8053cb90) 805a5623 64a124010000 mov eax,dword ptr fs:[00000124h] 805a5629 8a8040010000 mov al,byte ptr [eax+140h] 805a562f 884590 mov byte ptr [ebp-70h],al 805a5632 84c0 test al,al 805a5634 0f84b9010000 je nt!NtAcceptConnectPort+0x1df (805a57f3) xp sp3 |
|