winlogon!SignalManagerResetSignal函数分析之循环的次数和信号管理数组的->20h有关

第一部分:

kd> p

eax=00a02024 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efce2 esp=000ef7f4 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerValidateSignalDataQueue+0xee:

001b:009efce2 c20c00 ret 0Ch

kd> p

eax=00a02024 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f01ce esp=000ef804 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0xa2:

001b:009f01ce 3b7e1c cmp edi,dword ptr [esi+1Ch] ds:0023:0011830c=00000022

kd> p

eax=00a02024 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f01d1 esp=000ef804 ebp=000ef82c iopl=0 nv up ei ng nz na pe cy

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000287

winlogon!SignalManagerResetSignal+0xa5:

001b:009f01d1 7213 jb winlogon!SignalManagerResetSignal+0xba (009f01e6) [br=1]

kd> p

eax=00a02024 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f01e6 esp=000ef804 ebp=000ef82c iopl=0 nv up ei ng nz na pe cy

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000287

winlogon!SignalManagerResetSignal+0xba:

001b:009f01e6 8b4510 mov eax,dword ptr [ebp+10h] ss:0023:000ef83c={winlogon!g_xWinsrv_Sas_Signal (00a02024)}

kd> p

eax=00a02024 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f01e9 esp=000ef804 ebp=000ef82c iopl=0 nv up ei ng nz na pe cy

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000287

winlogon!SignalManagerResetSignal+0xbd:

001b:009f01e9 f6400402 test byte ptr [eax+4],2 ds:0023:00a02028=00

kd> p

eax=00a02024 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f01ed esp=000ef804 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0xc1:

001b:009f01ed 8b4620 mov eax,dword ptr [esi+20h] ds:0023:00118310=001413b8

kd> dd 001182f0

001182f0 001182c8 fffffffe 00000001 000001c4

00118300 00000120 00000000 000000ec 00000022

00118310 001413b8 00141448 00141670 00141700

00118320 00141790 00141820 001418b0 00141940

00118330 001419d0 00141a60 00141af0 00141b80

00118340 00141c10 00141ca0 00141d30 00141dc0

00118350 00141e50 00141ee0 00141f70 00142000

00118360 00142090 00142120 001421b0 00142240

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f01f0 esp=000ef804 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0xc4:

001b:009f01f0 0f84c2000000 je winlogon!SignalManagerResetSignal+0x18c (009f02b8) [br=1]

kd> p
eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f02b8 esp=000ef804 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0x18c:

001b:009f02b8 8324b800 and dword ptr [eax+edi*4],0 ds:0023:001413c4=00000000 重置信号3

kd> dd 001413b8

001413b8 00000000 00000000 00000000 00000000

001413c8 00000000 00000000 00000000 00000000

001413d8 00000000 00000000 00000000 00000000

第二部分:

winlogon!SignalManagerRemoveSignalDataQueue和信号管理数组的->24h有关

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f02bd esp=000ef800 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0x191:

001b:009f02bd 56 push esi

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009f02be esp=000ef7fc ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0x192:

001b:009f02be e827faffff call winlogon!SignalManagerRemoveSignalDataQueue (009efcea)

kd> t

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efcea esp=000ef7f8 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue:

001b:009efcea 8bff mov edi,edi

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efcec esp=000ef7f8 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x2:

001b:009efcec 55 push ebp

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efced esp=000ef7f4 ebp=000ef82c iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x3:

001b:009efced 8bec mov ebp,esp

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efcef esp=000ef7f4 ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x5:

001b:009efcef 56 push esi

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efcf0 esp=000ef7f0 ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x6:

001b:009efcf0 57 push edi

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=00000003

eip=009efcf1 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x7:

001b:009efcf1 8b7d08 mov edi,dword ptr [ebp+8] ss:0023:000ef7fc=001182f0

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=001182f0

eip=009efcf4 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0xa:

001b:009efcf4 85ff test edi,edi

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=001182f0

eip=009efcf6 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0xc:

001b:009efcf6 7516 jne winlogon!SignalManagerRemoveSignalDataQueue+0x24 (009efd0e) [br=1]

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=001182f0 edi=001182f0

eip=009efd0e esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x24:

001b:009efd0e 8b750c mov esi,dword ptr [ebp+0Ch] ss:0023:000ef800=00000003

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000003 edi=001182f0

eip=009efd11 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x27:

001b:009efd11 c1e604 shl esi,4

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=001182f0

eip=009efd14 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x2a:

