首页
社区
课程
招聘
NtOpenProcess实现出错!!
发表于: 2012-2-21 19:13 12512

NtOpenProcess实现出错!!

2012-2-21 19:13
12512
单独提取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这个系统调用到底具体要包含哪几个头文件啊??
请大牛支招!!
有实现源码最好了...

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你也太强了点吧,这样也拿出来用 ~
话说 NtOpenProcess 在 ntddk.h 中是导出来了的,直接用应该就 OK 了,
不行的话就得从 ntdll.dll 中获取 NtOpenProcess 在 SSDT 中的索引,
然后根据索引找到 ring0 下的 NtOpenProcess 来调用
2012-2-21 21:43
0
雪    币: 209
活跃值: (813)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我是要自己实现所有的系统调用,凡是自己要用到的系统调用都走自己的路,免疫一切的内核挂钩...
2012-2-21 22:11
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
C语言基本语法都不会 还来弄这个
2012-2-22 09:11
0
雪    币: 209
活跃值: (813)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上的这位,#include语句偶还是认得它的...其它的一些C语句偶也还是认得的...
问题是偶已经包含了所有它要包含的头文件还是编译出错!!
这才想知道还有没有其它的什么原因...
2012-2-22 11:46
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
连个编译工具都还没用熟练,就想免疫所有的内核挂钩,你这卫星出太阳系了吧?
2012-2-22 11:53
0
雪    币: 209
活跃值: (813)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
自己搞定了!编译调试通过!
强烈鄙视上面两个!
只会说风凉话没一点实际有益行动的!
难道现在看雪论坛就只剩下这种人了吗?
看见别人的问题就只会贬低、冷嘲热讽、极尽讽刺之能事,从来没一点真心善意的帮助下!
唉!坛风日下,人心不古啊......
一切还是要靠自己!
古话说授人以鱼不如授人以渔,这种人连授人以鱼都做不到,更何谈授人以渔啊??
悲哀!真正的悲哀!(本山大叔这句话真是经典啊)

上传的附件:
2012-2-27 20:13
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
8
我是来观望的。。。对楼主的豪气感到叹服。。
2012-2-27 20:34
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
云里雾里……
2012-4-15 14:40
0
雪    币: 206
活跃值: (117)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
确实不懂.. LZ.你是想弄反挂?
2012-4-18 21:02
0
雪    币: 297
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
佩服楼主的勇气,希望有机会交流。
2012-10-23 20:48
0
雪    币: 239
活跃值: (133)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
有这么搞不如内核重载了,所有SSDT函数全部走自己的路。。另外你把工程发出来,我想看看怎么个自己实现法
2012-10-23 21:54
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
13
直接copy WRK里面的代码应该是不妥的,很多数据是特定操作系统相关的,因此理论上只能做实验玩
真跑的话我看有点玄,楼主测试过可以同时在2000,XP和2003各种版本稳定工作?
2012-10-23 22:14
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
直接copy的话80%以上都是不行的。
/*因为还需要用到NtOpenProcess所使用的函数声明与定义。*/
2012-10-26 02:38
0
雪    币: 101
活跃值: (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
LZ是怎么编译通过的,分享一下
2012-10-29 19:55
0
游客
登录 | 注册 方可回帖
返回
//