阅读:2096回复:0
请教IOPM和Ke386QueryIoAccessMap???
1,IOPM中0表示允许对应端口的IO,1表示禁止对应端口的IO??
2,还一个问题,请问谁对BOOLEAN Ke386QueryIoAccessMap(ULONG MapNumber, PKIO_ACCESS_MAP IoAccessMap);比较了解,帮看下下面的代码? .text:000120E4 mov esi, ecx //ecx指向一段buf .text:000120E6 mov edi, esi .text:000120E8 mov ecx, 800h .text:000120ED rep stosd //如果有下面4行,则程序中对低256个端口IO时还有异常 //如果去掉这4行,则对低256个端口也可IO .text:000120EF mov edi, esi .text:000120F1 mov eax, 0FFFFFFFFh .text:000120F6 mov ecx, 8 .text:000120FB rep stosd .text:000120FD lea eax, [esi+2000h] .text:00012103 push eax .text:00012104 push 1 .text:00012106 call Ke386QueryIoAccessMap 后面有Ke386SetIoAccessMap把esi+2000h做参数IoAccessMap设置了。 我想问的问题是.text:000120FD lea eax, [esi+2000h]这句把esi+2000h当作 Ke386QueryIoAccessMap的一个参数,为什么调用这个函数前对这个buf的初始化起作用呢?? Ke386QueryIoAccessMap里不是把esi+2000h开始的2000h字节都设置了吗? |
|