实现步骤
1. 建立Main.bat文件
以管理员身份登录Windows XP,在系统盘的根目录下新建一个名为Main.bat的文件(文件名可以随便取,下同)并输入如下内容:
cd
C:
cd Windowssystem32
defrag C: /f
chkntfs C:
2. 建立Main.inf文件
新建一个文件名为Main.inf的文件并输入:
[version]
Signature= "$CHICAGO$"
AdvancedINF= 2.5,"advpack.dll"
[DefaultInstall]
RunPreSetupCommands=Tst.PreSetup
RunPostSetupCommands=Tst.PostSetup
[Tst.PreSetup]
C:Main.bat
[Tst.PostSetup]
C:WINDOWSSYSTEM32TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN
在这个文件中,Signature必须设置为”$CHICAGO$”,否则文件将无法起作用
3. 建立Begin.bat文件
在C盘根目录下建立批处理文件Begin.bat,向这个文件中输入:
C:WINDOWSSystem32 undll32.exe advpack.dll,LaunchINFSectionEx
C:Main.inf,DefaultInstall,,32
这个命令的作用是让Windows XP启动一个硬件安装过程,从而执行.inf文件中的指令。Rundll32.exe在Windows中被用来调用DLL文件(动态链接库)中函数提供的功能。比如这里的rundll32.exe就调用了advpack.dll中的LaunchINFSectionEx函数,这个函数的作用就是启动一个.inf安装过程。不过Main.inf的内容已经和硬件安装无关,而是被偷梁换柱改成了系统自动维护的命令。