|
原理:
第一步
g4d利用chkpci 查询本机的硬件ID,然后将ID写入仿真盘中的drv.ini文件,格式为:- drvclass,厂商代码,硬件id例如NET,8086,PCI\VEN_8086&DEV_4227
复制代码 第二步
启动到win7pe后,执行drv.cmd 格式为:
[code[
drv.cmd drvclass,驱动包路径 例如:
drv.cmd NET,X:\DRIVERS\
[/code]
drv.cmd可以在桌面上创建快捷方式,将参数写进去。
---------------------------------------------------------------------------------------------------------
g4d部分的代码:- !BAT by sratlf,hotdll@20120608
- checkrange 20111103:-1 read 0x8278 > nul || clear && echo -e \n Not supported grub4dos version!\n && exit
- map --mem=0x20000 %~f0 (rd) > nul
- cat --locate=\x1f\x8b --number=1 (rd)+1 > nul || exit 1
- calc *0x82d8=*0x82d8-%?% > nul
- calc *0x82d0=*0x82d0+%?% > nul
- map --mem (rd)+1 (hd) > nul
- map --rehook
- insmod (hd-1,0)/F6.MOD > nul || exit
- echo ;@hotdll > (hd-1,0)/DRV.INI
- chkpci -srs | call :get_WHID SRS=
- chkpci -net | call :get_WHID NET=
- echo ;@sratlf >> (hd-1,0)/DRV.INI
- :get_WHID
- if "%~2"=="" && exit
- set WID=%~2
- if /i "%WID:~0,7%"=="PCI\VEN" && set HID=%WID:~0,21% ! shift 2 && goto :get_WHID
- echo %1,%HID:~8,4%,%HID% >> (hd-1,0)/DRV.INI \r \n
- shift 2 && goto :get_WHID
复制代码 drv.cmd- @echo off
- :: %1 指定DEV_CLASS,%2指定驱动路径
- :: PECMD调用本批处理的范例,EXEC @=DRV.CMD NET x:\drivers
- if "%~1"=="" echo 没有指定驱动类别,按任意键退出... && pause && exit
- if "%~2"=="" echo 没有指定驱动路径,按任意键退出... && pause && exit
- setlocal enabledelayedexpansion
- for /f " delims=, tokens=1-3 eol=;" %%i in (w:\drv.ini) do (
- if /i "%%i"=="%~1" echo %WinDir%\System32\PECMD DEVI *devid:%%k $%~dp2%%i\%%j.CAB
- )
复制代码
[ 本帖最后由 hotdll 于 2012-6-10 15:46 编辑 ] |
|