-
-
用extern和__declspec(dllimport) 为什么不同呢?
-
发表于:
2018-7-7 10:27
4715
-
用extern和__declspec(dllimport) 为什么不同呢?
x86 下获取shadowssdt地址 用KeAddSystemServiceTable函数搜索获取sssdt表
开始时用下面的声明方式来获取到
KeAddSystemServiceTable函数地址
extern BOOLEAN KeAddSystemServiceTable (
IN PULONG_PTR Base,
IN PULONG Count OPTIONAL,
IN ULONG Limit,
IN PUCHAR Number,
IN ULONG Index);
DbgPrint输出
KeAddSystemServiceTable地址是
ba481c8a
调试器观察
------ba481c8a jmp dword ptr [DriverTest!_imp__KeAddSystemServiceTable (ba48201c)
------ba481c90 jmp dword ptr [DriverTest!_imp___except_handler3 (ba482020)]
------ba481c96 jmp dword ptr [DriverTest!_imp__IoDeleteDevice (ba482024)]
实际
KeAddSystemServiceTable的地址等于[ba48201c]
而用__declspec(dllimport) 导入的方式
__declspec(dllimport) _stdcall KeAddSystemServiceTable(PULONG, PULONG, ULONG, PUCHAR, ULONG);
就可以直接获取到
KeAddSystemServiceTable的地址
小弟不解extern那种方式为什么不能直接获取到
KeAddSystemServiceTable的地址呢 ? 怎么修改呢
小白问题 莫嫌弃 感谢了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)