如何编写 INF 文件INF文件全称Information File文件,是Winodws操作系统下用来描绘设备或文件等数据信息的文件。INF文件是由规范的ASCII码组成,您能够用任何一款文字编辑器查看修正其中的内容。普通我们总是以为INF文件是系统设备的驱动程序,其实这是错误的认识,Windows之所以在装置某些硬件的驱动时提示需求INF文件是由于INF文件为该设备提供了一个全面描绘硬件参数和相应驱动文件(DLL文件)的信息。就好比我们看着阐明书装置电脑硬件一样,我们就是Windows系统,阐明书就是INF文件。INF文件功用十分强大,简直能完成日常操作的一切功用。您能够把它看成是Windows系统底下的超强批初理。要纯熟控制和了解以至是编写INF文件需求对其内部构造有相当的认识。下面就让我们来深化到INF文件中的内部一窥其真相貌吧!

INF文件的组成有节(Sections),键(Key)和值(value)三局部。
关键节有
[Version]版本描绘信息,主要用于版本控制。
[Strings]字符串信息,用于常量定义。
[DestinationDirs]定义系统途径信息。
[SourceDisksNames]指明源盘信息。
[SourceDisksNames]指明源盘文件名。
[DefaultInstall]开端执行装置。
其它的节能够自定义,下面用一实例来详细解说。

程序代码
[Version]
Signature=ChicagoChicagoChicago
Provider=%Author%

[Strings]
Product=“添加文件关联演示”
Version=“1.0”
Author=“Xunchi”
Copyright=“Copyright 2005”
CustomFile=“inf” ;修正您需求的文件名后缀
Program=“NOTEPAD.EXE” ;修正您需求关联的应用程序名

[Add.Reg]
HKCR,"."%CustomFile%,"",FLG_ADDREG_TYPE_SZ ,%CustomFile%File
HKCR,%CustomFile%File,"",FLG_ADDREG_TYPE_SZ,装置信息
HKCR,%CustomFile%“File\shell”,"",FLG_ADDREG_TYPE_SZ,open
HKCR,%CustomFile%“File\shell\open\command”,"",FLG_ADDREG_TYPE_SZ,%program% %1

[DefaultInstall]
AddReg=Add.Reg

在[Version]节中"Signature"项定义了该INF文件需求运转在何种操作系统版本中。有WindowsNTWindows NTWindowsNT, ChicagoChicagoChicago, or Windows95Windows 95Windows95三个值供选择,普通选择ChicagoChicagoChicago即可。项Provider中定义了该文件的创作来源,%Author%指援用Author项的值。您也可自定其它项来描绘该INF文件的版本信息。该INF文件的作用是关联文件,所以主要是对注册表的操作,我们来看[Add.Reg]节,共四条语句,格式都是一样。HKCR表示根HKEY_CLASSES_ROOT,第二个参数是子键的途径名,第三个参数是标明值的类型,最后是值(详细见附表)。以上都是对操作的定义与过程,在节[DefaultInstall]中是开端执行要装置的流程,AddReg标明是对注册表停止操作,操作对象是Add.Reg节中的定义。假如您把AddReg换成DelReg则是删除注册表中的键值。当鼠标单击该INF文件在弹出的菜单当选择“装置”就开端执行您所定义的操作。该示例在系统的INF文件右键菜单中增加了查看编辑功用并设置了默许动作,由于在装置了不理解的INF文件有可能对系统产生不良的影响,这样双击文件就可翻开编辑该文件了。

再看看INF文件在文件操作方面的才能吧。请看下面的一个例子。

程序代码
[Version]
Signature=ChicagoChicagoChicago
Provider=%Author%
[Strings]
Product=“文件复制和装置演示”
Version=“1.0”
Author=“Xunchi”
Copyright=“Copyright 2005”

[FileList]
ProcessList.exe ;此文件已在当前目录下,下同。

