单独提取WRK中NtOpenProcess的实现源码,放到一个简单框架的驱动中,用DDK的build编译出错,提示信息如下:
100> D:\ ZZZ \ zzz.c(160):错误C2220:警告作为错误处理 - 没有生成的对象文件
100> D:\ ZZZ \ zzz.c(160):警告C4273:“NtOpenProcess:不一致的DLL联动
100> D:\ ZZZ \ zzz.c(170):错误C2065:'AUX_ACCESS_DATA“:未声明的标识符
100> D:\ ZZZ \ zzz.c(170):错误C2146:语法错误:缺少“;”在标识符“AuxData”
100> D:\ ZZZ \ zzz.c(170):错误C2144:语法错误:“<Unknown>,前应先”<Unknown>,
100> D:\ ZZZ \ zzz.c(170):错误C2144:语法错误:“<Unknown>,前应先”<Unknown>,
100> D:\ ZZZ \ zzz.c(170):错误C2143:语法错误:缺少';'前'标识'
100> D:\ ZZZ \ zzz.c(170):错误C2065:'AuxData“:未声明的标识符
100> D:\ ZZZ \ zzz.c(171):错误C2275:“ULONG”:非法使用这种类型的表达式
100> C:\ Program Files文件\ DDK的\ INC \ DDK \ WNET \ ntdef.h(415):参见“ULONG”的声明
100> D:\ ZZZ \ zzz.c(171):错误C2146:语法错误:缺少“;”在标识符“属性”
100> D:\ ZZZ \ zzz.c(171):错误C2144:语法错误:“<Unknown>,前应先”<Unknown>,
100> D:\ ZZZ \ zzz.c(171):错误C2144:语法错误:“<Unknown>,前应先”<Unknown>,
100> D:\ ZZZ \ zzz.c(171):错误C2143:语法错误:缺少';'前'标识'
100> D:\ ZZZ \ zzz.c(171):错误C2065:'属性':未声明的标识符
100> D:\ ZZZ \ zzz.c(175):错误C4013:“KeGetPreviousMode'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(175):警告C4242:'=':从“int”转换为“KPROCESSOR_MODE”,可能丢失数据
100> D:\ ZZZ \ zzz.c(180):错误C4013:'ProbeForWriteHandle'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(182):错误C4013:'ProbeForReadSmallStructure'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(186):错误C4013:'未定义ObSanitizeHandleAttributes“;假设外部返回int
100> D:\ ZZZ \ zzz.c(213):错误C4013:'SeCreateAccessState'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(217):错误C2065:'PsProcessType“:未声明的标识符
100> D:\ ZZZ \ zzz.c(217):错误C2223:留下“ - >所属类别”必须指向结构/联合
100> D:\ ZZZ \ zzz.c(225):错误C2065:“SeDebugPrivilege”:未声明的标识符
100> D:\ ZZZ \ zzz.c(225):错误C2440:“功能”:无法从“int”转换为“LUID
100> D:\ ZZZ \ zzz.c(225):警告C4024:SeSinglePrivilegeCheck的“不同类型的正式和实际参数1
100> D:\ ZZZ \ zzz.c(241):错误C4013:'ObOpenObjectByName'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(251):错误C4013:“SeDeleteAccessState'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(268):错误C4013:“PsLookupProcessThreadByCid'未定义;假设外部返回int
100> D:\ ZZZ \ zzz.c(280):警告C4047:'功能':'ULONG'不同于'处理'间接水平
100> D:\ ZZZ \ zzz.c(295):警告C4047:'功能':'POBJECT_TYPE“间接水平不同从”int“
后来又根据WindowsResearchKernel12\base\ntos\ps\psopen.c这个文件,#include "psp.h"这个头文件,再根据psp.h又包含了很多其它的头文件,到最后还是编译出错...
谁知道要实现NtOpenProcess这个系统调用到底具体要包含哪几个头文件啊??
请大牛支招!!
有实现源码最好了...
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)