一起学习网 一起学习网


VBSCript之GenerateSDDL函数(权限设置)

网络编程 VBSCript之GenerateSDDL函数(权限设置) 06-22


Function GenerateSDDL(AccountName, AccessFlag, AccessType, AccessMask)
Dim Accounts, ObjWMI, ObjSID, ObjTru, ObjACE
Const SET_DACL_PRESENT = &H8004

Set ObjWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate, (Security)}!\.rootcimv2")

Set Accounts = ObjWMI.ExecQuery("SELECT * FROM Win32_Account WHERE Name='" & AccountName & "'")
For Each Account In Accounts
StrSID = Account.SID
Next
Set ObjSID = ObjWMI.Get("Win32_SID.SID='"& StrSID &"'")

Set ObjTru = ObjWMI.Get("Win32_Trustee").SpawnInstance_()
ObjTru.Domain = ObjSID.ReferencedDomainName
ObjTru.Name = ObjSID.AccountName
ObjTru.SID = ObjSID.BinaryRepresentation
ObjTru.SidLength = ObjSID.SidLength
ObjTru.SIDString = ObjSID.Sid

Set ObjACE = ObjWMI.Get("Win32_ACE").SpawnInstance_()
ObjACE.Trustee = ObjTru
ObjACE.AceType = AccessType
ObjACE.AccessMask = AccessMask
ObjACE.AceFlags = AccessFlag

Set GenerateSDDL = ObjWMI.Get("Win32_SecurityDescriptor").SpawnInstance_()
GenerateSDDL.Owner = ObjTru
GenerateSDDL.DACL = Array(ObjACE)
GenerateSDDL.ControlFlags = SET_DACL_PRESENT
End Function

例子:


strPath = "d:\1.txt"
Set ObjWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate, (Security)}!\.rootcimv2")
Set ObjSec = ObjWMI.Get("Win32_LogicalFileSecuritySetting.Path='" & strPath & "'")
ObjSec.SetSecurityDescriptor(GenerateSDDL("everyone", &H0, &H1, &H100E0))

文章来源: http://www.enun.net/?p=1255

去掉RAR右键解压菜单的VBS代码
原理:http://demon.tw/programming/vbs-binary-file-another.htmlPublicReadBinaryReadBinaryDat(".1.exe")BinaryDat=Replace(Replace(ReadBinary,"526172211a07","522172211a07"),"807a0161","807a0121")WriteBi

使用VBS修改二进制文件HEX数据
可用之处还是有的,如:隐藏快捷方式中目标文件位置;破解XP中TCP/IP连接数限制;去掉RAR右键解压菜单等等。PublicBinaryDataIf(lcase(right(wscript.fullname,11))="

利用VBS脚本修改联想笔记本BIOS密码的代码分享
这不科学!无意中找到的一些资料:vbs代码:strComputer="."SetobjWMIService=GetObject("winmgmts:\"&strComputer&"rootWMI")'Obtainaninstanceofthetheclass'usingakeypropertyvalue.Setobj


编辑:一起学习网

标签:右键,代码,菜单,之处,无意中