pusofalse 大哥,请教关于LocalSecurityAuthority.au3的小小问题
使用以下脚本后#include <LocalSecurityAuthority.au3>If Not IsDeclared("PROCESS_ALL_ACCESS") Then $PROCESS_ALL_ACCESS = 0x1F0FFF
$iAccess = bitOr($POLICY_LOOKUP_NAMES, $POLICY_VIEW_LOCAL_INFORMATION)
$hPolicy = _LsaOpenPolicy($iAccess)
$aAccount = _LsaEnumerateAccountsWithUserRight($hPolicy, $SE_DEBUG_NAME)
If IsArray($aAccount) Then
For $i = 0 to Ubound($aAccount) - 1
_LsaRemoveAccountRights($aAccount[$i], $SE_DEBUG_NAME)
Next
_LsaClose($hPolicy)
If Msgbox(49, "", "第一次运行请先注销系统。") = 1 Then
Shutdown(0)
EndIf
Exit
EndIf
$pAcl = _SetEntriesInAcl1("Everyone", $PROCESS_ALL_ACCESS, $DENY_ACCESS)
$sApplication = @ScriptDir & "\abc.exe"
$sArguments = ""
$sSystemProcess = "WinLogon.exe"
$iProcessId = _CreateProcessAsSystem($sApplication, $sArguments, $sSystemProcess, $pAcl)
Msgbox(0, "", "Identifier of the newly created process: " & $iProcessId)重启后,虽然成功使abc.exe进程无法结束,但 unlocker 罢工了,如图
不知是否有解决法子?
现在就算不使用以上源码,unlocker仍然罢工,能不能恢复? 是这样的,这就是“创建不被结束的system进程“的BUG所在。
你的unlocker程序极有可能要提升自身到DEBUG权限之后才能正常工作,而提升到DEBUG权限成功的前提是当前用户必须要有DEBUG权限。上面的代码会移除用户的DEBUG权限,所以会使unlocker无法提升特权,它也就不能正常工作了。请下载最新版的库文件,恢复方法如下:#include <LocalSecurityAuthority.au3>
If _LsaAddAccountRight("Administrators", $SE_DEBUG_NAME) Then
Msgbox(0, "", "成功,注销生效。")
Else
Msgbox(0, "", "失败,错误码:" & @error)
EndIf Roger that
Very Well
It's work
Thank you 另外:2楼可以破解 冰点 修改系统权限导致unlocker失效!
十分感谢pusofalse 大哥
PS1:记得重启
PS2:不行的话,就把Administrators,改为Administrator,试试
页:
[1]