001b:009efd14 eb23 jmp winlogon!SignalManagerRemoveSignalDataQueue+0x4f (009efd39)

kd> p

eax=001413b8 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=001182f0

eip=009efd39 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x4f:

001b:009efd39 8b4724 mov eax,dword ptr [edi+24h] ds:0023:00118314=00141448

kd> p

eax=00141448 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=001182f0

eip=009efd3c esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x52:

001b:009efd3c 837c060c00 cmp dword ptr [esi+eax+0Ch],0 ds:0023:00141484=00000000

kd> dd 001182f0

001182f0 001182c8 fffffffe 00000001 000001c4

00118300 00000120 00000000 000000ec 00000022

00118310 001413b8 00141448 00141670 00141700

00118320 00141790 00141820 001418b0 00141940

00118330 001419d0 00141a60 00141af0 00141b80

00118340 00141c10 00141ca0 00141d30 00141dc0

00118350 00141e50 00141ee0 00141f70 00142000

00118360 00142090 00142120 001421b0 00142240

kd> dd 00141448

00141448 00000000 00000000 00000000 00000000

00141458 00000000 00000000 00000000 00000000

00141468 00000000 00000000 00000000 00000000

00141478 00000000 00000000 00000000 00000000

00141488 00000000 00000000 00000000 00000000

00141498 00000000 00000000 00000000 00000000

cmp dword ptr [esi+eax+0Ch],0 关键处,比较是不是0

kd> p

eax=00141448 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=001182f0

eip=009efd41 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x57:

001b:009efd41 75d3 jne winlogon!SignalManagerRemoveSignalDataQueue+0x2c (009efd16) [br=0]

kd> p

eax=00141448 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=001182f0

eip=009efd43 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x59:

001b:009efd43 8b7f24 mov edi,dword ptr [edi+24h] ds:0023:00118314=00141448

kd> p

eax=00141448 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=00141448

eip=009efd46 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x5c:

001b:009efd46 33c0 xor eax,eax

kd> p

eax=00000000 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=00141448

eip=009efd48 esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerRemoveSignalDataQueue+0x5e:

001b:009efd48 03fe add edi,esi

kd> p

eax=00000000 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=00141478

eip=009efd4a esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x60:

001b:009efd4a ab stos dword ptr es:[edi] es:0023:00141478=00000000

kd> p

eax=00000000 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=0014147c

eip=009efd4b esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x61:

001b:009efd4b ab stos dword ptr es:[edi] es:0023:0014147c=00000000

kd> p

eax=00000000 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=00141480

eip=009efd4c esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x62:

001b:009efd4c ab stos dword ptr es:[edi] es:0023:00141480=00000000

kd> p

eax=00000000 ebx=009c6714 ecx=00000001 edx=000001c4 esi=00000030 edi=00141484

eip=009efd4d esp=000ef7ec ebp=000ef7f4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerRemoveSignalDataQueue+0x63:

001b:009efd4d ab stos dword ptr es:[edi] es:0023:00141484=00000000

kd> p

eax=00000000 ebx=00a02cc4 ecx=009f02d6 edx=000001c4 esi=00000003 edi=00141038

eip=009f02d6 esp=000ef830 ebp=000ef9dc iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!SignalManagerResetSignal+0x1aa:

001b:009f02d6 c20c00 ret 0Ch

kd> p

eax=00000000 ebx=00a02cc4 ecx=009f02d6 edx=000001c4 esi=00000003 edi=00141038

eip=009ef27c esp=000ef840 ebp=000ef9dc iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

winlogon!StateMachineRun+0x49c:

001b:009ef27c ff45f0 inc dword ptr [ebp-10h] ss:0023:000ef9cc=00000000

第三部分:

循环第二次:

kd> p

eax=0000000d ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=0000000d edi=00141038

eip=009ef271 esp=000ef840 ebp=000ef9dc iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!StateMachineRun+0x491:

001b:009ef271 ff3481 push dword ptr [ecx+eax*4] ds:0023:00a03e6c={winlogon!g_xWinsrv_Kill_Scrnsaver_Signal (00a0209c)}

kd> p

eax=0000000d ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=0000000d edi=00141038

eip=009ef274 esp=000ef83c ebp=000ef9dc iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!StateMachineRun+0x494:

001b:009ef274 50 push eax

kd> p

eax=0000000d ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=0000000d edi=00141038

eip=009ef275 esp=000ef838 ebp=000ef9dc iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!StateMachineRun+0x495:

001b:009ef275 ff37 push dword ptr [edi] ds:0023:00141038=001182f0

kd> p

eax=0000000d ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=0000000d edi=00141038

eip=009ef277 esp=000ef834 ebp=000ef9dc iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!StateMachineRun+0x497:

001b:009ef277 e8b00e0000 call winlogon!SignalManagerResetSignal (009f012c)

kd> t

eax=0000000d ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=0000000d edi=00141038

eip=009f012c esp=000ef830 ebp=000ef9dc iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerResetSignal:

001b:009f012c 6a08 push 8

kd> dd 000ef830

000ef830 009ef27c 001182f0 0000000d 00a0209c

循环第二次:0000000d

kd> u 00a0209c

winlogon!g_xWinsrv_Kill_Scrnsaver_Signal:

00a0209c 042a add al,2Ah

00a0209e 9c pushfd

00a0209f 0000 add byte ptr [eax],al

00a020a1 0000 add byte ptr [eax],al

00a020a3 000d000000e4 add byte ptr ds:[0E4000000h],cl

00a020a9 299c0000000000 sub dword ptr [eax+eax],ebx

00a020b0 0e push cs

00a020b1 0000 add byte ptr [eax],al

kd> bp winlogon!SignalManagerResetSignal

kd> g

Breakpoint 28 hit

eax=0000001f ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=0000001f edi=00141038

eip=009f012c esp=000ef830 ebp=000ef9dc iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

winlogon!SignalManagerResetSignal:

001b:009f012c 6a08 push 8

kd> dd 000ef830

000ef830 009ef27c 001182f0 0000001f 00a02174

000ef840 00000000 009c2f5c 00a0400c 00142a68

000ef850 00000108 00a02cc4 00000000 00141038

000ef860 00a046f8 00000000 00000000 00000108

000ef870 00000000 00000000 00000000 00000000

000ef880 00000000 00000007 00142b38 0000010c

000ef890 00a032f4 00000000 00141038 00a046f8

000ef8a0 00b60de0 00000000 0000010c 00000000

循环第三次:0000001f

kd> dd 00a02cc4

00a02cc4 009c2290 00000000 009d4d1e 009d4dd8

00a02cd4 00000010 00a02bf0 00000005 00a02cb0

00a02ce4 0000001c 00000000 fffffffe 00000000

00a02cf4 009c2264 009d636f 00000000 00000000

00a02d04 00000001 00a02ce8 00000000 00000000

00a02d14 0000001d 00000000 fffffffe 00000000

00a02d24 009c2238 009d4f39 00000000 00000000

00a02d34 00000001 00a02d18 00000000 00000000

kd> dd 00a02cb0

00a02cb0 00000003 0000000d 0000001f 00000006

00a02cc0 00000011 009c2290 00000000 009d4d1e

kd> g

Breakpoint 28 hit

eax=00000006 ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=00000006 edi=00141038

eip=009f012c esp=000ef830 ebp=000ef9dc iopl=0 nv up ei ng nz ac pe cy

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000297

winlogon!SignalManagerResetSignal:

001b:009f012c 6a08 push 8

kd> dd 000ef830

000ef830 009ef27c 001182f0 00000006 00a02048

000ef840 00000000 009c2f5c 00a0400c 00142a68

000ef850 00000108 00a02cc4 00000000 00141038

000ef860 00a046f8 00000000 00000000 00000108

000ef870 00000000 00000000 00000000 00000000

000ef880 00000000 00000007 00142b38 0000010c

000ef890 00a032f4 00000000 00141038 00a046f8

000ef8a0 00b60de0 00000000 0000010c 00000000

循环第四次:00000006

kd> g

Breakpoint 28 hit

eax=00000011 ebx=00a02cc4 ecx=00a03e38 edx=00a02bf0 esi=00000011 edi=00141038

eip=009f012c esp=000ef830 ebp=000ef9dc iopl=0 nv up ei pl nz ac pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000216

winlogon!SignalManagerResetSignal:

001b:009f012c 6a08 push 8

kd> dd 000ef830

000ef830 009ef27c 001182f0 00000011 00a020cc

000ef840 00000000 009c2f5c 00a0400c 00142a68

循环第五次:00000011

winlogon!SignalManagerResetSignal

相关推荐
sitelist5 天前
win7-winlogon!StateMachineRun函数分析之信号处理部分得到信号等待信号重置信号
signalmanagerw·waitforsignal·getsignal·resetsignal