编程定制系统安装盘

上传人:pu****.1 文档编号:460518637 上传时间:2023-07-12 格式:DOC 页数:4 大小:33.50KB
返回 下载 相关 举报
编程定制系统安装盘_第1页
第1页 / 共4页
编程定制系统安装盘_第2页
第2页 / 共4页
编程定制系统安装盘_第3页
第3页 / 共4页
编程定制系统安装盘_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《编程定制系统安装盘》由会员分享,可在线阅读,更多相关《编程定制系统安装盘(4页珍藏版)》请在金锄头文库上搜索。

1、编程定制系统安装盘注:本文章首发黑客防线,后由原创作者提交到邪恶八进制信息安全团队,转载请注明出处。相信大家对各类集成了第三方软件的自动安装windows系统光盘并不陌生,为了快速装机,大多数人都采用了快速恢复安装和无人值守安装的方式。虽然方便,但这些方式却存在着诸多问题和隐患,那些默认自动安装的第三方软件是不是我们需要的暂且不说,就其安全性就很值得怀疑。前段时间就听说某某著名版本的装机光盘内含有恶意代码并以此谋利,而且我自己下载测试的其它几款装机光盘都或多或少的含有各类恶意软件和插件,有一个甚至直接被杀毒软件查出病毒,看来现在在装机光盘中做手脚的现象已是非常普遍了。为了简化装机步骤,我们如果

2、能够通过编程的方法来快速制作出自己的无人值守装机光盘,随时将各类自己常用的工具随时集成进去,将繁琐的手工操作自动化,那就可以真正的做到方便与安全兼顾了。当然,如果将恶意程序集成进去,那么此时杀软还没安装,顺利运行起来就不是难事了。首先要了解的是手动在安装光盘中集成软件的方法。微软提供的集成方法是利用批处理来完成补丁程序和其他程序的调用和自动安装,批处理的运行又依靠于Winnt.sif中RunOnceE功能来实现。这个Winnt.sif文件将在安装系统的过程中提供所有预先输入好的应答信息。其过程是先把所有需要自动安装的补丁或程序放到安装光盘的“$OEM$1文件安装目录(如:install)”目录

3、下,再编写一个或多个批处理来让他们依次执行安装。在安装过程中,安装程序会先把“$1”目录下所有文件都拷贝到硬盘系统盘下,然后以Winnt.sif中的RunOnceE字段来执行文件。唯一可以改名的文件夹只有“install”目录,我们可以把它改为自己喜欢的名字,本文默认使用“install”。不论你使用什么名称,但要确保使用的名称跟你在批处理文件中的名称是统一的。Winnt.sif文件可以由Setup Manager(setupmgr.exe)工具来生成,该程序是可用来创建winnt.sif应答文件向导模式的工具。本文中我们所讨论的是如何将自己的程序集成到安装光盘中并自动运行,因此主要关心的是w

4、innt.sif文件中与自动运行第三方应用程序相关的项,这些项主要包括:1、winnt.sif文件的Data字段。将该字段下的UnattendedInstall设置为Yes,则会进行一次无人值守的安装。2、winnt.sif文件的Unattended字段。在该字段中添加以下内容:OemPreinstall=YesOemPreinstall项设置为Yes是为了让系统在安装过程中从$OEM$1文件夹下安装额外的程序,这样安装程序就会知道这次的安装会发布其他程序,而预先把相应的安装文件复制到磁盘中以便安装。3、winnt.sif文件的GuiRunOnce字段。在winnt.sif文件的GuiRunO

5、nce字段下指定要执行的批处理文件(*.cmd 或者 *.bat),添加批处理文件的路径位置。可使其在安装程序安装好操作系统并使用管理员帐户登录系统后运行这些批处理。在这一过程中我们可以安装Hotfix补丁程序、应用程序、删除不想要的墙纸和屏幕保护等。可以看出,实现程序自动安装的关键就在于Winnt.sif文件,该文件为从光盘安装系统的无人职守方式用脚本,其存在于I386 目录下,该文件的详解格式和说明在此处就不再赘述,大家可以在网上找到更详细的资料。如何编写在winnt.sif文件下GuiRunOnce字段中指定运行的批处理文件呢,下面是一个编写好的批处理“applications.cmd”

6、文件内容(本文中批处理名称采用applications.cmd): 复制内容到剪贴板 代码:applications.cmd:CLSecho offECHO.ECHO 安装我的文件mytestECHO 请稍等.start /wait %systemdrive%installApplicationsmytest.exe /SECHO.ECHO 删除安装过程中的临时文件.RD /S /Q %systemdrive%installECHO.EXIT在上面文件中我们可以添加多个需要安装的程序。源程序的路径也可以根据情况更改。最后别忘了把批处理文件的路径添加到winnt.sif文件的GuiRunOnce

