无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 172906|回复: 696
打印 上一主题 下一主题

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

    [复制链接]
跳转到指定楼层
1#
发表于 2011-3-9 16:58:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2011足迹 于 2014-1-8 17:19 编辑

最近在精简小马的2003pe,精简到19M(未精简srs驱动)的时候卡壳了...系统文件只剩下必须的win内核,win32子系统,cmd.exe运行环境,wim驱动和dll还有个额外的wimx.exe即使精简掉srs驱动也有10M左右...再精简我们还是有余地的...微软为windows提供了一个可以在win32子系统加载前执行程序的途径...就是注册表bootexecute项...默认是autocheck程序....这个程序有些特别...他是一个native程序...可以用C/C++编写...但是标准C的大多数函数不能使用.开发难度大..但是我们需要的功能也不多...能解压cap包...能挂在wim包...能拷贝文件就可以...如果此想法能够实现把pe内核压缩到5M将会成为可能...不知道有没有懂相关技术的可以加入...



谢谢大家的关注.
发布一个测试版下载地址http://bbs.wuyou.net/attachment.php?aid=116420
再发布一个测试版 native.zip (30.35 KB, 下载次数: 265)
现在expand可以自动创建文件夹了
再发一个测试 native.zip (30.37 KB, 下载次数: 189)
修正一个读取光盘的错误的bug
发布一个win7(pe3)专用版.. native.zip (30.58 KB, 下载次数: 268) (上个版本用错nt.lib,现在更新,抱歉)
发布新版本 native.zip (31.11 KB, 下载次数: 723) 现在可以支持mount wim了
现在支持的命令主要有:
        cd,md,copy,poweroff,dir,del,reboot,devtree,shutdown,exit,sysinfo,lm,vid,lp,move,if,load,expand, mount
其中
if支持if [not] exist [file|dir] command .command还可以是if
load加载一个文本文件作为批处理
expand x y 解压一个cab包
expand -d x显示cab包中的文件

mount 命令用法 mount wim [index] path
index 可以省略,默认是1
目前相对路径中出现.或..或\可能会无法识别..
每条命令最长1024字节(包含null)

加载方式
该程序是native应用程序.不是win32应用程序所以不能在已登录的windows操作系统中运行.(执行后会有错误提示,不会破坏系统)
加载方式有两种(还有其他的方式,可以自己研究)
可以在注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager下面的BootExecute项中添加命令行(xp原来的内容是autocheck autochk *,pe的是空)该项可以是多行文本..每行一个命令,类似批处理
另外一个办法就是替换smss.exe(虽然能启动但是不能接收自定义参数)

现在正在研究wimgapi.dll.逆向出来的代码逻辑混乱...一时还看不大明白..但是找到了思路...
挂载wim时wimgapi.dll只是向驱动发送了一个消息.这个消息是使用fltmgr.dll中的函数发送的..消息的格式是驱动定义的...现在正在研究这个消息的格式..
希望大家多多帮助
谢谢

补充:此程序是pecmd的一个补充,开发的目的是为了使pe可以更模块化.降低一级内核的大小.解决在pecmd前需要额外处理时pecmd检查父进程是不是winlogon.exe的问题.至于其他方面或许也有用武之地.
由于运行环境不受文件锁限制所以请谨慎使用文件操作..

演示pe下载http://u.115.com/file/f34c5d489f
使用"小马PE2011超级精简版"为模板,保留所有驱动,内核压缩至13M
谢谢大家关注和支持

mount 挂载演示pe http://www.wiiki.cn/pe.iso.rar 下载后改名pe.iso即可
冗余文件可能有不少..


公开fltmgr驱动的的部分操作代码,代码来自于wimgapi.dll的逆向,数据结构结合wimgapi.h猜测,api只提供了部分,win7版api处理的相当复杂。。没有实现。
fltmgr.zip (153.01 KB, 下载次数: 118)

[ 本帖最后由 2011足迹 于 2011-4-4 21:30 编辑 ]

native.zip

30.36 KB, 下载次数: 559, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +8 收起 理由
yueming9712 + 8 精品文章

查看全部评分

推荐
发表于 2011-3-9 20:22:49 | 只看该作者
楼主一看仿佛就是高人,应该也就是高人。我等虾米只能默默回帖支持。坐等楼主好消息。