[FileList1]
Wordpad.exe
[DestinationDirs]
FileList=11 ;装置到Windows的系统目录
FileList1=10 ;装置到Windows目录
[DefaultInstall]
Copyfiles=FileList,FileList1

相同的节的作用与上一例相似,请留意新呈现的节[FileList],这是我自定义的节名,它表示了一个文件组,[FileList1]也相似。在节[DestinationDirs]中需定义每个文件组复制到的目录(各个常量的意义见附表)。Copyfiles指明了需求停止复制的文件组。
  INF文件的操作还包括效劳(NT系统)程序的装置和卸载,INI文件的转换等。由于这些操作都比拟的复杂和繁琐,且有一定的风险性故下次有时机再向大家停止深化讨论。
  最后我们来看一下INF文件的执行机制,这时你或许要问不就是简单的执行一下“装置”吗?知其然不知其所以然学问程度是不会进步的。在“文件夹选项”中的“文件类型”找到INF文件的“装置”命令看到一串命令。“rundll32.exe setupapi,InstallHinfSection DefaultInst_all 132 %1”它表示了运转Dll文件setupapi.dll中的命令InstallHinfSection并传送给它起始节的名字 DefaultInstall。可见起始节是能够自定义的。INF文件的执行也可用在各种支持API调用的编程工具中。至此INF文件的构造和运转机制我们已根本理解,如今就让你的思想开动起来,让它更好的为我们工作吧。

注册表操作的常量定义:

常量 根值
HKCR HKEY_CLASSES_ROOT.
HKCU HKEY_CURRENT_USER.
HKLM HKEY_LOCAL_MACHINE.
HKU HKEY_USERS.

FLG_ADDREG_APPEND 在多字符串后添加字符
FLG_ADDREG_TYPE_SZ 字符类型
FLG_ADDREG_TYPE_MULTI_SZ 字符串类型
FLG_ADDREG_TYPE_ExpAND_SZ 扩展字符串类型
FLG_ADDREG_TYPE_BINARY 二进制值
FLG_ADDREG_TYPE_DWORD DWord值
FLG_ADDREG_TYPE_NONE NULL值

[DestinationDirs]节中所定义的常量途径

01 源目录(后跟途径)
10 Windows目录
11 Windows系统目录
12 驱动目录
17 INF文件目录
18 协助文件目录
20 字体目录
21 根目录
24 应用程序目录
25 共享目录
30 当前根目录
50 System目录
51 Spool 目录
52 Spool 驱动目录
53 用户配置目录

[DefaultInstall]节中定义的操作

LogConfig Log日志文件配置
Copyfiles 复制文件
Renfiles 文件改名
Delfiles 删除文件
UpdateInis 更新Inis
UpdateIniFields 更新Ini字段
AddReg 添加注册项
DelReg 删除注册项
Ini2Reg Ini文件转换为Reg文件

INF文件应用示例
一、修正telnet效劳,端口改为99,NTLM认证方式为1。

C:\myinf\Telnet.inf

[Version]
Signature="WINDOWSNTWINDOWS NTWINDOWSNT"
[DefaultInstall]
AddReg=AddRegName
[My_AddReg_Name]
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,TelnetPort,0x00010001,99
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,NTLM,0x00010001,1

装置:rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\myinf\telnet.inf

阐明:[Version]和[DefaultInstall]是必需的,0x00010001表示REG_DWORD数据类型,0x00000000或省略该项(保存逗号)表示REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。
InstallHinfSection是大小写敏感的。它和setupapi之间只要一个逗号,没有空格。128表示给定途径,该参数其他取值及含义参见MSDN。
特别留意,最后一个参数,必需是inf文件的全途径,不要用相对途径。
inf文件中的项目都是大小写不敏感的。

二、效劳

增加一个效劳:

[Version]
Signature="WINDOWSNTWINDOWS NTWINDOWSNT"
[DefaultInstall.Services]
AddService=inetsvr,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供对 Internet 信息效劳管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary=%11%\inetsvr.exe

保管为inetsvr.inf,然后:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\path\inetsvr.inf

