无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011足迹
打印 上一主题 下一主题

native版的mini pecmd测试,添加mount命令--2011-4-4

    [复制链接]
631#
发表于 2011-5-27 18:48:33 | 只看该作者
原帖由 hhh333 于 2011-5-27 16:27 发表
我估计将驱动换过来也可以用nmount,只不过要往下挂一层。

你试试吧,如果可以的话就再告诉我们吧,呵呵~~
回复

使用道具 举报

632#
发表于 2011-5-28 16:10:03 | 只看该作者
一个有趣的发现,在native模式下加载磁盘驱动:
    在根据我心如水的PE(http://bbs.wuyou.net/forum.php?mod=viewthread&tid=187211&extra=page%3D2)精简native一级内核时,将vmscsi.sys去掉了,这样虽然二级内核wim文件里包含这个文件,仍然不能在vmware中识别VMSCSI硬盘。
   在nativeshell中,mount二级内核后,想办法加载了wim中的vmscsi.sys后,再启动到PE,发现PE能识别这个SCSI硬盘了,设备管理器里也显示设备工作正常。
   看起来,在native模式下也可以加载vmscsi驱动,和F6差不多。不过不知道对其他的SAS驱动起不起作用,这样加载SAS驱动有没有意义。

  加载驱动的方法:http://hi.baidu.com/nmn714/blog/item/cf19395913ee602f2834f098.html
回复

使用道具 举报

633#
发表于 2011-5-28 16:12:18 | 只看该作者
请教:出现蓝屏c000021a代码是什么意思?
回复

使用道具 举报

634#
发表于 2011-5-28 16:16:38 | 只看该作者

回复 #656 sp_star 的帖子

按照您提供的精简列表,删除二级内核的同名文件,但启动时仍然蓝屏,出错代码:c000021a,不知啥意思?
回复

使用道具 举报

635#
发表于 2011-5-28 16:18:45 | 只看该作者
用了C大提供的NT03PE.IM_作为第一核心,加载第二核心的03版WXPE.WIM
出现B4蓝屏,显示The Video Driver Failed to initialize
不知道是为什么?是缺少文件还是注册表错误!
以上问题已经换过不同版本的WXPE.WIM试过...一样B4蓝屏
哎!还是菜啊!

[ 本帖最后由 zjyangjian 于 2011-5-28 16:20 编辑 ]
回复

使用道具 举报

636#
发表于 2011-5-28 16:29:21 | 只看该作者
原帖由 2011kcyou 于 2011-5-28 16:16 发表
按照您提供的精简列表,删除二级内核的同名文件,但启动时仍然蓝屏,出错代码:c000021a,不知啥意思?

如果你使用mount方式使用二级内核,最好不要删除任何文件。
我只试过我心如水的PE,建议你先试试这个。直接解开所有文件,直接打包成wim就可以。
回复

使用道具 举报

637#
发表于 2011-5-28 16:34:22 | 只看该作者
原帖由 zjyangjian 于 2011-5-28 16:18 发表
用了C大提供的NT03PE.IM_作为第一核心,加载第二核心的03版WXPE.WIM
出现B4蓝屏,显示The Video Driver Failed to initialize
不知道是为什么?是缺少文件还是注册表错误!
以上问题已经换过不同版本的WXPE.WIM试 ...


如果不清楚哪些文件有用,建议不要删除二级内核的任何文件,保持完整。这样一般就没有什么问题了。

二级内核可以使用任意的03版PE把WXPE目录整个制作成WXPE.WIM镜像。

因为二级内核是使用WIM格式的,所以实际上就没有必要对二级内核进行精简了,只要保证能用就行。

[ 本帖最后由 chenall 于 2011-5-28 16:35 编辑 ]
回复

使用道具 举报

638#
发表于 2011-5-28 16:40:47 | 只看该作者

回复 #682 sp_star 的帖子

不删除二级内核任何文件,打包成WXPE.WIM成功,谢谢。

将WXPE、MINIPE文件夹散开放到C盘根目录,可成功启动;
将WXPE 单独制作成ISO (NT03PE.IM_放到WXPE文件夹内)、MINIPE文件夹单独放置在C或其他盘根目录,用grldr可成功启动;
将一、二级内核都打包成ISO文件,用grub 4dos 要加--mem可成功启动,但不加--mem出现蓝屏。(以前的PE不会蓝屏,顶多找不到外置)

   但整体载入内存,似乎难以发挥native.exe的优势。

[ 本帖最后由 2011kcyou 于 2011-5-30 00:18 编辑 ]
回复

使用道具 举报

639#
发表于 2011-5-28 17:15:34 | 只看该作者

回复 #683 chenall 的帖子

我用的是自由天空的MAXPE里面的03pe.wim\WXPE里面的文件打包成WXPE.WIM的...每次都B4蓝屏
现在准备试用HPY的试试看.谢谢回答!
回复

使用道具 举报

640#
发表于 2011-5-28 20:52:46 | 只看该作者
奇怪了!!我下的很多个版本的PE,转成WIM核心都是蓝屏B4代码!到底是缺了什么文件才会这样?
回复

使用道具 举报

641#
发表于 2011-5-28 22:06:41 | 只看该作者
原帖由 sp_star 于 2011-5-28 16:10 发表
一个有趣的发现,在native模式下加载磁盘驱动:
    在根据我心如水的PE(http://bbs.wuyou.net/forum.php?m ... ;tid=187211&extra=page%3D2)精简native一级内核时,将vmscsi.sys去掉了,这样虽然二级内核wim文 ...


请教你用ZwLoadDriver加载驱动,那ZwLoadDriver可以运行在native环境里?可以把你编译好的ZwLoadDriver发上来吗?谢谢!
回复

使用道具 举报

642#
发表于 2011-5-28 22:59:50 | 只看该作者

回复 #687 thttht 的帖子

ZwLoadDriver是一个native API,可以通过调用这个API来加载一个驱动程序。但是要通过注册表来加载。
为了能直接加载.sys文件,还需要对注册表写入一些东西,创建键值什么的。
我上传了一个概念性的PE:http://u.115.com/file/aq81vacq#
Native_test.iso
这个PE里的native.exe,我增加了一点注册表的功能,但是很不完善。比如还不能创建键值,需要手动在注册表里事先创建。加载过程也很繁琐。主要是看看这种方式行不行。
回复

使用道具 举报

643#
发表于 2011-5-29 06:45:31 | 只看该作者
谢谢sp_star!不过看的有点晕!先下载看看学习学习,“这个PE里的native.exe,我增加了一点注册表的功能”是在native.exe环境理度取注册表指定位置来加载.sys文件驱动吗?

[ 本帖最后由 thttht 于 2011-5-29 06:46 编辑 ]
回复

使用道具 举报

644#
发表于 2011-5-29 11:45:01 | 只看该作者
原帖由 thttht 于 2011-5-29 06:45 发表
谢谢sp_star!不过看的有点晕!先下载看看学习学习,“这个PE里的native.exe,我增加了一点注册表的功能”是在native.exe环境理度取注册表指定位置来加载.sys文件驱动吗?


差不多是这样。
我把这些过程都写到一个命令里了,见附件。
用法很简单:Nloadsys.exe default vmscsi.sys
default表示vmscsi.sys在system32\drivers目录下。

Nloadsys.rar

4.4 KB, 下载次数: 92, 下载积分: 无忧币 -2

回复

使用道具 举报

645#
发表于 2011-5-29 16:24:38 | 只看该作者
网上找了一个:
to load/unload Kernel-mode driver
---------------------------------------------------
/*++

Module Name:
    kloader.c
Abstract:
    Program to load/unload KM driver.
Author:
    Andrey Shedel <andreys@cr.cyco.com>
   You may distribute under the terms of the GNU General Public License
   You can contact author at andreys@cr.cyco.com or http://www.chat.ru/~ashedel
--*/


#define WIN32_LEAN_AND_MEAN
#define _DLL
#include <stdarg.h>
#include <windows.h>
#include <shellapi.h>
#pragma warning(push, 4)
#pragma warning(disable:4204) // nonstandard extension used : non-constant aggregate initializer
//#pragma comment(exestr, "\n\nKLOADER: Kernel-mode driver loader\nCopyright (C) 1999 Andrey Shedel ([email=andreys@tarzan.cr.cyco.com)\n\n]andreys@tarzan.cr.cyco.com)\n\n[/email]")
#pragma comment(lib,"ntdll.lib")
#pragma comment(lib,"kernel32.lib")
#pragma comment(lib,"shell32.lib")
#pragma comment(linker, "-entry:raw_main")
#pragma comment(linker, "-opt:nowin98")
#pragma comment(linker, "-opt:ref")
#pragma comment(linker, "-merge:.rdata=.text")
#pragma comment(linker, "-subsystem:console")

typedef ULONG NTSTATUS;
typedef struct {
USHORT Length;
USHORT MaximumLength;
PWSTR  Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

#define STATUS_SUCCESS 0

#define SE_LOAD_DRIVER_PRIVILEGE          (10L)

NTSYSAPI
NTSTATUS
NTAPI
RtlAppendUnicodeToString (
    PUNICODE_STRING Destination,
    PWSTR Source
    );

NTSYSAPI
NTSTATUS
NTAPI
RtlAdjustPrivilege(
    IN ULONG Privilege,
    IN BOOLEAN NewValue,
    IN BOOLEAN ForThread,
    OUT PBOOLEAN OldValue
   );
NTSYSAPI
NTSTATUS
NTAPI
NtLoadDriver(
    IN PUNICODE_STRING DriverServiceName
   );

NTSYSAPI
NTSTATUS
NTAPI
NtUnloadDriver(
    IN PUNICODE_STRING DriverServiceName
   );


#define SERVICE_PREFIX L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"
#define SERVICE_PREFIX_LEN (sizeof(SERVICE_PREFIX) - sizeof(WCHAR))

static const WCHAR szNTDLL_DLL[] = L"ntdll.dll";
static const char szSucceeded[]  = "succeeded.";
static const char szFailed[]     = "failed. ";
static const char szUsage[]      = "KLOADER: Kernel-mode driver loader\nCopyright (C) 1999 Andrey Shedel ([email=andreys@cr.cyco.com)\nUsage]andreys@cr.cyco.com)\nUsage[/email]: kloader <driver_name> [/r]\n";
static const char szPrivilegeSetError[] = "KLOADER: unable to set privilege\n";
static const WCHAR szServicesPrefix[] = SERVICE_PREFIX;
static const char szMessagePrefix[] = "KLOADER: Attemt ";
static const char szCRLF[]       = "\n";


void
__stdcall
_puts(
    IN const char* msg
   )
{
ULONG Written;
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), msg,
     strlen(msg), &Written, NULL);
}

__inline
char*
__stdcall
GetErrorString(
    IN NTSTATUS error
   )
{
char* lpMsgBuf;
FormatMessageA(
       FORMAT_MESSAGE_ALLOCATE_BUFFER |
       FORMAT_MESSAGE_IGNORE_INSERTS |
       FORMAT_MESSAGE_FROM_SYSTEM |
       FORMAT_MESSAGE_FROM_HMODULE,
       GetModuleHandleW(szNTDLL_DLL),
       error,
       0,
       (char*)&lpMsgBuf, 0, NULL);
return lpMsgBuf;
}


void
__stdcall
pstatus(
    IN NTSTATUS Status
   )
{
if(STATUS_SUCCESS == Status)
{
  _puts(szSucceeded);
}
else
{
  char* s = GetErrorString(Status);
  _puts(szFailed);
  if(NULL != s)
  {
   _puts(s);
   LocalFree((HLOCAL)s);
  }
}
}

__inline
BOOLEAN
__stdcall
EnablePrivilege(
    IN ULONG privilege
   )
{
BOOLEAN OldValue;
return (BOOLEAN)(STATUS_SUCCESS == RtlAdjustPrivilege(privilege,
                TRUE,
                FALSE,
                &OldValue
               ));
}


int
__stdcall
real_wmain(int argc, PCWSTR* argv)
{
UNICODE_STRING UnicodeString;
NTSTATUS status;
WCHAR buffer[1024];

if(argc < 2)
{
wrong_arg:
  _puts(szUsage);
  return 1;
}

if(!EnablePrivilege(SE_LOAD_DRIVER_PRIVILEGE))
{
  _puts(szPrivilegeSetError);
  return 0;
}

RtlCopyMemory(&buffer[0], szServicesPrefix, SERVICE_PREFIX_LEN);
UnicodeString.MaximumLength = sizeof(buffer);
UnicodeString.Length = SERVICE_PREFIX_LEN;
UnicodeString.Buffer = &buffer[0];
RtlAppendUnicodeToString(&UnicodeString, (PWSTR)(argv[1]));

if(argc < 3)
  status = NtLoadDriver(&UnicodeString);
else
{
  if((L'/'  == argv[2][0]) &&
     (L'r'  == argv[2][1]) &&
     (L'\0' == argv[2][2]))
  {
   status = NtUnloadDriver(&UnicodeString);
  }
  else
  {
   goto wrong_arg;
  }
}
_puts(szMessagePrefix);
pstatus(status);
_puts(szCRLF);
return 0;
}

void __cdecl raw_main(void)
{
int argc;
LPWSTR* argv = CommandLineToArgvW(GetCommandLineW(), &argc);
ExitProcess(real_wmain(argc, argv));
}

kloader.rar

2.93 KB, 下载次数: 64, 下载积分: 无忧币 -2

回复

使用道具 举报

646#
发表于 2011-5-29 16:29:31 | 只看该作者

回复 #691 135956 的帖子

这个是WIN32 CONSOLE来的吧
要在native下用,应该要修改一下和重新编译吧....
回复

使用道具 举报

647#
发表于 2011-5-29 16:36:12 | 只看该作者
附件里有个exe文件,你试下行不行。。。我懒得去试了。。。我也是个编程门外汉。。
回复

使用道具 举报

648#
发表于 2011-5-29 16:46:39 | 只看该作者
原帖由 135956 于 2011-5-29 16:36 发表
附件里有个exe文件,你试下行不行。。。我懒得去试了。。。我也是个编程门外汉。。

我在win32下能跑,就表示不行了...

我也不会编,等高手看看有没有兴趣吧.....

[ 本帖最后由 andos 于 2011-5-29 16:48 编辑 ]
回复

使用道具 举报

649#
 楼主| 发表于 2011-5-30 23:41:57 | 只看该作者
原帖由 135956 于 2011-5-29 16:24 发表
网上找了一个:
to load/unload Kernel-mode driver
---------------------------------------------------
/*++

Module Name:
    kloader.c
Abstract:
    Program to load/unload KM driver.
Auth ...

谢谢提供...编译成native子系统的可执行程序应该不困难...有时间研究研究...
回复

使用道具 举报

650#
发表于 2011-5-31 00:23:53 | 只看该作者

回复 #683 chenall 的帖子

03与XP的文件全搞好了,见:http://bbs.wuyou.net/forum.php?m ... p;page=8#pid2244022
除服务器等相关驱动外,多数驱动都有,并可以支持全功能。
回复

使用道具 举报

651#
发表于 2011-6-1 23:18:45 | 只看该作者
佩服啊!楼主高才!!!
虽然俺技术不行,但是可以顶一下帖子以示支持!
回复

使用道具 举报

652#
发表于 2011-6-6 10:21:45 | 只看该作者
请问NATIVE中,在配置文件NAT.CFG中可以支持如%WINDIR%等之类的参数吗??
回复

使用道具 举报

653#
发表于 2011-6-6 21:37:04 | 只看该作者
原帖由 chenall 于 2011-5-20 14:45 发表
scsiport.sys如果不要,会影响SRS驱动的加载吗?如果有的话还是留着好了.
还有一个VLatency.sy记得使用VIA的SATA需要,如果不加载的话会不正常。

现在我没有VIA的版我也没有办法测试,不过建议保留,反正不 ...

这个需要,2003PE的话还有一个storport.sys,大多数的磁盘驱动程序需要调用scsiport.sys,一小部分新的用storport.sys,另总线驱动最好也保留,否则后面的很多驱动程序驱动不起来。
回复

使用道具 举报

654#
发表于 2011-6-7 07:37:19 | 只看该作者
原帖由 dengxiong 于 2011-6-6 10:21 发表
请问NATIVE中,在配置文件NAT.CFG中可以支持如%WINDIR%等之类的参数吗??

我也想知道能不能用环境变量
回复

使用道具 举报

655#
 楼主| 发表于 2011-6-7 23:50:24 | 只看该作者
原帖由 sunkiss 于 2011-6-7 07:37 发表

我也想知道能不能用环境变量

nativecmd是支持环境变量的..nativeshell不支持
回复

使用道具 举报

656#
发表于 2011-6-10 21:15:59 | 只看该作者
请问一级内核的img文件制作有什么特别要求么?我为啥仅仅修改了挂载wim文件的路径再打包回去,在挂载那步就会出现UnknownHardError蓝屏呢?
回复

使用道具 举报

657#
发表于 2011-6-11 21:10:06 | 只看该作者
原帖由 chenall 于 2011-5-7 16:34 发表
把tangope改成使用NATIVE+二级WIM文件的方式启动

一级内核3.64MB。二级内核WXPE.WIM是直接从原版打包起来的,还有TOOLS.WIM也是。


有兴趣可以下载试用
http://u.115.com/file/bhzxz5ox

ISO格式,放 ...



链接已失效,哪位朋友发个链接或发到发到sxsxx.mail@163.com, 谢谢~~
回复

使用道具 举报

658#
发表于 2011-6-11 22:04:23 | 只看该作者
我一直怀疑这个是不是哪个大神的小号
回复

使用道具 举报

659#
发表于 2011-6-14 17:44:27 | 只看该作者
http://bbs.wuyou.net/forum.php?m ... p;page=2#pid2255664
18楼的截图,native xpe 启动后报错无法进入桌面。这个是在移动硬盘上的。
回复

使用道具 举报

660#
 楼主| 发表于 2011-6-14 21:57:05 | 只看该作者
看来大家都在积极研究native pe看来我也要尽快完善ncmd了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-9 09:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表