inf文件基础知识

本文介绍了Windows下inf文件的使用,包括修改telnet服务端口和认证方式、增加与删除服务、设置组策略(如密码长度、关闭审核策略)以及解决XP ipc$连接权限问题。详细说明了各操作的inf文件内容、安装命令及相关参数含义,还对比了inf文件与其他方式的优势。
 本文对inf文件基础知识,将不进行介绍。 
关于inf文件的详细结构信息,可参考DDK帮助文档。 

一、修改telnet服务,端口改为99,NTLM认证方式为1。 
=============================== 

C:/myinf/Telnet.inf 

[Version] 
Signature="$WINDOWS NT$" 
[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="$WINDOWS NT$" 
[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="$WINDOWS NT$" 
[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="$CHICAGO$" 
[System Access] 
MinimumPasswordLength = 6 
PasswordComplexity = 1 

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


2、关闭所有的“审核策略 

echo [version] >1.inf 
echo signature="$CHICAGO$" >>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="$CHICAGO$" >>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.* 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值