snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2004-12-24 13:01
发现问题了

NtCreateProcess' : pointer mismatch for actual parameter 4
第4个参数类型不对,改一改吧

你在哪里找到的NtCreateProcess的定义

NtCreateProcess(

OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ParentProcess,
IN BOOLEAN InheritObjectTable,
IN HANDLE SectionHandle OPTIONAL,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL );

学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
Yanky
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2021-09-08
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望95点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
  • 社区居民
21楼#
发布于:2004-12-27 12:29
发现问题了

NtCreateProcess' : pointer mismatch for actual parameter 4
第4个参数类型不对,改一改吧

你在哪里找到的NtCreateProcess的定义

NtCreateProcess(

OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ParentProcess,
IN BOOLEAN InheritObjectTable,
IN HANDLE SectionHandle OPTIONAL,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL );

 



大虾啊,我的定义和你的一样的,参数没错,没有问题啊。

还有就是我直接利用这个函数的地址也有问题,提示第七个参数错误。
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2004-12-27 12:53
[quote]发现问题了

NtCreateProcess' : pointer mismatch for actual parameter 4
第4个参数类型不对,改一改吧

你在哪里找到的NtCreateProcess的定义

NtCreateProcess(

OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ParentProcess,
IN BOOLEAN InheritObjectTable,
IN HANDLE SectionHandle OPTIONAL,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL );

 



大虾啊,我的定义和你的一样的,参数没错,没有问题啊。

还有就是我直接利用这个函数的地址也有问题,提示第七个参数错误。 [/quote]

上面函数定义的是引用你的定义,

你的代码编译后,出现NtCreateProcess' : pointer mismatch for actual parameter 4警告错误(环境2k+xp4+ddk 2k)

我想问题可能就在这里
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
Yanky
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2021-09-08
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望95点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
  • 社区居民
23楼#
发布于:2004-12-27 14:36
[quote][quote]发现问题了

NtCreateProcess' : pointer mismatch for actual parameter 4
第4个参数类型不对,改一改吧

你在哪里找到的NtCreateProcess的定义

NtCreateProcess(

OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ParentProcess,
IN BOOLEAN InheritObjectTable,
IN HANDLE SectionHandle OPTIONAL,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL );

 



大虾啊,我的定义和你的一样的,参数没错,没有问题啊。

还有就是我直接利用这个函数的地址也有问题,提示第七个参数错误。 [/quote]

上面函数定义的是引用你的定义,

你的代码编译后,出现NtCreateProcess' : pointer mismatch for actual parameter 4警告错误(环境2k+xp4+ddk 2k)

我想问题可能就在这里
 [/quote]


NtCreateProcess这个函数原型我是在UnDoc文档中找到的。

请问该如何改呢?
我的环境也是:advance Server + Sp4   + 2kddk

你的可以?

那个参数该是什么呢?

Yanky
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2021-09-08
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望95点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
  • 社区居民
24楼#
发布于:2004-12-27 17:42
顶!
顶!
顶!
yyy_qazwsxedc
驱动牛犊
驱动牛犊
  • 注册日期2004-12-29
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2004-12-29 10:12

驱动中好像不能引用ntdll.dll中的函数,没看到有sys引用了ntdll.dll
因为NtCreateSection在ntoskrnl.exe中,而NtCreateProcess在
ntoskrnl.exe中没有导出所以不行。
关于怎么使用NtCreateProcess或ZwCreateProcess《NtCreateProcess和ZwCreateProcess,原来的贴太挤,开新帖 》
有讲的
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2005-02-04 14:02
这个函数地址需要动态获取,你反编译一下NtOsKrnl.exe就明白了。
Ideas for life!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
27楼#
发布于:2005-02-04 14:07
这个函数地址需要动态获取,你反编译一下NtOsKrnl.exe就明白了。