点评

天择 www.sosoxiaoshuo.cc/so/0/718/  发表于 2014-8-8 09:48
回复

使用道具 举报

3#
发表于 2011-3-10 00:38:12 | 只看该作者
貌似在那个模式下所有文件都没有被锁定,且加载了usb2.0驱动.如果这时候载入外置的话肯定会很快...我是c语言小白,只能帮顶了...
回复

使用道具 举报

4#
 楼主| 发表于 2011-3-11 13:29:35 | 只看该作者
看来关系的人不多...
自己顶起来..呵呵..
这两天找到一个叫native shell的开源项目就以他为基础了...
回复

使用道具 举报

5#
 楼主| 发表于 2011-3-22 10:58:47 | 只看该作者
有点成果了...
现在已经支持一些基本的cmd命令另外还有个expand命令可以解压cab包不过还不完善..
下一步准备继续完善expand命令尽量兼容ms的expand命令
目前还不支持批处理
也不支持外部参数
一步一步改进吧
分享一下代码
google code项目空间http://code.google.com/p/nativeshell/
svn checkout http://nativeshell.googlecode.com/svn/trunk/ nativeshell-read-only
回复

使用道具 举报

6#
发表于 2011-3-22 13:52:09 | 只看该作者
支持一下,等待成果。外行只能支持一下了。
回复

使用道具 举报

7#
 楼主| 发表于 2011-3-22 17:07:07 | 只看该作者

回复 #8 friend8179 的帖子

对驱动不太了解...不知道应该怎么操作..囧...希望有人能帮忙...当初只是想挂wim的...只是不知道怎么弄..才先弄个cab
回复

使用道具 举报

