请教汇编基础问题
发表于:
2009-12-18 18:47
3302
.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是乱写的吗?看不出来有什么用。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)