无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 43740|回复: 113
打印 上一主题 下一主题

[结贴]定制NT6.X系统启动/安装目录

[复制链接]
跳转到指定楼层
1#
发表于 2009-10-16 16:35:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本贴原名叫:有没有玩破解的人--WIN7相关
====
本人写此贴的初衷主要是想在硬盘/USB盘上定制安装WIN7系统,摆脱WIN7根目录的众多文件夹,经过无数的失败,终于达到了自己的目的。

在开始这前,要感谢chenall, fujianabc和老九等人的讨论,尤其感谢chenall在关键时候帮助破解了难题。

进入正题
大家都知道,VISTA及以上系统其光盘结构为:
autorun.inf
setup.exe

bootmgr
<boot>
<efi>
<sources>
<support>
<upgrade>

其中:
setup.exe是在WIN下进行安装WIN7的程序
autorn.inf是光盘自动运行文件,插入光盘会通过它运行setup.exe
<boot>文件夹,最重要,含有启动NT6以上系统的启动配置文件BCD(相当于XP的boot.ini),挂载WIM的BOOT.SDI、内存检测和字体等工具
<efi>文件夹,EFI主板启动支持
<support>和<upgrade>就不用说了,是支持和升级相关文件夹。
<sources>,最重要,含有PE文件boot.wim和install.wim,以及在WIN下启动setup所需的文件。

我现在想做的就是把这些文件统计整理到一个文件中进行安装,这里假设我们将所有文件都弄到BOOT文件夹中,操作步骤如下:

1. 更改boot.wim文件的路径
这需要编辑BCD文件,我们使用bcdedit.exe(XP下也可以运行)
先运行:
bcdedit /store BCD文件路径 /enum all /v
Windows 启动管理器
--------------------
标识符                  {9dea862c-5cdd-4e70-acc1-f32b344d4795}
description             Windows Boot Manager
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {7619dcc9-fafe-11d9-b411-000476eba25f}
displayorder            {7619dcc9-fafe-11d9-b411-000476eba25f}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 30

Windows 启动加载器
-------------------
标识符                  {7619dcc9-fafe-11d9-b411-000476eba25f}
device                  ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path                    \windows\system32\boot\winload.exe
description             Windows Setup
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
osdevice                ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot              \windows
detecthal               Yes
winpe                   Yes
ems                     Yes

Windows 内存测试程序
---------------------
标识符                  {b2721d73-1db4-4c62-bf78-c548a880142d}
device                  boot
path                    \boot\memtest.exe
description             Windows Memory Diagnostic
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}

EMS 设置
------------
标识符                  {0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}
bootems                 Yes

调试器设置
-----------------
标识符                  {4636856e-540f-4170-a130-a84776f4c654}
debugtype               Serial
debugport               1
baudrate                115200