8#
发表于 2011-3-22 17:21:21 | 只看该作者
期待成果`先留名.别让帖沉了。这样才有高手注意到
回复

使用道具 举报

9#
发表于 2011-3-22 18:45:27 | 只看该作者
期待高手的出现
回复

使用道具 举报

10#
发表于 2011-3-22 19:24:05 | 只看该作者
期待高手能够帮忙,我们才能成功。
回复

使用道具 举报

11#
发表于 2011-3-22 21:35:55 | 只看该作者
10M到5M改变有很多吗?意义大吗?
回复

使用道具 举报

12#
发表于 2011-3-23 00:21:12 | 只看该作者
原帖由 b23526 于 2011-3-22 21:35 发表
10M到5M改变有很多吗?意义大吗?

Usb1.0起动快不少
回复

使用道具 举报

13#
发表于 2011-3-23 13:00:40 | 只看该作者
支持楼主...

应该很有前途的说...
回复

使用道具 举报

14#
 楼主| 发表于 2011-3-23 13:14:34 | 只看该作者

回复 #15 chenall 的帖子

呵呵..终于见到你了...关于wim能不能指点一下...
回复

使用道具 举报

15#
发表于 2011-3-23 18:14:02 | 只看该作者
对这个我也不太懂的说...
回复

使用道具 举报

16#
 楼主| 发表于 2011-3-26 00:53:53 | 只看该作者
发一个测试版
现在支持的命令主要有:
        cd,md,copy,poweroff,dir,del,reboot,devtree,shutdown,exit,sysinfo,lm,vid,lp,move,if,load,expand
其中
if支持if [not] exist [file|dir] command .command还可以是if
load加载一个文本文件作为批处理
expand x y 解压一个cab包
expand -d x显示cab包中的文件

目前相对路径中出现.或..或\可能会无法识别..
每条命令最长1024字节(包含null)

native.zip

30.2 KB, 下载次数: 969, 下载积分: 无忧币 -2

回复

使用道具 举报

17#
 楼主| 发表于 2011-3-29 17:02:10 | 只看该作者
再顶起来...
好像没大有人关心了...
今天逆了一下WIMGAPI..dll和FLTLIB.DLL找到了一些思路
谢谢liulaotou2的帖子
回复

使用道具 举报

18#
发表于 2011-3-29 19:00:03 | 只看该作者
LZ是高人,友情支持。

我要是想把他弄到正常的XP下会怎么样呢?
回复

使用道具 举报

19#
发表于 2011-3-29 20:02:53 | 只看该作者
原帖由 2011足迹 于 2011-3-26 00:53 发表
发一个测试版
现在支持的命令主要有:
        cd,md,copy,poweroff,dir,del,reboot,devtree,shutdown,exit,sysinfo,lm,vid,lp,move,if,load,expand
其中
if支持if [not] exist [file|dir] command .comman ...



请问这个要如何应用啊?这个能在正常的系统上应用吗?如何在系统运行初期加载运行它啊?
回复

使用道具 举报

20#
发表于 2011-3-30 08:09:51 | 只看该作者
这段时间论坛的人确实不多。
懂这方面的人毕竟是少数。
你的标题可以改一下,mini pecmd 测试版
一楼的帖子也编辑一下,把测试版和网址放上去。
这样其他人一看就可以看到。否则不翻帖子的看不到你发布测试版。
成熟的时候也可以发布一个用这个软件做的pe成品,这样大家好测试。
回复

使用道具 举报

21#
发表于 2011-3-30 12:11:43 | 只看该作者
要有个成品WinPE,或至少要有个演示WinPE,否则别人不知如何用。
回复

使用道具 举报

22#
 楼主| 发表于 2011-3-30 12:37:26 | 只看该作者

回复 #24 lxl1638 的帖子

谢谢提示...
有空就用现有命令弄个演示pe..
应该没有什么问题..
回复

使用道具 举报

23#
发表于 2011-3-30 12:37:38 | 只看该作者
支持楼主。并期待早日支持wim。

我签名处的PE,正需要楼主的成果。

这个PE由grldr+0PE.GZ+cmdpe.gz+(0pedskt.wim+desktop.wim) 组成多级可剪裁结构。
可剪裁的意思是分解出的低层组件是有面向用户意义的可独立使用的组件。

目前cmdpe.gz精简到不能运行pecmd。
希望能进一步缩小cmdpe.gz,把东西移入desktop.wim。只要能挂接wim就行。
退一步,如果不能挂接wim,那么缩小cmdpe.gz,把东西移出到一个cab文件里也行。

cmdpe.gz里的exe系16位dos版rar压缩。
进入windows后,流程由0PE.GZ\kernel\wxpe\system32\autorun_.cmd控制。
回复

使用道具 举报

24#
 楼主| 发表于 2011-3-30 13:02:41 | 只看该作者

回复 #26 pseudo 的帖子

现有的命令把win32子系统移出到cab已经基本上成为可能..尚缺的命令就是这个cab文件如何搜索到..其他的都可以了.
回头弄个演示版的pe你参照一下
其实一楼的说明感觉应该挺详细了.
无论如何眼见为实..还是出个演示吧.
回复

使用道具 举报

25#
发表于 2011-3-30 13:17:25 | 只看该作者

回复 #27 2011足迹 的帖子

目前cmdpe.gz是9MB,按楼主说法,有缩减到5MB的可能。
期待。
回复

使用道具 举报

26#
发表于 2011-3-30 16:04:23 | 只看该作者
记得以前有一个ncli iso,好像只有4m大,可以直接替换里面的smss吗?

顺便求实例iso下载。。。

[ 本帖最后由 yichya 于 2011-3-30 16:39 编辑 ]
回复

使用道具 举报

27#
发表于 2011-3-30 16:29:24 | 只看该作者
现在能不能做到从native直接跳到Win32 GUI呢?

退一步讲,有没有可能,在native下直接挂载/解开wim文件,这样还原系统就省事了。
回复

使用道具 举报

28#
发表于 2011-3-30 16:34:40 | 只看该作者
再来支持一下。。。期待更多的功能。。
回复

使用道具 举报

29#
发表于 2011-3-30 16:43:02 | 只看该作者
liulaotou2的驱动不能直接拽来用吗?

当然不能接受参数,不过至少比没有强。那个应该带可写吧?这样整个win32 gui子系统可以直接放进wim,然后只要能进入到win32 gui...

微机课发帖。哈哈
回复

使用道具 举报

30#
发表于 2011-3-30 18:08:04 | 只看该作者
能支持7z压缩包么?7zip官网有现成代码.弄成native下的代码应该不难.而且7z压缩率比cab高多了.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 13:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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