反汇编KiSystemCall64
kd> uf KiSystemCall64
Flow analysis was incomplete, some code may be missing
nt!KiSystemCall64:
fffff800`040e1640 0f01f8 swapgs
fffff800`040e1643 654889242510000000 mov qword ptr gs:[10h],rsp
fffff800`040e164c 65488b2425a8010000 mov rsp,qword ptr gs:[1A8h]
fffff800`040e1655 6a2b push 2Bh
fffff800`040e1657 65ff342510000000 push qword ptr gs:[10h]
fffff800`040e165f 4153 push r11
fffff800`040e1661 6a33 push 33h
fffff800`040e1663 51 push rcx
fffff800`040e1664 498bca mov rcx,r10
fffff800`040e1667 4883ec08 sub rsp,8
fffff800`040e166b 55 push rbp
fffff800`040e166c 4881ec58010000 sub rsp,158h
fffff800`040e1673 488dac2480000000 lea rbp,[rsp+80h]
fffff800`040e167b 48899dc0000000 mov qword ptr [rbp+0C0h],rbx
fffff800`040e1682 4889bdc8000000 mov qword ptr [rbp+0C8h],rdi
fffff800`040e1689 4889b5d0000000 mov qword ptr [rbp+0D0h],rsi
fffff800`040e1690 c645ab02 mov byte ptr [rbp-55h],2
fffff800`040e1694 65488b1c2588010000 mov rbx,qword ptr gs:[188h]
fffff800`040e169d 0f0d8bd8010000 prefetchw [rbx+1D8h]
fffff800`040e16a4 0fae5dac stmxcsr dword ptr [rbp-54h]
fffff800`040e16a8 650fae142580010000 ldmxcsr dword ptr gs:[180h]
fffff800`040e16b1 807b0300 cmp byte ptr [rbx+3],0
fffff800`040e16b5 66c785800000000000 mov word ptr [rbp+80h],0
fffff800`040e16be 0f848c000000 je nt!KiSystemCall64+0x110 (fffff800`040e1750) Branch
nt!KiSystemCall64+0x84:
fffff800`040e16c4 488945b0 mov qword ptr [rbp-50h],rax
fffff800`040e16c8 48894db8 mov qword ptr [rbp-48h],rcx
fffff800`040e16cc 488955c0 mov qword ptr [rbp-40h],rdx
fffff800`040e16d0 f6430303 test byte ptr [rbx+3],3
fffff800`040e16d4 4c8945c8 mov qword ptr [rbp-38h],r8
fffff800`040e16d8 4c894dd0 mov qword ptr [rbp-30h],r9
fffff800`040e16dc 7405 je nt!KiSystemCall64+0xa3 (fffff800`040e16e3) Branch
nt!KiSystemCall64+0x9e:
fffff800`040e16de e80d140000 call nt!KiSaveDebugRegisterState (fffff800`040e2af0)
nt!KiSystemCall64+0xa3:
fffff800`040e16e3 f6430380 test byte ptr [rbx+3],80h
fffff800`040e16e7 7442 je nt!KiSystemCall64+0xeb (fffff800`040e172b) Branch
nt!KiSystemCall64+0xa9:
fffff800`040e16e9 b9020100c0 mov ecx,0C0000102h
fffff800`040e16ee 0f32 rdmsr
fffff800`040e16f0 48c1e220 shl rdx,20h
fffff800`040e16f4 480bc2 or rax,rdx
fffff800`040e16f7 483983b8000000 cmp qword ptr [rbx+0B8h],rax
fffff800`040e16fe 742b je nt!KiSystemCall64+0xeb (fffff800`040e172b) Branch
nt!KiSystemCall64+0xc0:
fffff800`040e1700 483983b0010000 cmp qword ptr [rbx+1B0h],rax
fffff800`040e1707 7422 je nt!KiSystemCall64+0xeb (fffff800`040e172b) Branch
nt!KiSystemCall64+0xc9:
fffff800`040e1709 488b93b8010000 mov rdx,qword ptr [rbx+1B8h]
fffff800`040e1710 0fba6b4c0b bts dword ptr [rbx+4Ch],0Bh
fffff800`040e1715 66ff8bc4010000 dec word ptr [rbx+1C4h]
fffff800`040e171c 48898280000000 mov qword ptr [rdx+80h],rax
fffff800`040e1723 fb sti
fffff800`040e1724 e8170b0000 call nt!KiUmsCallEntry (fffff800`040e2240)
fffff800`040e1729 eb0f jmp nt!KiSystemCall64+0xfa (fffff800`040e173a) Branch
nt!KiSystemCall64+0xeb:
fffff800`040e172b f6430340 test byte ptr [rbx+3],40h
fffff800`040e172f 7409 je nt!KiSystemCall64+0xfa (fffff800`040e173a) Branch
nt!KiSystemCall64+0xf1:
fffff800`040e1731 f00fbaab0001000008 lock bts dword ptr [rbx+100h],8
nt!KiSystemCall64+0xfa:
fffff800`040e173a 488b45b0 mov rax,qword ptr [rbp-50h]
fffff800`040e173e 488b4db8 mov rcx,qword ptr [rbp-48h]
fffff800`040e1742 488b55c0 mov rdx,qword ptr [rbp-40h]
fffff800`040e1746 4c8b45c8 mov r8,qword ptr [rbp-38h]
fffff800`040e174a 4c8b4dd0 mov r9,qword ptr [rbp-30h]
fffff800`040e174e 6690 xchg ax,ax
nt!KiSystemCall64+0x110:
fffff800`040e1750 fb sti
fffff800`040e1751 48898be0010000 mov qword ptr [rbx+1E0h],rcx
fffff800`040e1758 8983f8010000 mov dword ptr [rbx+1F8h],eax
fffff800`040e175e 4889a3d8010000 mov qword ptr [rbx+1D8h],rsp
fffff800`040e1765 8bf8 mov edi,eax
fffff800`040e1767 c1ef07 shr edi,7
fffff800`040e176a 83e720 and edi,20h
fffff800`040e176d 25ff0f0000 and eax,0FFFh
nt!KiSystemServiceRepeat:
fffff800`040e1772 4c8d15c7202300 lea r10,[nt!KeServiceDescriptorTable (fffff800`04313840)]
fffff800`040e1779 4c8d1d00212300 lea r11,[nt!KeServiceDescriptorTableShadow (fffff800`04313880)]
fffff800`040e1780 f7830001000080000000 test dword ptr [rbx+100h],80h
fffff800`040e178a 4d0f45d3 cmovne r10,r11
fffff800`040e178e 423b441710 cmp eax,dword ptr [rdi+r10+10h]
fffff800`040e1793 0f83e9020000 jae nt!KiSystemServiceExit+0x1a7 (fffff800`040e1a82) Branch
nt!KiSystemServiceRepeat+0x27:
fffff800`040e1799 4e8b1417 mov r10,qword ptr [rdi+r10]
fffff800`040e179d 4d631c82 movsxd r11,dword ptr [r10+rax*4]
fffff800`040e17a1 498bc3 mov rax,r11
fffff800`040e17a4 49c1fb04 sar r11,4
fffff800`040e17a8 4d03d3 add r10,r11
fffff800`040e17ab 83ff20 cmp edi,20h
fffff800`040e17ae 7550 jne nt!KiSystemServiceGdiTebAccess+0x49 (fffff800`040e1800) Branch
nt!KiSystemServiceRepeat+0x3e:
fffff800`040e17b0 4c8b9bb8000000 mov r11,qword ptr [rbx+0B8h]
fffff800`040e17b7 4183bb4017000000 cmp dword ptr [r11+1740h],0
fffff800`040e17bf 743f je nt!KiSystemServiceGdiTebAccess+0x49 (fffff800`040e1800) Branch
nt!KiSystemServiceGdiTebAccess+0xa:
fffff800`040e17c1 488945b0 mov qword ptr [rbp-50h],rax
fffff800`040e17c5 48894db8 mov qword ptr [rbp-48h],rcx
fffff800`040e17c9 488955c0 mov qword ptr [rbp-40h],rdx
fffff800`040e17cd 498bd8 mov rbx,r8
fffff800`040e17d0 498bf9 mov rdi,r9
fffff800`040e17d3 498bf2 mov rsi,r10
fffff800`040e17d6 ff15341f2300 call qword ptr [nt!KeGdiFlushUserBatch (fffff800`04313710)]
fffff800`040e17dc 488b45b0 mov rax,qword ptr [rbp-50h]
fffff800`040e17e0 488b4db8 mov rcx,qword ptr [rbp-48h]
fffff800`040e17e4 488b55c0 mov rdx,qword ptr [rbp-40h]
fffff800`040e17e8 4c8bc3 mov r8,rbx
fffff800`040e17eb 4c8bcf mov r9,rdi
fffff800`040e17ee 4c8bd6 mov r10,rsi
fffff800`040e17f1 666666666666660f1f840000000000 nop word ptr [rax+rax]
nt!KiSystemServiceGdiTebAccess+0x49:
fffff800`040e1800 83e00f and eax,0Fh
fffff800`040e1803 0f84b7000000 je nt!KiSystemServiceCopyEnd (fffff800`040e18c0) Branch
nt!KiSystemServiceGdiTebAccess+0x52:
fffff800`040e1809 c1e003 shl eax,3
fffff800`040e180c 488d642490 lea rsp,[rsp-70h]
fffff800`040e1811 488d7c2418 lea rdi,[rsp+18h]
fffff800`040e1816 488bb500010000 mov rsi,qword ptr [rbp+100h]
fffff800`040e181d 488d7620 lea rsi,[rsi+20h]
fffff800`040e1821 f685f000000001 test byte ptr [rbp+0F0h],1
fffff800`040e1828 7416 je nt!KiSystemServiceGdiTebAccess+0x89 (fffff800`040e1840) Branch
nt!KiSystemServiceGdiTebAccess+0x73:
fffff800`040e182a 483b35cf172300 cmp rsi,qword ptr [nt!MmUserProbeAddress (fffff800`04313000)]
fffff800`040e1831 480f4335c7172300 cmovae rsi,qword ptr [nt!MmUserProbeAddress (fffff800`04313000)]
fffff800`040e1839 0f1f8000000000 nop dword ptr [rax]
nt!KiSystemServiceGdiTebAccess+0x89:
fffff800`040e1840 4c8d1d79000000 lea r11,[nt!KiSystemServiceCopyEnd (fffff800`040e18c0)]
fffff800`040e1847 4c2bd8 sub r11,rax
fffff800`040e184a 41ffe3 jmp r11
nt!KiSystemServiceCopyEnd:
fffff800`040e18c0 f705be7d180040000000 test dword ptr [nt!PerfGlobalGroupMask+0x8 (fffff800`04269688)],40h
fffff800`040e18ca 0f8550020000 jne nt!KiSystemServiceExit+0x245 (fffff800`040e1b20) Branch
nt!KiSystemServiceCopyEnd+0x10:
fffff800`040e18d0 41ffd2 call r10
nt!KiSystemServiceCopyEnd+0x13:
fffff800`040e18d3 65ff042538220000 inc dword ptr gs:[2238h]
nt!KiSystemServiceExit:
fffff800`040e18db 488b9dc0000000 mov rbx,qword ptr [rbp+0C0h]
fffff800`040e18e2 488bbdc8000000 mov rdi,qword ptr [rbp+0C8h]
fffff800`040e18e9 488bb5d0000000 mov rsi,qword ptr [rbp+0D0h]
fffff800`040e18f0 654c8b1c2588010000 mov r11,qword ptr gs:[188h]
fffff800`040e18f9 f685f000000001 test byte ptr [rbp+0F0h],1
fffff800`040e1900 0f844f010000 je nt!KiSystemServiceExit+0x17a (fffff800`040e1a55) Branch
nt!KiSystemServiceExit+0x2b:
fffff800`040e1906 440f20c1 mov rcx,cr8
fffff800`040e190a 410a8bf0010000 or cl,byte ptr [r11+1F0h]
fffff800`040e1911 410b8bc4010000 or ecx,dword ptr [r11+1C4h]
fffff800`040e1918 0f85ce010000 jne nt!KiSystemServiceExit+0x211 (fffff800`040e1aec) Branch
nt!KiSystemServiceExit+0x43:
fffff800`040e191e fa cli
fffff800`040e191f 65488b0c2588010000 mov rcx,qword ptr gs:[188h]
fffff800`040e1928 80797a00 cmp byte ptr [rcx+7Ah],0
fffff800`040e192c 7457 je nt!KiSystemServiceExit+0xaa (fffff800`040e1985) Branch
nt!KiSystemServiceExit+0x53:
fffff800`040e192e 488945b0 mov qword ptr [rbp-50h],rax
fffff800`040e1932 33c0 xor eax,eax
fffff800`040e1934 488945b8 mov qword ptr [rbp-48h],rax
fffff800`040e1938 488945c0 mov qword ptr [rbp-40h],rax
fffff800`040e193c 488945c8 mov qword ptr [rbp-38h],rax
fffff800`040e1940 488945d0 mov qword ptr [rbp-30h],rax
fffff800`040e1944 488945d8 mov qword ptr [rbp-28h],rax
fffff800`040e1948 488945e0 mov qword ptr [rbp-20h],rax
fffff800`040e194c 660fefc0 pxor xmm0,xmm0
fffff800`040e1950 0f2945f0 movaps xmmword ptr [rbp-10h],xmm0
fffff800`040e1954 0f294500 movaps xmmword ptr [rbp],xmm0
fffff800`040e1958 0f294510 movaps xmmword ptr [rbp+10h],xmm0
fffff800`040e195c 0f294520 movaps xmmword ptr [rbp+20h],xmm0
fffff800`040e1960 0f294530 movaps xmmword ptr [rbp+30h],xmm0
fffff800`040e1964 0f294540 movaps xmmword ptr [rbp+40h],xmm0
fffff800`040e1968 b901000000 mov ecx,1
fffff800`040e196d 440f22c1 mov cr8,rcx
fffff800`040e1971 fb sti
fffff800`040e1972 e85947ffff call nt!KiInitiateUserApc (fffff800`040d60d0)
fffff800`040e1977 fa cli
fffff800`040e1978 b900000000 mov ecx,0
fffff800`040e197d 440f22c1 mov cr8,rcx
fffff800`040e1981 488b45b0 mov rax,qword ptr [rbp-50h]
nt!KiSystemServiceExit+0xaa:
fffff800`040e1985 65488b0c2588010000 mov rcx,qword ptr gs:[188h]
fffff800`040e198e f70100000240 test dword ptr [rcx],40020000h
fffff800`040e1994 742e je nt!KiSystemServiceExit+0xe9 (fffff800`040e19c4) Branch
nt!KiSystemServiceExit+0xbb:
fffff800`040e1996 488945b0 mov qword ptr [rbp-50h],rax
fffff800`040e199a f6410202 test byte ptr [rcx+2],2
fffff800`040e199e 740e je nt!KiSystemServiceExit+0xd3 (fffff800`040e19ae) Branch
nt!KiSystemServiceExit+0xc5:
fffff800`040e19a0 e87b9f0900 call nt!KiCopyCounters (fffff800`0417b920)
fffff800`040e19a5 65488b0c2588010000 mov rcx,qword ptr gs:[188h]
nt!KiSystemServiceExit+0xd3:
fffff800`040e19ae f6410340 test byte ptr [rcx+3],40h
fffff800`040e19b2 740c je nt!KiSystemServiceExit+0xe5 (fffff800`040e19c0) Branch
nt!KiSystemServiceExit+0xd9:
fffff800`040e19b4 488d6580 lea rsp,[rbp-80h]
fffff800`040e19b8 4833c9 xor rcx,rcx
fffff800`040e19bb e8000b0000 call nt!KiUmsExit (fffff800`040e24c0)
nt!KiSystemServiceExit+0xe5:
fffff800`040e19c0 488b45b0 mov rax,qword ptr [rbp-50h]
nt!KiSystemServiceExit+0xe9:
fffff800`040e19c4 0fae55ac ldmxcsr dword ptr [rbp-54h]
fffff800`040e19c8 4d33d2 xor r10,r10
fffff800`040e19cb 6683bd8000000000 cmp word ptr [rbp+80h],0
fffff800`040e19d3 743e je nt!KiSystemServiceExit+0x138 (fffff800`040e1a13) Branch
nt!KiSystemServiceExit+0xfa:
fffff800`040e19d5 488945b0 mov qword ptr [rbp-50h],rax
fffff800`040e19d9 e8a2100000 call nt!KiRestoreDebugRegisterState (fffff800`040e2a80)
fffff800`040e19de 65488b042588010000 mov rax,qword ptr gs:[188h]
fffff800`040e19e7 488b4070 mov rax,qword ptr [rax+70h]
fffff800`040e19eb 488b8000010000 mov rax,qword ptr [rax+100h]
fffff800`040e19f2 480bc0 or rax,rax
fffff800`040e19f5 7418 je nt!KiSystemServiceExit+0x134 (fffff800`040e1a0f) Branch
nt!KiSystemServiceExit+0x11c:
fffff800`040e19f7 6683bdf000000033 cmp word ptr [rbp+0F0h],33h
fffff800`040e19ff 750e jne nt!KiSystemServiceExit+0x134 (fffff800`040e1a0f) Branch
nt!KiSystemServiceExit+0x126:
fffff800`040e1a01 4c8b95e8000000 mov r10,qword ptr [rbp+0E8h]
fffff800`040e1a08 488985e8000000 mov qword ptr [rbp+0E8h],rax
nt!KiSystemServiceExit+0x134:
fffff800`040e1a0f 488b45b0 mov rax,qword ptr [rbp-50h]
nt!KiSystemServiceExit+0x138:
fffff800`040e1a13 4c8b8500010000 mov r8,qword ptr [rbp+100h]
fffff800`040e1a1a 4c8b8dd8000000 mov r9,qword ptr [rbp+0D8h]
fffff800`040e1a21 33d2 xor edx,edx
fffff800`040e1a23 660fefc0 pxor xmm0,xmm0
fffff800`040e1a27 660fefc9 pxor xmm1,xmm1
fffff800`040e1a2b 660fefd2 pxor xmm2,xmm2
fffff800`040e1a2f 660fefdb pxor xmm3,xmm3
fffff800`040e1a33 660fefe4 pxor xmm4,xmm4
fffff800`040e1a37 660fefed pxor xmm5,xmm5
fffff800`040e1a3b 488b8de8000000 mov rcx,qword ptr [rbp+0E8h]
fffff800`040e1a42 4c8b9df8000000 mov r11,qword ptr [rbp+0F8h]
fffff800`040e1a49 498be9 mov rbp,r9
fffff800`040e1a4c 498be0 mov rsp,r8
fffff800`040e1a4f 0f01f8 swapgs
fffff800`040e1a52 480f07 sysretq
nt!KiSystemServiceExit+0x17a:
fffff800`040e1a55 488b95b8000000 mov rdx,qword ptr [rbp+0B8h]
fffff800`040e1a5c 498993d8010000 mov qword ptr [r11+1D8h],rdx
fffff800`040e1a63 8a55a8 mov dl,byte ptr [rbp-58h]
fffff800`040e1a66 418893f6010000 mov byte ptr [r11+1F6h],dl
fffff800`040e1a6d fa cli
fffff800`040e1a6e 488be5 mov rsp,rbp
fffff800`040e1a71 488badd8000000 mov rbp,qword ptr [rbp+0D8h]
fffff800`040e1a78 488ba42400010000 mov rsp,qword ptr [rsp+100h]
fffff800`040e1a80 fb sti
fffff800`040e1a81 c3 ret
nt!KiSystemServiceExit+0x1a7:
fffff800`040e1a82 83ff20 cmp edi,20h
fffff800`040e1a85 755b jne nt!KiSystemServiceExit+0x207 (fffff800`040e1ae2) Branch
nt!KiSystemServiceExit+0x1ac:
fffff800`040e1a87 894580 mov dword ptr [rbp-80h],eax
fffff800`040e1a8a 48894d88 mov qword ptr [rbp-78h],rcx
fffff800`040e1a8e 48895590 mov qword ptr [rbp-70h],rdx
fffff800`040e1a92 4c894598 mov qword ptr [rbp-68h],r8
fffff800`040e1a96 4c894da0 mov qword ptr [rbp-60h],r9
fffff800`040e1a9a e85184ffff call nt!KiConvertToGuiThread (fffff800`040d9ef0)
fffff800`040e1a9f 0bc0 or eax,eax
fffff800`040e1aa1 8b4580 mov eax,dword ptr [rbp-80h]
fffff800`040e1aa4 488b4d88 mov rcx,qword ptr [rbp-78h]
fffff800`040e1aa8 488b5590 mov rdx,qword ptr [rbp-70h]
fffff800`040e1aac 4c8b4598 mov r8,qword ptr [rbp-68h]
fffff800`040e1ab0 4c8b4da0 mov r9,qword ptr [rbp-60h]
fffff800`040e1ab4 4889a3d8010000 mov qword ptr [rbx+1D8h],rsp
fffff800`040e1abb 0f84b1fcffff je nt!KiSystemServiceRepeat (fffff800`040e1772) Branch
nt!KiSystemServiceExit+0x1e6:
fffff800`040e1ac1 488d3dd81d2300 lea rdi,[nt!KeServiceDescriptorTableShadow+0x20 (fffff800`043138a0)]
fffff800`040e1ac8 8b7710 mov esi,dword ptr [rdi+10h]
fffff800`040e1acb 488b3f mov rdi,qword ptr [rdi]
fffff800`040e1ace 3bc6 cmp eax,esi
fffff800`040e1ad0 7310 jae nt!KiSystemServiceExit+0x207 (fffff800`040e1ae2) Branch
nt!KiSystemServiceExit+0x1f7:
fffff800`040e1ad2 488d3cb7 lea rdi,[rdi+rsi*4]
fffff800`040e1ad6 0fbe0438 movsx eax,byte ptr [rax+rdi]
fffff800`040e1ada 0bc0 or eax,eax
fffff800`040e1adc 0f8ef9fdffff jle nt!KiSystemServiceExit (fffff800`040e18db) Branch
nt!KiSystemServiceExit+0x207:
fffff800`040e1ae2 b81c0000c0 mov eax,0C000001Ch
fffff800`040e1ae7 e9effdffff jmp nt!KiSystemServiceExit (fffff800`040e18db) Branch
nt!KiSystemServiceExit+0x211:
fffff800`040e1aec b94a000000 mov ecx,4Ah
fffff800`040e1af1 4533c9 xor r9d,r9d
fffff800`040e1af4 450f20c0 mov r8,cr8
fffff800`040e1af8 450bc0 or r8d,r8d
fffff800`040e1afb 7514 jne nt!KiSystemServiceExit+0x236 (fffff800`040e1b11) Branch
nt!KiSystemServiceExit+0x222:
fffff800`040e1afd b901000000 mov ecx,1
fffff800`040e1b02 450fb683f0010000 movzx r8d,byte ptr [r11+1F0h]
fffff800`040e1b0a 458b8bc4010000 mov r9d,dword ptr [r11+1C4h]
nt!KiSystemServiceExit+0x236:
fffff800`040e1b11 488b95e8000000 mov rdx,qword ptr [rbp+0E8h]
fffff800`040e1b18 4c8bd5 mov r10,rbp
fffff800`040e1b1b e860000000 call nt!KiBugCheckDispatch (fffff800`040e1b80)
nt!KiSystemServiceExit+0x245:
fffff800`040e1b20 4883ec50 sub rsp,50h
fffff800`040e1b24 48894c2420 mov qword ptr [rsp+20h],rcx
fffff800`040e1b29 4889542428 mov qword ptr [rsp+28h],rdx
fffff800`040e1b2e 4c89442430 mov qword ptr [rsp+30h],r8
fffff800`040e1b33 4c894c2438 mov qword ptr [rsp+38h],r9
fffff800`040e1b38 4c89542440 mov qword ptr [rsp+40h],r10
fffff800`040e1b3d 498bca mov rcx,r10
fffff800`040e1b40 e86b310e00 call nt!PerfInfoLogSysCallEntry (fffff800`041c4cb0)
fffff800`040e1b45 488b4c2420 mov rcx,qword ptr [rsp+20h]
fffff800`040e1b4a 488b542428 mov rdx,qword ptr [rsp+28h]
fffff800`040e1b4f 4c8b442430 mov r8,qword ptr [rsp+30h]
fffff800`040e1b54 4c8b4c2438 mov r9,qword ptr [rsp+38h]
fffff800`040e1b59 4c8b542440 mov r10,qword ptr [rsp+40h]
fffff800`040e1b5e 4883c450 add rsp,50h
fffff800`040e1b62 41ffd2 call r10
fffff800`040e1b65 488945b0 mov qword ptr [rbp-50h],rax
fffff800`040e1b69 488bc8 mov rcx,rax
fffff800`040e1b6c e8df300e00 call nt!PerfInfoLogSysCallExit (fffff800`041c4c50)
fffff800`040e1b71 488b45b0 mov rax,qword ptr [rbp-50h]
fffff800`040e1b75 e959fdffff jmp nt!KiSystemServiceCopyEnd+0x13 (fffff800`040e18d3) Branch
在KiSystemServiceRepeat中找到KeServiceDescriptorTable
nt!KiSystemServiceRepeat:
fffff800`040e1772 4c8d15c7202300 lea r10,[nt!KeServiceDescriptorTable (fffff800`04313840)]
fffff800`040e1779 4c8d1d00212300 lea r11,[nt!KeServiceDescriptorTableShadow (fffff800`04313880)]
fffff800`040e1780 f7830001000080000000 test dword ptr [rbx+100h],80h
fffff800`040e178a 4d0f45d3 cmovne r10,r11
fffff800`040e178e 423b441710 cmp eax,dword ptr [rdi+r10+10h]
fffff800`040e1793 0f83e9020000 jae nt!KiSystemServiceExit+0x1a7 (fffff800`040e1a82) Branch
读取MSR( C0000082寄存器 )
MSR的中文全称是“特别模块寄存器”(model specific register),它控制 CPU 的工作环境和标示 CPU 的工作状态等信息(例如倍频、最大 TDP、 危险警报温度),它能够读取,也能够写入,但是无论读取还是写入,都只能在 Ring 0 下 进行,KiSystemCall64 的地址可以通过读取C0000082 寄存器得到。
kd> rdmsr c0000082
msr[c0000082] = fffff800`040e1640
kd> u fffff800`040e1640
nt!KiSystemCall64:
fffff800`040e1640 0f01f8 swapgs
fffff800`040e1643 654889242510000000 mov qword ptr gs:[10h],rsp
fffff800`040e164c 65488b2425a8010000 mov rsp,qword ptr gs:[1A8h]
fffff800`040e1655 6a2b push 2Bh
fffff800`040e1657 65ff342510000000 push qword ptr gs:[10h]
fffff800`040e165f 4153 push r11
fffff800`040e1661 6a33 push 33h
fffff800`040e1663 51 push rcx