NT4源码编译环境
来源:互联网 发布:秃鹰配件淘宝燕尾 编辑:程序博客网 时间:2024/05/04 02:59
由此引起任何法律问题,本人概不负责。
NT4代码相对比较全,可以编译出绝大部分系统核心文件,2000代码基本上只能看,不能编译,因为缺失了太多的头文件。
这篇文章主要讨论代码的编译环境搭建。下面就介绍XP系统下编译环境的搭建,在这你需要准备好VC6.0,NT4DDK以及NT4的源代码压缩包。
1. 安装VC6.0
2. 由于在XP和2003下没办法安装NT4 DDK,只好在另外一台WIN2K的机器(可以是虚拟机)上安装, 选自定义安装,仅安装库和头文件。假定安装到c:\ddk。
3. 把上一步中的c:\ddk目录整个拷到XP系统的d:\下,这样就类似于把NT4 DDK安装到XP系统下的d:\ddk中。
4. 把nt4源代码解压到d:\nt下,里面应包含private和public两个目录。
5. 在d:\ddk目录下创建buildchk.bat文件,其内容是:
cmd.exe /k D:\DDK\bin\setenv.bat D:\DDK checked
在d:\ddk目录下创建buildfre.bat文件,其内容是:
cmd.exe /k D:\DDK\bin\setenv.bat D:\DDK free
6. 拷贝D:\nt\public\sdk\lib\coffbase.txt到D:\DDK\lib\i386\free目录。
7. 点击d:\ddk\buildfre.bat,切换到D:\nt\private\sdktools目录,尽可能多的编译其中的文件,并把编好的文件拷贝到D:\nt\public\tools。其中至少应包括chmode.exe ech.exe gensrv.exe hextract.exe hsplist.exe listmung.exe masm386.exe strcto.exe touch.exe wcshdr.exe ws2hdr.exe。如果在编译过程中碰到类似“link() : error LNK1104: cannot open file "obj\i386\free\structo.exe"”的错误,手动在其i386目录下创建free目录,再重新编译。
8. 在d:\nt目录下创建ntos.bat文件,其内容是:
set CPUTYPE=I386
set USE_PDB=1
set NTDEBUG=ntsd
set NTDEBUGTYPE=windbg
set BASEDIR=\nt
set _NTDRIVE=d:
set _NTROOT=\nt
set NT_UP=1
rem set C_DEFINES=%C_DEFINES% -D_UNICODE -DUNICODE
path d:\nt\public\tools;%PATH%
9. 修改d:\ddk\inc下的MAKEFILE.DEF文件,其中原来的92-101行更改为:
#modified by David
SDK_INC_PATH = D:\nt\public\sdk\inc
CRT_INC_PATH = D:\nt\public\sdk\inc\crt
OAK_INC_PATH = D:\nt\public\oak\inc
#SDK_LIB_PATH = $(BASEDIR)\lib\*\$(DDKBUILDENV)
#DDK_LIB_PATH = $(BASEDIR)\lib\*\$(DDKBUILDENV)
#CRT_LIB_PATH = $(BASEDIR)\lib\*\$(DDKBUILDENV)
#modified by David
SDK_LIB_PATH = D:\nt\public\sdk\lib\*
DDK_LIB_PATH = D:\nt\public\sdk\lib\*
CRT_LIB_PATH = D:\nt\public\sdk\lib\*
USE_PDB=1
#BROWSER_INFO=1
BUILD_OPTIONS=fe
LINKER_FLAGS=$(LINKER_FLAGS) $(SDK_LIB_PATH)\exsup.lib
MASTER_VERSION_FILE = $(BASEDIR)\inc\ntverp.h
#modified by David
#COFFBASE_TXT_FILE = $(BASEDIR)\lib\*\$(DDKBUILDENV)\coffbase.txt
COFFBASE_TXT_FILE = $(BASEDIR)\public\sdk\lib\coffbase.txt
10. 如果你安装NT4DDK的WIN2K系统不是英文环境,修改D:\ddk\bin下的SETENV.BAT文件,其中原来的95行更改为:
set LANGUAGE=USA
原来的109行更改为:
set LANGUAGE=USA
11. 修改D:\nt\public\sdk\inc下的ntdbg.h文件,其中原来的213-221行更改为:
//modified by David
/*typedef enum _DBGUI_APINUMBER {
DbgUiWaitStateChangeApi,
DbgUiContinueApi,
DbgUiMaxI
}
CsrGetProcessLuid(
HANDLE ProcessHandle,
PLUID LuidProcess
);*/
//added by David
#define PCSR_API_ROUTINE ULONG
#define PCSR_1P_API_ROUTINE ULONG
#define PCSR_SERVER_CONNECT_ROUTINE ULONG
#define PCSR_SERVER_DISCONNECT_ROUTINE ULONG
#define PCSR_SERVER_ADDTHREAD_ROUTINE ULONG
#define PCSR_SERVER_DELETETHREAD_ROUTINE ULONG
#define PCSR_SERVER_INITTHREAD_ROUTINE ULONG
#define PCSR_SERVER_EXCEPTION_ROUTINE ULONG
#define PCSR_SERVER_HARDERROR_ROUTINE ULONG
#define PCSR_SERVER_ADDPROCESS_ROUTINE ULONG
#define PCSR_SERVER_SHUTDOWNPROCESS_ROUTINE ULONG
#define PCSR_API_DISPATCH_ROUTINE ULONG
原来的262行后插入:
//added by David
#define NTCSRAPI
#define PCSR_THREAD ULONG
原来的276行后插入:
//added by David
#define PCSR_NT_SESSION ULONG
原来的298行后插入:
//added by David
#define PCSR_PROCESS ULONG
原来的313行后插入:
//modified by David
#define PDBGSS_DBGKM_APIMSG_FILTER ULONG
原来的319-320行更改为:
OUT PCSR_PROCESS *Process,
IN ULONG NTCSoutine OPTIONAL,
原来的337行后插入:
//added by David
#define PDBGUI_WAIT_STATE_CHANGE ULONG
- NT4源码编译环境
- NT4源码编译环境
- 完整可编译NT4's NTFS源码小规模修改工程
- 完整可编译NT4's NTFS源码(可稳定替换xp原版ntfs.sys
- 完整可编译NT4's NTFS源码(可稳定替换xp原版ntfs.sys)
- lamn环境源码编译
- Android源码编译环境
- android源码编译环境,应用程序编译环境
- ubuntu环境源码编译android
- 搭建Android源码编译环境
- 搭建Android源码编译环境
- 搭建Android源码编译环境
- 搭建Android源码编译环境
- Android 源码编译环境搭建
- 搭建Android源码编译环境
- Android源码编译环境建立
- 搭建Android源码编译环境
- netty源码编译环境搭建
- Delphi 常用控件之TlistView总结
- jQuery_review 之 通过.load()方法来实现异步加载HTML文档
- 线段树,最大最小值
- java面向对象-抽象类abstract
- 2014杭电多校联合第一场Task(贪心+STL使用)
- NT4源码编译环境
- 查询出Exchange Server的通讯组,并将通讯组成员输出到本地的文本文件中!
- jpa截图
- Qt中的元对象系统
- 这里是技术论坛啊!我怎么净写些与技术无关的东西。
- C语言入门——C语言学习日志1
- java面向对象-抽象类示例
- 后台管理系统,会员后台管理系统等系统的发布,解决80端口动态IP无公网
- javascript之【贪吃蛇系列】第一弹:简单的贪吃蛇实现