.text:00012208 sub_12208 proc near ; CODE XREF: sub_12612+12p
.text:00012208
.text:00012208 Event = _KEVENT ptr -24h
.text:00012208 IoStatusBlock = _IO_STATUS_BLOCK ptr -14h
.text:00012208 OutputBuffer = byte ptr -0Ch
.text:00012208 DeviceObject = dword ptr -8
.text:00012208 Object = dword ptr -4
.text:00012208
.text:00012208 mov edi, edi
.text:0001220A push ebp
.text:0001220B mov ebp, esp
.text:0001220D sub esp, 24h
.text:00012210 lea eax, [ebp+DeviceObject]
.text:00012213 push eax ; DeviceObject
.text:00012214 lea eax, [ebp+Object]
.text:00012217 push eax ; FileObject
.text:00012218 push 80h ; DesiredAccess
.text:0001221D push offset ObjectName ; ObjectName
.text:00012222 call ds:IoGetDeviceObjectPointer
.text:00012228 test eax, eax
.text:0001222A jge short loc_12231
.text:0001222C xor eax, eax
.text:0001222E inc eax
.text:0001222F leave
.text:00012230 retn
这个是IDA中显示的结果.其中
.text:00012208 mov edi, edi
.text:0001220A push ebp
.text:0001220B mov ebp, esp
.text:0001220D sub esp, 24h
.text:00012210 lea eax, [ebp+DeviceObject]
也就是
.text:00012208 mov edi, edi
.text:0001220A push ebp
.text:0001220B mov ebp, esp
.text:0001220D sub esp, 24h
.text:00012210 lea eax, [ebp-8]
可是.我怎么都不理解啊.刚把mov ebp,esp 然后抬高栈顶.也就是分配了栈空间.可是ebp-8不就正好落到了这新分配的空间里么.这新分配空间并没有初始化啊.那么[ebp-8]又是多少呢?怎么回事啊?在线求解啊..
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课