7、 字段!当然,如果你的程序或其他第三方软件没有静默安装参数就需要你自己手动去写自动安装的脚本了。现在以Windows XP SP2光盘为例,将整个制作过程分成以下几个阶段:1、 将Windows XP SP2光盘内容解压至硬盘某一目录;2、 创建winnt.sif文件;3、 更改winnt.sif文件;4、 创建“$OEM$1.“安装目录;5、 复制欲安装程序到安装目录;6、 创建批处理文件;7、 添加运行程序的批处理命令;8、 将更改后的Windows XP SP2内容重新打包成系统光盘。下面我们开始编程将制作过程的第2步到第7步的六个步骤自动化。本程序采用VC6.0编写,在虚拟机VM6.0

8、下测试成功。重点代码如下: 复制内容到剪贴板 代码:CharFilePath255; BROWSEINFO BroInfo; ITEMIDLIST *pidl; BroInfo.hwndOwner = this-m_hWnd; BroInfo.pidlRoot = NULL; BroInfo.pszDisplayName = szDir; BroInfo.lpszTitle = 选择要添加的文件夹; BroInfo.ulFlags = BIF_RETURNONLYFSDIRS|BIF_DONTGOBELOWDOMAIN; BroInfo.lpfn = NULL; BroInfo.lParam

9、= 0; BroInfo.iImage = 0; pidl = SHBrowseForFolder(&BroInfo); if(pidl = NULL) return; SHGetPathFromIDList(pidl, FilePath);m_CatalogName=FilePath;/判断输入的目录是否存在if (!PathFileExists(szDir)MessageBox(目录不存在,注意,MB_OK);return;以上代码的主要作用是利用SHBrowseForFolder函数来实现选择一个目录的功能。在VC6.0中没有提供打开目录对话框控件,我们可以通过以上方式实现。在“选择文件

10、”按钮下的主要代码为: 复制内容到剪贴板 代码:CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);/通过模态对话框显示文件对话框if (dlg.DoModal()=IDOK)m_FilePathName=dlg.GetPathName(); /获取文件路径 m_RichEditProcInfo.SetSel(-1,-1); /设置RICHEDIT内容,将指针设置到编辑框最后 m_RichEditProcInfo.ReplaceSel(文件路径:);/替换编辑框最后的内容,在最后添

11、加内容 m_RichEditProcInfo.ReplaceSel(m_FilePathName);m_RichEditProcInfo.ReplaceSel(rn); UpdateData(FALSE);/用获取的文件路径更新编辑框内容。以上代码主要实现通过文件对话框选择exe可执行文件和RichEdit控件内容的功能。在“开始”按钮下,首先通过以下代码获得当前应用程序所在目录: 复制内容到剪贴板 代码:CString path_directory,path_txt; /path_directory:路径 path_txt:路径文件名GetModuleFileName(NULL,path_t

12、xt.GetBuffer(MAX_PATH),MAX_PATH); /得到当前执行程序的路径path_txt.ReleaseBuffer(); int path_directory_length = path_txt.ReverseFind(); /在path_txt中找到最后一个path_directory = path_txt.Left(path_directory_length + 1);以下代码是通过文件操作来修改自动创建成功的WINNT.sif文件。 复制内容到剪贴板 代码:FILE *SifFile;if(SifFile = fopen(SifFilePath,at+) = NUL

13、L) /文本文件,允许读和追加 return;fseek(SifFile,0L,SEEK_END);fputs(rn, SifFile);fputs(GuiRunOncern, SifFile);fputs(%systemdrive%installapplications.cmdrn, SifFile);fclose(SifFile);其余如怎么创建运行程序的批处理文件等代码大家可以参见光盘中的源代码,这里就不再赘述。最后的步骤就是把解压到硬盘上的XP目录下的所有文件都刻录到光盘上,别忘了要做成的是可以引导系统的光盘。为了节省时间一个简单的方法是:使用一个空白的可引导的XP ISO文件,在WinISO中打开它,然后把我们用程序处理过的解压到硬盘上的XP目录下的内容拖动到WinISO界面上,然后保存ISO。这样的ISO文件就可以在常见的刻录软件中以光盘镜像的形式刻录了。而你也可以在Virtual PC / VMWare等虚拟机软件中载入ISO文件做测试。程序中还存在这一些不足,如该程序没有考虑到有安装参数和需要交互的安装程序的问题,同时只能添加一个自动执行的程序。不过这些问题都可以通过简单的程序修改来解决,这里只是做一个示例,有问题欢迎大家一起交流。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号