这个例子增加一个名为inetsvr的效劳(是不是很像系统自带的效劳,呵呵)。

几点阐明:
1,最后四项分别是
效劳类型:0x10为独立进程效劳,0x20为共享进程效劳(比方svchost);
启动类型:0 系统引导时加载,1 OS初始化时加载,2 由SCM(效劳控制管理器)自动启动,3 手动启动,4 禁用。
(留意,0和1只能用于驱动程序)
错误控制:0 疏忽,1 继续并正告,2 切换到LastKnownGood的设置,3 蓝屏。
效劳程序位置:%11%表示system32目录,%10%表示系统目录(WINNT或Windows),%12%为驱动目录system32\drivers。其他取值参见DDK。你也能够不用变量,直接运用全途径。
这四项是必需要有的。
2,除例子中的六个项目,还有LoadOrderGroup、Dependencies等。不常用所以不引见了。
3,inetsvr后面有两个逗号,由于中间省略了一个不常用的参数flags。

删除一个效劳:

[Version]
Signature="WINDOWSNTWINDOWS NTWINDOWSNT"
[DefaultInstall.Services]
DelService=inetsvr

很简单,不是吗?

当然,你也能够经过导入注册表到达目的。但inf自有其优势。
1,导出一个系统自带效劳的注册表项,你会发现其执行途径是这样的:
“ImagePath”=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,\
00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00
可读性太差。其实它就是%SystemRoot%\system32\tlntsvr.exe,但数据类型是REG_EXPAND_SZ。当手动导入注册表以增加效劳时,这样定义ImagePath显然很不便当。假如用REG_SZ替代会有些问题——不能用环境变量了。即只能运用完好途径。用inf文件完整没有这个问题,ServiceBinary(即ImagePath)自动成为REG_EXPAND_SZ。
2,最关键的是,和用SC等工具一样,inf文件的效果是即时起效的,而导入reg后必需重启才有效。
3,inf文件会自动为效劳的注册表项添加一个Security子键,使它看起来更像系统自带的效劳。

另外,AddService和DelService以及AddReg、DelReg能够同时且反复运用。即能够同时增加和删除多个效劳和注册表项。

三、组战略

1、密码最小6位
[version]
signature="CHICAGOCHICAGOCHICAGO"
[System Access]
MinimumPasswordLength = 6
PasswordComplexity = 1

保管为gp.inf,然后导入:
secedit /configure /db gp.sdb /cfg gp.inf /quiet

2、关闭一切的“审核战略

echo [version] >1.inf
echo signature="CHICAGOCHICAGOCHICAGO" >>1.inf
echo [Event Audit] >>1.inf
echo AuditSystemEvents=0 >>1.inf
echo AuditObjectAccess=0 >>1.inf
echo AuditPrivilegeUse=0 >>1.inf
echo AuditPolicyChange=0 >>1.inf
echo AuditAccountManage=0 >>1.inf
echo AuditProcessTracking=0 >>1.inf
echo AuditDSAccess=0 >>1.inf
echo AuditAccountLogon=0 >>1.inf
echo AuditLogonEvents=0 >>1.inf
secedit /configure /db 1.sdb /cfg 1.inf /log 1.log /quiet
del 1.*

四、处理XP ipc$衔接只要Guest权限

echo [version] >1.inf
echo signature="CHICAGOCHICAGOCHICAGO" >>1.inf
echo [Registry Values] >>1.inf
echo MACHINE\System\CurrentControlSet\Control\Lsa\ForceGuest=4,0 >>1.inf
secedit /configure /db 1.sdb /cfg 1.inf /log 1.log
del 1.*

