找回密码
 加入
搜索
查看: 1702|回复: 0

[系统综合] LocalSecurityAuuthority.au3 的权限问题 请问这段代码如何逆向

[复制链接]
发表于 2010-7-31 15:54:53 | 显示全部楼层 |阅读模式
; 防止文件删除
; 拒绝除SYSTEM外所有用户的访问,并设置文件拥有者为非当前用户。



#include <LocalSecurityAuthority.au3>



; 提升本进程至系统级权限。

If $CmdLine[0] = 0 or $CmdLine[1] <> "-System" Then

        If @Compiled Then

                $sApp = @ScriptFullPath

                $sArg = " -System"

        Else

                $sApp = @AutoItExe

                $sArg = " " & FileGetShortName(@ScriptFullPath) & " -System"

        EndIf

        _CreateProcessAsSystem($sApp, $sArg, "Winlogon.exe")

        Exit

EndIf





If Not FileExists("Test2.txt") Then Run(@ComSpec & " /c echo Delete Me>Test2.txt", "", 0)

Do        ; Why?

Until FileExists("Test2.txt")







; 启用RESTORE权限,(设置文件拥有者所需)。

Dim $aPriv[1][2] = [[$SE_RESTORE_NAME, 2]]

$hToken = _OpenProcessToken(@AutoItPid)

_AdjustTokenPrivileges($hToken, $aPriv)

_CloseHandle($hToken)





; 设置拥有者为Local Service,也可以是Network Service或者ANONYMOUS LOGON。

; 当某文件有访问控制列表但访问控制列表中无任何条目,或不为当前用户启用访问权限时,系统拒绝任何/当前用户的任何访问。此时只有拥有者才能重新设置其访问权限。此处选Local Service 或Network Service为拥有者是因为在管理员用户或普通用户下,创建LocalService或NetworkService级别的进程是很不容易实现的,就算能够创建,这两级别的进程也没有任何的访问权限。



_SetFileSecurityOwner("Test2.txt", "Local Service")

FileSetAttrib("Test2.txt", "+R")        ; 加只读属性

;Msgbox(0, '', FileDelete("Test2.txt"))





; 只允许SYSTEM用户的所有访问,其他一概拒绝。

Dim $aAce[1][4] = [["SYSTEM", $GENERIC_ALL, 1, 0]]

_SetFileSecurityDacl("Test2.txt", $aAce)

Msgbox(0, '完成', '测试是否能够删除')

; 缺点:防删除的文件必须位于NTFS文件系统中。相对于方案一,此法比较容易破解(也是优点?)。

; 优点:禁止除SYSTEM用户外的所有访问,长期有效(也是缺点?)。
请问这段代码如何逆向 可以删除!?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-3 07:52 , Processed in 0.080850 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表