全局设置
---------------
标识符                  {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
inherit                 {4636856e-540f-4170-a130-a84776f4c654}
                        {0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}

启动加载器设置
--------------------
标识符                  {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
                        {7ff607e0-4395-11db-b0de-0800200c9a66}

虚拟机监控程序设置
-------------------
标识符                  {7ff607e0-4395-11db-b0de-0800200c9a66}
description             Hypervisor Settings
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

设备选项
--------------
标识符                  {7619dcc8-fafe-11d9-b411-000476eba25f}
ramdisksdidevice        boot
ramdisksdipath          \boot\boot.sdi

这里我们要改变boot.wim的路径,运行如下命令,

bcdedit /store BCD文件路径 /set {default} device ramdisk=[boot]\boot\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}

同上,将上述的device改成osdevice,再运行一次。

因为我们改变了SOURCES目录的路径,因此还要让PE能找到install.wim文件,要进行下述第2步操作

2.修改startnet.cmd文件
这个文件位于boot.wim第2个映像的windows\system32目录下。
PE启动时会在X:\SOURCES目录下寻找setup.exe文件来进行安装, 如果SOURCES目录没有SETUP.EXE,那么winpeshl.exe会执行system32目录下的winpeshl.ini所指定的文件。如果winpeshl.ini没有指定程序或没有此文件,那么winpeshl.exe将会执行system32目录下的startnet.cmd文件,默认PE下存在此文件,会加载网络配置。我们解决这个boot.wim,可以使用imagex也可以使用sources目录的dism.exe。把这个文件内容变成:
@echo off
for %%a in (c d e f g h i j k l m n o p q r s t u v w y z) do (if exist %%a:\boot\sources\install.wim x:\sources\winsetup.exe /installfrom:%%a:\boot\sources\install.wim)
exit

当然,要把setup.exe重命名为winsetup.exe
看到了吧,这个setup.exe可以有参数installfrom,有了它,我们就可以指定wim文件的位置了。
修改完毕:imgaex /unmount /commit 挂载的目录

使用grldr启动系统,chainloder /boot/bootmgr来实现启动或安装系统。

合盘
比如把VISTA、WIN7和2008 R2全部放到一个盘来安装,这些盘目录结构都一致,我们该怎么办呢?
当然我样可以通过配置BCD文件来指定boot.wim的位置,也可以将sources目录换成其它名字,可是这样非常的不爽,原因在于我们要通过BCD菜单来选单,没有直接bootmgr启动进入安装直接,我们该如何操作呢?

加注:有关合盘,可以参考微软的方法:Cross-Platform Deployment http://technet.microsoft.com/en-us/library/cc721953(WS.10).aspx

我们可以通过不同的BCD文件来实现直接启动不同的系统。

一切的入手点在于bootmgr这个文件,它是启动管理器,类似于XP的NTLDR,所不同的是这个文件即有CHECKSUM校验,又有数字签名验证,要修改它,必须解决这两个问题

国外的高手解决了checksum问题(http://www.boot-land.net/forums/index.php?showtopic=8043,6楼)
我们必须用VISTA SP0的BOOTMGR,用起文本编辑器打开,在0xe28处将7403更改为EB1A这样就去除了checksum校验。
0x54b68处找到B.O.O.T.\.B.C.D,我们可以将BCD换成我们要的名字,例如VISTA使用BCD,WIN7使用7CD,2008使用8CD等。将这个bootmgr改名为你所需要的就可以了。

这样够了吗?不够,没有解决数字签名的问题,对于这个数字签名,国内有N人写了一篇文章(http://bbs.driverdevelop.com/htm_data/16/0711/106925.html),这篇文件解决了checksum和数字签名,可惜我“水平太潜”,用IDA如何也没有找到他所说的那几个函数,当然也无法修改。

用得着那么复杂的操作吗?用不着,国外的高手同样解决了数字签名问题,而且非常非常的签单,但他们只想到的是PXE启动PE,即用于bootmgr.exe启动过程,经过我试验,这个方法同样对bootmgr有效:

打开BCD文件,运行:bcdedit /store BCD文件 /set {bootmgr} nointegritychecks yes
OK,数字签名问题搞定。

说到这里,你可能要问,为什么不把bootmgr中的boot也给改名了?是的,我也尝试过,可是就是不成功,bootmgr里面所有出现boot的地方都改了,可是就是无法启动。

同样,如果你厉害,可以把sources目录的setup.exewinsetup.dll也给改了,让它不用通过installfrom参数一指定WIM文件,可以直接启动安装。这个setup.exe没有checksum也没有数字签名,IDA打开,有PDB表,修改应该容易些。我尝试着改winsetup.dll失败了。可能你感兴趣,会IDA,那么说不定你会成功。

说到这里,你可能感到不爽,把SOURCES目录放到BOOT里,有什么用啊?目录结构与原来还不一致了,别急,下面告诉你一个比较好的方案:

把WIN7.ISO里面的install.wim放到U盘,参照微软的这篇文章HOW WIN PE WORKS(http://technet.microsoft.com/en-us/library/cc721977(WS.10).aspx),不修改startnet.cmd文件,添加一个winpeshl.ini文件,其内容为启动同目录下的setup.cmd文件,后者的内容同上述第2步的startnet.cmd,winpeshl.ini文件的内容为:
[launchapps]
x:\windows\system32\setup.cmd
另外,还要把sources目录的setup.exe更名为winsetup.exe。把修改后的boot.wim放入ISO中,直接
map ISO文件 (hd32)
chainloader (hd32)
boot
启动即可,这样我们可以随意把ISO和install.wim文件放到想放的位置。

还有没有更灵活的方法了?有的,chenall最终破解了将BOOT.WIM放到与BOOTMGR不在同一介质安装方法,同时经过测试,我俩还研究明白了BCD对畸形目录的写法

OK, 现在假设把BOOT.WIM和INSTATLL.WIM同到到U盘的一个根目录下面,我们可以只留一个WIN7 ISO去除这两个文件的ISO,则我们必须修改BCD文件,因为这里的BOOT.WIM已经与ISO不在同一盘上了:

一切的问题根本在这个BCD文件,如果从与BOOTMGR非同一分区或介质上以RAMDISK启动BOOT.WIM,那么我们需要设定这个BOOT.WIM文件的路径的,光盘BCD目录默认其在SOURCES目录,且启动盘为BOOT,这个BOOT名字是很特殊的设备,是从光盘的BCD里发现的。为此,CHENALL专门写了一篇文章“单击打开:【分享】小技巧,两条命令解决WIN7安装后改MBR启动失败问题”,这是一个重要发现,将硬盘BCD文件启动区设置为BOOT后,MBR怎样改都不会出错。这样的问题最早PT在时空论坛遇到过(单击打开:修复 win 7 引导的一些经验),最后是FUJIANABC给出的解决办法,对比这个办法,还是CHENALL的简单、一劳永逸。

以上是我说的一个插曲,下面我继续说,如何从BCD入手去解决问题,在上面PT的贴子里已经提到了BCD文件是记录MBR和分区信息的,这非常的重要,我当初这所以失败,就是因为只考虑了盘符,不知道还有MBR的问题。解决方法就是先启动WIN系统,比如在PE下,假设你的U盘盘符为C:,那么,你就设置device和osdevice的rmadisk=[C:]\XX,U盘符是什么这里就设置什么,只这样做还不够,还必须改BOOT.SDI的盘符和路径,将ramdisksdidevice设置为=U盘的盘符,好了,你现在能正确启动BOOT.WIM,因为这时BCDEDIT在BCD文件中记录了磁盘的DISK SIGNATURE和分区的起始偏移,盘符只是个代码,BCD里记录的DISK SIGNATURE和OFFSET值才最终决定你是从什么盘什么分区指定DEVICE和OSDEVICE的。另外请参考本人在PE区发的“注册表与盘符”一文,会对DISK SIGNATURE和OFFSET有深入的了解。

对于畸形目录,有一个发现,比如本人的U盘为NTFS系统,dir显示畸形目录名为dat.,我当初在BCD中指定路径时都是使用的dat~1来代替,结果就是不成功,在CHENALL的提醒下,直接使用dat.做为路径名称就成功了。

本人目前的U盘就是把所有的WIN7相关的文件都放入了畸形目录,但没有使用去除了两个WIM文件的ISO,因为感觉体积还是大,就只保留了BOOTMGR和BOOT目录以及下面的BCD和MEMTEST文件,其余的都不要,做了一个1.4M的IMG,启动进直接将其MAP成FD0,再CHAINLOADER (FD0)/BOOTMGR就可以了。

全文完 20091103

[ 本帖最后由 victor888 于 2010-2-11 12:39 编辑 ]
2#
发表于 2009-10-16 17:19:04 | 只看该作者
bootmgr以前有人改过,是vista sp0的bootmgr,某高手把模拟slic的代码加到了bootmgr中,但后来这种破解方法被微软给封了
回复

使用道具 举报

3#
发表于 2009-10-16 17:52:30 | 只看该作者
好象 SETUP.EXE 支持命令行参数的,如果是这样,破解的必要性就不大了。
回复

使用道具 举报

4#
 楼主| 发表于 2009-10-16 19:34:42 | 只看该作者
setup的参数没有什么作用,可选的参数很少,且没有像XP的WINNT32的MAKELOCAL SOURCE选项。
回复

使用道具 举报

5#
发表于 2009-10-16 20:28:18 | 只看该作者
用setup /installfrom参数可以指定其他wim文件

至于你说的makelocal source对于vista/win7根本没必要,因为nt 6.x安装本来就只需要插一次光盘,重启后就不要光盘了,而nt 5.x如果不加makelocal source则重启后还要你插光盘。
回复

使用道具 举报

6#
 楼主| 发表于 2009-10-16 21:50:28 | 只看该作者
没有installfrom这个选项

setup.jpg (74.6 KB, 下载次数: 156)

setup.jpg
回复

使用道具 举报

7#
发表于 2009-10-16 22:15:52 | 只看该作者
原帖由 victor888 于 2009-10-16 21:50 发表
没有installfrom这个选项

帮助中漏写了此参数

看这里,更全
http://technet.microsoft.com/en-us/library/cc766446(WS.10).aspx
回复

使用道具 举报

8#
 楼主| 发表于 2009-10-16 22:37:28 | 只看该作者
这个是VISTA的参数,不是WIN7的。我刚才试着直接setup /installfrom
结果提示无法分析参数。
回复

使用道具 举报

9#
发表于 2009-10-17 16:33:04 | 只看该作者
原帖由 victor888 于 2009-10-16 22:37 发表
这个是VISTA的参数,不是WIN7的。我刚才试着直接setup /installfrom
结果提示无法分析参数。

vista和win7的我都测试过,installfrom可以用的,比如

setup.exe /installfrom:g:\sources\install.wim
回复

使用道具 举报

10#
发表于 2009-10-17 16:36:06 | 只看该作者
setup.exe 是可以通过参数指定源(WIM)和目标(分区)的,有这两项参数的支持,破解 setup.exe 的必要性就不大了。
回复

使用道具 举报

11#
发表于 2009-10-17 16:44:38 | 只看该作者
但nt 6.x的setup.exe有一点很不爽,就是不能制定启动分区,也就是bootmgr所在分区。
这样,从usb启动后,setup.exe会自作主张的把启动文件放到usb设备上。

nt 5.x的winnt32.exe则可以用syspart参数来制定启动分区,而nt 6.x根本无法指定。
回复

使用道具 举报

12#
 楼主| 发表于 2009-10-17 21:33:08 | 只看该作者
我和chenall讨论了半天,结合以上各位的讨论,现在就确定这样一些事情:

1. 在WIN下安装,使用ISO根目录的SETUP.EXE结合INSTALLFROM参数,可以实验将INSTALL.WIM文件放到其他位置。

2. WIN下安装,如果运行SOURCES目录下的SETUP.EXE,那么,不论SOURCES目录是什么名或深度如何都可以正常安装。

3. 在PE3.X下,可以通过以下手段实现WIN7的定制安装

A. 将SETUP.EXE和在其相同目录的INSTALL.WIM文件放到PE的SOURCES目录,BOOTMGR启动WINLOGON,后者会启动winpeshl.exe来自动运行这个SETUP文件实现安装。

B. 如果SOURCES目录没有SETUP.EXE,那么winpeshl.exe会执行system32目录下的winpeshl.ini所指定的文件。---这对我们用处不大。

C. 如果winpeshl.ini没有程序或没有此文件,那么winpeshl.exe将会执行system32目录下的startnet.cmd文件,默认PE下存在此文件,会加载网络配置。---这对我们用处也不大。

4. 如果我们能搞定BOOTMGR文件,那么,我们可以将BOOT文件夹也更名,从而-----------------------------最终实验把ISO解开全部放到U盘的一个文件夹中去安装WIN7!

[ 本帖最后由 victor888 于 2009-10-17 21:38 编辑 ]
回复

使用道具 举报

13#
发表于 2009-10-17 23:13:35 | 只看该作者
用 WINHEX 打开 BOOTMGR,以 UNICODE 方式搜索文本 \BOOT 应该能找到吧,找到后修改一下应该就可以了。现在在网吧没条件测试
回复

使用道具 举报

14#
发表于 2009-10-18 00:47:30 | 只看该作者
原帖由 victor888 于 2009-10-17 21:33 发表
我和chenall讨论了半天,结合以上各位的讨论,现在就确定这样一些事情:

1. 在WIN下安装,使用ISO根目录的SETUP.EXE结合INSTALLFROM参数,可以实验将INSTALL.WIM文件放到其他位置。

2. WIN下安装,如果运 ...


我觉得问题不在于BOOTMGR。主要还是SETUP.EXE的问题。
得了解一下SETUP.EXE是如何确定安装源的,已知把光盘的SOURCES目录复制到U盘上并改名为BOOT直接启动里面的SETUP.EXE是可以进行安装的,这个SETUP.EXE和PE的\SOURCES\SETUP.EXE一样的。

我猜可能和注册表或WINPESHL.EXE有关(可以重点根踪一下注册表或WINPESL.EXE的调用过程)


另外前面的关于startnet.cmd,其实是可以利用的,
首先删除PE的SOURCES\SETUP.EXE
然后创建一个STARTNET.CMD在SYSTEM32目录下。

可以在STARTNET.CMD里面编写批处理脚本来找到U盘上的安装程序进行安装。这样不管安装程序放在哪个目录都可以进行安装。
回复

使用道具 举报

15#
 楼主| 发表于 2009-10-18 04:52:40 | 只看该作者

回复 #13 Pauly 的帖子

有校验的,况且,这个字符也找不到。
回复

使用道具 举报

16#
发表于 2009-10-18 12:21:42 | 只看该作者
我也来试试看的了!~
回复

使用道具 举报

17#
发表于 2009-10-18 14:40:09 | 只看该作者
原帖由 victor888 于 2009-10-17 21:33 发表
我和chenall讨论了半天,结合以上各位的讨论,现在就确定这样一些事情:

1. 在WIN下安装,使用ISO根目录的SETUP.EXE结合INSTALLFROM参数,可以实验将INSTALL.WIM文件放到其他位置。

2. WIN下安装,如果运 ...


只要SETUP.EXE支持指定源(WIM)和目标(分区),所有的问题都已经解决了。

我们可以在 winpeshl.ini 或 startnet.cmd 中做手脚,虽然 startnet.cmd 是加载网络配置的,但完全可以修改它的全部CMD代码,搜索特定分区特定目录中的SETUP.EXE(INSTALL.WIM也放在SETUP.EXE所在目录),找到SETUP.EXE后,启动它就是了;也可以在 winpeshl.ini 指定自己的EXE文件,通过自己的EXE文件来搜索特定分区特定目录中的SETUP.EXE(INSTALL.WIM也放在SETUP.EXE所在目录)。

老外的Win7PE就是在 winpeshl.ini 指定自己的 PE 外壳初始化程序的,所以微软的SETUP.EXE已提供了足够的扩展支持了,就看使用的人如何用,会不会用了;或者你会问到另一个问题 --- BOOT目录名不能改,这个改与不改是没有区别的,如果微软当初就把这个目录名定为"MS_BOOT",可能你就想把它改成现在的"BOOT"。就是说,微软不可能按别人的想法去定义某个目录的名称,即使微软按张三的想法定义了一个目录的名称,李四也有可能将它改成别一个名称,名称符号而已,用什么都没有实质的区别,只要功能正常就够了。
回复

使用道具 举报

18#
 楼主| 发表于 2009-10-18 15:25:01 | 只看该作者
先说一下好消息,我已经初步成功修改了setup.exe并安装成功,下一步我将进一步的测试,具体方法先保密。

老九说的意思我明白了,利用PE的定制功能来实现SETUP指定安装源位置。但对比修改SETUP来讲,嘿嘿,还有点麻烦。另,我之所以想把BOOT文件夹也改名,是为了把这个文件夹更名为畸形目录,这样在U盘上安全性更高。

晚上我会给出更详细的测试报告。

[ 本帖最后由 victor888 于 2009-10-18 15:26 编辑 ]
回复

使用道具 举报

19#
发表于 2009-10-18 22:20:52 | 只看该作者
将启动文件给改的面目全非其实没多大必要,看着头大~
回复

使用道具 举报

20#
发表于 2009-10-18 22:21:34 | 只看该作者
我直接刷BIOS激活的!!!安全啊
回复

使用道具 举报

21#
 楼主| 发表于 2009-10-19 10:06:06 | 只看该作者
楼上是驴唇不对马嘴。
楼上的楼上是没读懂首贴要问的问题。
====
回老九,用installfrom参数最大的问题是不知道INSTALL.WIM文件所在的盘符,当然,可以通过批处理来解决。

我在18楼说的的方法是修改boot.wim第2个映像根目录的setup.exe以及sources目录的setup.exe和autorun.dll将里面的sources字符(需要查找unicode和非unicode字符)更换成想要的字符,如:boot\ls,这几个文件没有校验,可以更改。ISO根目录的setup.exe以及sources目录的setup.exe和autorun.exe可以不用改。如果在WIN下安装,只运行sources目录的setup.exe就可以了。

至此,讨论似乎可以告一段落,接下来我们只能等高手(国内的不可能了)研究明白bootmgr我们可以把校验去除,把boot目录也给改了名。

有时间我会继续试验改setup.exe的方法,现在基本可以认定成功。
回复

使用道具 举报

22#
发表于 2009-10-19 11:26:48 | 只看该作者
个人觉得修改BOOTMGR的BOOT的目录没有意义。

就算改了BOOT目录的名子又有什么好处,我是没有发现这样做的实际用途。
回复

使用道具 举报

23#
 楼主| 发表于 2009-10-19 11:59:43 | 只看该作者
如果不把BOOT设置成为畸形目录有被病毒干掉的危险。
当然,可以将BOOT目录设置NTFS权限。
回复

使用道具 举报

24#
发表于 2009-10-19 14:45:09 | 只看该作者
原帖由 victor888 于 2009-10-18 15:25 发表
先说一下好消息,我已经初步成功修改了setup.exe并安装成功,下一步我将进一步的测试,具体方法先保密。

老九说的意思我明白了,利用PE的定制功能来实现SETUP指定安装源位置。但对比修改SETUP来讲,嘿嘿,还 ...

10月22日就出正版了
版主大大赶紧第一时间放出安装方法教程
首先造福无忧启动论坛再说。。。。。。。
回复

使用道具 举报

25#
发表于 2009-10-19 14:54:49 | 只看该作者
boot目录不光boomgr要用,windows系统中有些功能也要用。你如果改了目录名,bcdedit就找不到bcd了
回复

使用道具 举报

26#
 楼主| 发表于 2009-10-19 15:15:01 | 只看该作者
我要是能改就好了,只要能改,就不怕BCD和其它文件不能处理。
另回24楼,我已经把方法在21楼说了。
回复

使用道具 举报

27#
 楼主| 发表于 2009-10-20 08:07:08 | 只看该作者
试验证明失败,移动了BOOT.WIM的位置会造成顶楼说的蓝屏。
回复

使用道具 举报

28#
发表于 2009-10-20 14:27:08 | 只看该作者
原帖由 victor888 于 2009-10-20 08:07 发表
试验证明失败,移动了BOOT.WIM的位置会造成顶楼说的蓝屏。

boot.wim和boot.sdi的路径可以用bcdedit在bcd中指定的
回复

使用道具 举报

29#
 楼主| 发表于 2009-10-20 15:04:59 | 只看该作者
fujianabc老兄,你说我能犯不改BCD那样的低级错误吗?我现在遗憾没有人动手和我一起探讨问题。
回复

使用道具 举报

30#
发表于 2009-10-20 19:06:21 | 只看该作者
boot.wim 和 boot.sdi 的文件名本人成功改过,修路径名没能修改成功,精力有限也就停止YY了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 11:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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