如何编写 INF 文件相关推荐

  1. [转]如何编写 INF 文件

    INF文件全称Information File文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件.INF文件是由标准的ASCII码组成,您可以用任何一款文字编辑器查看修改其中的内容.一 ...

  2. 扩展使用.INF文件-制作免安装的绿色软件

    扩展使用.INF文件-制作免安装的绿色软件 在我写的专门的文章--绿色软件的制作中(http://dream4ever.org/showthread.php?p=33652#post33652) ,讲 ...

  3. INF文件是什么(转)

    原文转自:http://www.cnblogs.com/huangfh/archive/2005/11/21/281680.html INF是 Device Information File 的缩写, ...

  4. inf文件基础知识扫盲

    INF文件全称Information File文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件.INF文件是由标准的ASCII码组成,您可以用任何一款文字编辑器查看修改其中的内容.一 ...

  5. 记录windows驱动开发inf文件详解

    深入学习INF文件 简单来说就是微软为安装硬件驱动所开发的一种脚本.可以用来节拷贝.删除文件,增.删注册表键,更改系统设置. 先看一下这篇文章 Windows系统下INF 详细说明  http://w ...

  6. 解读Inf文件(驱动程序安装信息文件)

    INF文件全称Information File文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件.INF文件 是由标准的ASCII码组成,您可以用任何一款文字编辑器查看修改其中的内容. ...

  7. ActiveX控件打包cab时INF文件的编写

    虽然微软对ActiveX越来越不信任,但是这个技术还是很多人喜欢用的,这个博客的编辑器貌似就用到了ActiveX. 在我们编写好ocx控件后只有在打包成CAB文件加入数字签名后才能正常发布,如果你用的 ...

  8. ActiveX控件打包cab时INF文件的编写[转]

    虽然微软对ActiveX越来越不信任,但是这个技术还是很多人喜欢用的,这个博客的编辑器貌似就用到了ActiveX. 在我们编写好ocx控件后只有在打包成CAB文件加入数字签名后才能正常发布,如果你用的 ...

  9. 关于Autorun.inf文件

    配置Autorun.inf文件可以使双击磁盘时,自动运行某一应用程序.但是现在只支持CD或者DVD媒体了(以前硬盘也可以) 关于Autorun.inf的组成部分可以参考https://msdn.mic ...

最新文章

  1. 防sql注入Replace区分大小写
  2. Android性能优化(3)
  3. Caffe学习系列(15):计算图片数据的均值
  4. C# WinfForm 控件之dev报表 XtraReport (六) 图表Charts 无内容
  5. [HOW TO]-官网拉取Trusty-TEE的代码
  6. 想拿下互联网大厂OFFER,都需要准备什么?
  7. c语言参数string类型,C语言main方法的参数打印
  8. 浅谈C#中virtual和abstract的区别
  9. python中的turtle如何运行_python中turtle库的简单使用教程
  10. 考验你的吉他入门了吗?
  11. Storm原理及单机安装指南
  12. 获得周公解梦数据接口java_周公解梦接口调用示例
  13. java 进度条时间设置_java进度条时间显示怎么实现?
  14. 【flutter】整合高德地图amap_base
  15. Caltech-UCSD Birds 200 (CUB) 数据库预处理
  16. 64位系统装32位mysql有问题吗_32位系统部署到64位下常见问题及解决
  17. 微型计算机中的位置的是什么,电脑基础知识问答卷
  18. 2019提前批——拼多多笔试题
  19. oracle异地容灾备份 英文6,异地容灾备份的方案.doc
  20. PS 滤镜——(扭曲)球面化 Spherize

热门文章

  1. vue 数字滚动递增效果
  2. 软件危机表现,原因及解决方法
  3. 100天精通Python(基础篇)——第26天:lambda表达式基础+代码实战
  4. 考公 or 直接找工作,该怎么选?
  5. CCS+C6678LE开发记录08:以太网接口测试示例之代码研究
  6. 如何修改win10系统的字体
  7. 电路中滤波电容和退耦电容_【硬见小百科】关于滤波电容、去耦电容、旁路电容作用及其原理...
  8. 0091-【Python系统】-Python 资源大全中文版
  9. cadence allegro导入dxf文件
  10. 电脑计算机u盘打印机,手把手处理win10系统设备和打印机选项无法打开的方案