流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2051回复:16

NT TO RING0

楼主#
更多 发布于:2002-03-23 15:06
我在WEBCRAZY上下了一个NT进入RING0的源程序用VC编译(我有装2KDDK 反正不是环境错误)
但编译不成功,说啥有俩东东以在前定义了!(我想可能是没定义
#define XXXX 吧)
偶一气之下把有用的头全拷过来,花了我好长时间,终于编译通过,
但LINK又出错了说啥:
IN XXXXX
OUT XXXXX
太烦人了,不弄了还是改为ASM版吧!但是回避不是办法希望大家帮一下为啥VC环境下通不过!?
源程序:
http://cn.geocities.com/cntsu00/ntring0.zip
我很菜大家一定帮我呀!!??

最新喜欢:

ljmmaryljmmar...
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
Hideman
驱动中牛
驱动中牛
  • 注册日期2001-09-11
  • 最后登录2007-04-16
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-23 20:32
怎么无法下载?
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-23 20:57
不会吧!
你在联接上点下右键,选目标另存为。。看一下。
我试了可以的!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-24 14:23
唉哪程序有问题呀!
我费了好大劲终于搞定了!
但运行TMD又说初始化错误!
哎!
大家快来帮个忙!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-24 20:12
这多人看咱没人回答呀!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-25 13:08
这程序好像是用DS写的我正在努力,请大家也帮忙看看吧!
都130人了咋就没人回答,我给WEBCRAZY发信也没回。
哎!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-03-25 17:56
哎!!!! :(
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
idiot
驱动牛犊
驱动牛犊
  • 注册日期2002-02-14
  • 最后登录2003-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-03-26 12:00
我去下载下来Look Look
如果看到有什么有用信息告诉你
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-03-26 12:36
终于有人回了好高兴呀!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
archim
驱动牛犊
驱动牛犊
  • 注册日期2001-08-18
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-03-27 12:17
1. 在Preprocessor definitions里面加上定义_X86_=1,可以使错误的数量大大减少。
2. 在剩下的错误中有一个是:e:\\ntddk\\inc\\winbase.h(278) : error C2146: syntax error : missing \';\' before identifier \'CRITICAL_SECTION\'
产生错误的是下面这句话:typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
搜索一下,发现RTL_CRITICAL_SECTION是Winnt.h里面定义的一个结构。
3. windows.h里面有如下语句:
#include <windef.h>
#include <winbase.h>
而在windef.h里面有:
#ifndef NT_INCLUDED
#include <winnt.h>
#endif /* NT_INCLUDED */
而在ntddk.h里面也有:
#define NT_INCLUDED
也就是说#include <ntddk.h>造成winnt.h没有被include,从而造成以上的错误。
4.让我们在源文件中直接加上#include <winnt.h>试试。编译,出现以下错误e:\\ntddk\\inc\\winnt.h(294) : error C2146: syntax error : missing \';\' before identifier \'FCHAR\',产生错误的这一句话是typedef BYTE   FCHAR;也就是说编译器不认识BYTE这个符号,它是在别的文件中定义的。这说明winnt.h这个文件不能单独include的。
5. 让我再在源文件中加上#undef NT_INCLUDED试试。结果又会产生无数的重定义问题。大概得有好几十个。这些结构和宏在ntddk.h和winnt.h中都有定义,而且没有任何的编译开关可以控制他们的定义。这就是说这两个头文件是互相冲突的,如果同时包含着两个头文件的话就必然会产生重定义问题。

从上面的分析来看,我斗胆推测如果使用DDK里面的头文件,这个例子是无论如何也编译不过的。也许MS当初设计的时候就故意要弄成这样的。

----------------------------------------------------
以上意见如有不对,欢迎指正。
archim
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-03-27 13:01
在你的第一步我是通过DS确定路径搞定的!
在第二步我也有同样的结果!
谢谢你的回答!
我手工构造了头编译通过,但运行出错!说没有初始化!
你可要从新构造的CPP?
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
tsu00
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2006-08-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-03-27 13:56
还是我来说说吧。

ntring0.cpp编译环境:

  我记得我使用的是visual studio下的vc6(sp0),还有windows 2000 比较新的平台sdk。

直接使用cl命令加相关的参数编译而成的。

还有我除了softice以外,不使用任何microsoft以外的东西编译调试device driver相关内容。

Welcome to [url]http://webcrazy.yeah.net[/url]!
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-03-27 17:31
请说明具体的编译参数和环境好吗?谢了!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-03-27 21:03
 :D :D :D
终于搞定了!
 :D :D :D
经过努力把头文件修改后编译运行都通过了!
但tsu00说的不经过修改就可以编译,我至今还没搞明白!
忘tsu00帮个忙。
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-03-27 21:18
老兄,说得详细一些啊,我也想编译过去啊。

:D :D :D
终于搞定了!
 :D :D :D
经过努力把头文件修改后编译运行都通过了!
但tsu00说的不经过修改就可以编译,我至今还没搞明白!
忘tsu00帮个忙。
 
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-03-27 22:24
typedef LONG NTSTATUS;

#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#define OBJ_INHERIT 0x00000002L
#define OBJ_PERMANENT 0x00000010L
#define OBJ_EXCLUSIVE 0x00000020L
#define OBJ_CASE_INSENSITIVE 0x00000040L
#define OBJ_OPENIF 0x00000080L
#define OBJ_OPENLINK 0x00000100L
#define OBJ_KERNEL_HANDLE 0x00000200L
#define OBJ_VALID_ATTRIBUTES 0x000003F2L

typedef struct _OBJECT_ATTRIBUTES {
ULONG Length;
HANDLE RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor; // Points to type SECURITY_DESCRIPTOR
PVOID SecurityQualityOfService; // Points to type SECURITY_QUALITY_OF_SERVICE
} OBJECT_ATTRIBUTES;
typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;

typedef struct _UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
#ifdef MIDL_PASS
[size_is(MaximumLength / 2), length_is((Length) / 2) ] USHORT * Buffer;
#else // MIDL_PASS
PWSTR Buffer;
#endif // MIDL_PASS
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;
#define UNICODE_NULL ((WCHAR)0) // winnt

#define InitializeObjectAttributes( p, n, a, r, s ) { \\
(p)->Length = sizeof( OBJECT_ATTRIBUTES ); \\
(p)->RootDirectory = r; \\
(p)->Attributes = a; \\
(p)->ObjectName = n; \\
(p)->SecurityDescriptor = s; \\
(p)->SecurityQualityOfService = NULL; \\
}


NTSYSAPI
VOID
NTAPI
RtlInitUnicodeString(
PUNICODE_STRING DestinationString,
PCWSTR SourceString
);

NTSYSAPI
NTSTATUS
NTAPI
ZwOpenSection(
OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);

NTSYSAPI
NTSTATUS
NTAPI
ZwClose(
IN HANDLE Handle
);

#pragma comment(lib,\"ntdll.lib\");
把这上面的加进去删掉:
extern \"C\"
{
#include \"ntddk.h\"
}
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-03-28 20:22
偶有了新发现编译和环境搜索路经也有关系!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
游客

返回顶部