请教汇编基础问题
发表于:
2009-12-18 18:47
3304
.code
iidtable:
dd iattable-iidtable
dd 12345678h
dd 87654321h
dd dll-iidtable
dd iattable-iidtable
dd 0
iattable:
PsCreateSystemThread dd _PsCreateSystemThread-iidtable-2
KeServiceDescriptorTable dd _KeServiceDescriptorTable-iidtable-2
MmGetSystemRoutineAddress dd _MmGetSystemRoutineAddress-iidtable-2
dd 90h
_PsCreateSystemThread db 'PsCreateSystemThread',0
_KeServiceDescriptorTable db 'KeServiceDescriptorTable',0
_MmGetSystemRoutineAddress db 'MmGetSystemRoutineAddress',0
dll db 'ntoskrnl.exe',0
NtOpenThread_addr dd ?
;--------------省略中间过程------------------------------------
push offset $CCOUNTED_UNICODE_STRING("NtOpenProcess")
call MmGetSystemRoutineAddress
请教一下:
1.
NtOpenThread_addr dd ?
上面这个变量定义在.code段是什么原因?不是应该定义在.data段吗?
2.
push offset $CCOUNTED_UNICODE_STRING("NtOpenProcess") call MmGetSystemRoutineAddress
MmGetSystemRoutineAddress不是函数,为什么可以直接call?
3.
iidtable: dd iattable-iidtable dd 12345678h dd 87654321h dd dll-iidtable dd iattable-iidtable dd 0 iattable:
这里的12345678h和87654321h是乱写的吗?看不出来有什么用。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课