等于没说,你反哪个函数可以获得他的地址??
HOOK只能通过SERVICEID来做,硬编码或着我看到有老外把NTDLL影射到驱动空间,然后再获得SERVICEID的.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2005-02-05 10:40
首先,我必须澄清的一点是,你的LIB绝对不能是ntdll.lib,而必须是ntoskrnl.lib。ntdll.lib中引出了ntcreateprocess(暂时不管大小写了),ntoskrnl.lib引出了ntcreateprocess,ntcreatesession.ntdll.lib提供Win32下用的,地址在用户区,这就是你出现地址找不到的原因。至于第4个参数错误的原因,大家由于环境不相同,我这里只在XP下试了一下,就是这个错误。其实是因为我以前说过的,在Win2k下ProcessId会有问题,0xffffffff也被认为是一个合法的进程ID,而在XP下ProcessId没问题,0xffffffff便被认为是一个非法的进程ID了。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2005-02-05 10:54
还有,据我跟踪发现,在XP中系统很少调用ntcreateprocess,改为调用
ntcreateprocessEx,如果在XP下将0xffffffff改为0x00000000(NULL),将不出现第4个参数出错的情况,但出现1>Linking Executable - objchk_wxp_x86\i386\test.sys for i386
1>runwin32proc.obj : error LNK2019: unresolved external symbol __imp__NtCreateP
ocess@32 referenced in function _TestCreateProcess@0
1>objchk_wxp_x86\i386\test.sys : error LNK1120: 1 unresolved externals
这说明你找到的函数说明是ntdll.dll中的,与__imp__NtCreatePocess@32不符,即函数名称没问题相同,参数个数不同
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2005-02-05 11:02
还有,据我跟踪发现,在XP中系统很少调用ntcreateprocess,改为调用
ntcreateprocessEx,如果在XP下将0xffffffff改为0x00000000(NULL),将不出现第4个参数出错的情况,但出现1>Linking Executable - objchk_wxp_x86i386test.sys for i386
1>runwin32proc.obj : error LNK2019: unresolved external symbol __imp__NtCreateP
ocess@32 referenced in function _TestCreateProcess@0
1>objchk_wxp_x86i386test.sys : error LNK1120: 1 unresolved externals
这说明你找到的函数说明是ntdll.dll中的,与__imp__NtCreatePocess@32不符,即函数名称没问题相同,参数个数不同

修正,参数个数据后来看,是对的,8个,主要是未引出的问题,不行就硬编码吧,在我的XP sp2系统上,它是系统服务分发表中排行0x2F,只不过要注意使EDX指向你的参数表。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
iamwuge
驱动牛犊
驱动牛犊
  • 注册日期2002-01-07
  • 最后登录2005-05-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2005-02-06 13:55
驱动里边连接ntdll?NtCreateProcess/ZwCreateProcess都没有在ntdll.dll中被export!不要白费力气了。如果需要的话,你可以自己加载ntdll到内存中,然后再查找地址。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2005-02-07 09:35
驱动里边连接ntdll?NtCreateProcess/ZwCreateProcess都没有在ntdll.dll中被export!不要白费力气了。如果需要的话,你可以自己加载ntdll到内存中,然后再查找地址。

函数没有输出,就是自己加载到内存中,也找不到地址,其实ntdll.dll本身就在内存中,只不过在应用层。把它加载到核心空间,它也只能是死的,所有地址需要重定位才能活,至于搞那么复杂吗?
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2005-02-07 09:39
[quote]这个函数地址需要动态获取,你反编译一下NtOsKrnl.exe就明白了。

等于没说,你反哪个函数可以获得他的地址??
HOOK只能通过SERVICEID来做,硬编码或着我看到有老外把NTDLL影射到驱动空间,然后再获得SERVICEID的. [/quote]
我看到有老外把NTDLL影射到驱动空间,然后再获得SERVICEID的????
未输出,NTDLL影射到驱动空间,又如何得到入口地址,更别说SERVICEID
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
上一页 下一页
游客

返回顶部