Win10系统获得最高管理员权限方法

| 收藏本文 下载本文 作者:xidianwzk

下面小编为大家带来Win10系统获得最高管理员权限方法(共含6篇),希望大家喜欢!同时,但愿您也能像本文投稿人“xidianwzk”一样,积极向本站投稿分享好文章。

Win10系统获得最高管理员权限方法

篇1:Win10系统获得最高管理员权限方法

具体方法如下:

1、登录到win10专业版系统桌面,在开始菜单旁边的输入栏里面输入“管理工具”,然后点击打开管理工具。

2、在弹出的管理工具窗口中,点击打开“计算机管理”图标。

3、接着在计算机管理窗口中,依次展开:本地用户和组 - 用户,然后在用户右侧界面找到“Administrator”帐户。

4、双击打开Administrator帐户,然后在弹出的Administrator属性窗口中,点击取消勾选“帐户已禁用(B)”点击确定完成操作。

5、完成以上设置之后,返回到系统桌面,点击开始菜单,然后点击开始菜单左上角的输入用户名 - 注销,点击注销电脑。

6、注销完成之后屏幕会出现一张屏保图片,使用鼠标任意点击进入下一步操作。

7、最后在左下角点击选择登录帐户为“Administrator”,点击“登录”按钮登录系统完成操作。

关于以上Windows10系统获得最高管理员权限的操作方法就介绍完了,如果用户想要获得Win10最高管理员权限,还有不懂的怎样获得最高管理员权限的朋友,那么可以按照以上操作方法进行即可。

篇2:win10系统获得管理员权限方法

win10系统获得管理员权限方法

1、在右下方任务栏的“搜索web和windows”输入框中输入“gpedit.msc”,电脑会自行搜索,搜索完毕之后鼠标点击打开。

2、打开本地组策略管理器。

3、依次点击打开“计算机配置”选项,然后再找到“Windows设置”这个选项,再从“Windows设置”找到并打开“安全设置”选项,接着打开“本地策略”最后找到打开“安全选项”即可。

4、找到“账户:管理员状态”,可以看见状态为“已禁用”,我们需要的是将它开启。

5、鼠标右键单击“账户:管理员状态”,在弹出的'快捷菜单中选择“属性”。

6、在“账户:管理员状态”属性中,将以启用选中即可。

7、如果想修改管理员账户的名字,找到“账户,重命名系统管理员账户”,右键单击,选择属性。

8、系统默认系统管理员的名字为administrator,你可以根据自己的喜好修改,如果不想修改名字,这一步操作可以忽略。

篇3:windows7系统怎么获得管理员权限电脑新手办公/数码

对于一般操作的文件我们不需开户windows7的administrator权限了,只要简单的操作一下即可解决此问题,下面给各位朋友举个实例,

对于一般文件获得管理员权限

1、简单的文件我们像documents and settings这类文件点击打开时提醒没有权限访问该文件夹了。

2、我们只要右击要查看的文件夹,然后在弹出菜单点击“管理员取得所有权”即可,    3、如果是文件我们同样右击,然后选“以管理员身份运行” 就可以解决了。开启Administrator账户的方法

1、如果想开户超级管理员,我们只要右击桌面上的“计算机”-》“管理”。

2、然后在管理员我们点击左边的“本地用户和组”-》“用户”再右击“administrator”点击属性。    3、然后把此帐号打开即可。

篇4:从管理员身份获得 SYSTEM 权限的四种方法

本文总结了 4 种方法获得 SYSTEM 权限来运行 regedit.exe 文件,

源代码很容易修改成命令行方式运行指定的程序,

1. 以服务方式运行

2. 添加 ACL 的方法

3. HOOK ZwCreateProcessEx 函数

4. 远程线程的方法

这几种方法都不是我想出来的,我只不过是总结了一下,用 Win32ASM 重写了代码而以。

关于这个大家可以看文章末尾的参考资料。下面简单的分析每一种方法。

1. 以服务方式运行

因为以服务方式运行程序时,相当于运行程序的是系统进程,所以,

被指定运行的程序自然而然的继承了系统进程的权限,也就是 SYSTEM 权限。

;@echo off

;goto make

;====================================================================================

; 一块三毛钱

; zhongts.yeah.net

; zhongts@163.com

; .1.15

;

; 以 SYSTEM 权限运行程序 - GetSys1

;

; 采用以服务方式运行的方法

;

;====================================================================================

.386

.model flat, stdcall

option casemap :none

include c:\masm32\include\windows.inc

include c:\masm32\include\kernel32.inc

include c:\masm32\include\advapi32.inc

include c:\masm32\include\masm32.inc

includelib c:\masm32\lib\kernel32.lib

includelib c:\masm32\lib\advapi32.lib

includelib c:\masm32\lib\masm32.lib

_ReLaunch proto

CTXT MACRO text

local lbl

.const

lbl db text,0

.code

exitm

ENDM

.code

start proc

LOCAL  stStartupInfo : STARTUPINFO

LOCAL  procinfo : PROCESS_INFORMATION

invoke CreateMutex, NULL, TRUE, CTXT(“GetSys1_Mutex”)

invoke GetLastError

.if eax==ERROR_ALREADY_EXISTS

invoke RtlZeroMemory, addr stStartupInfo, sizeof stStartupInfo

mov    stStartupInfo.cb, sizeof stStartupInfo

invoke CreateProcess, 0, CTXT(“regedit.exe”), 0, 0, 0, 0, 0, 0,

addr stStartupInfo, addr procinfo

invoke CloseHandle, procinfo.hProcess

invoke CloseHandle, procinfo.hThread

.else

invoke _ReLaunch

.endif

invoke ExitProcess, NULL

start endp

_ReLaunch proc

LOCAL  hSCManager

LOCAL  hService

LOCAL  szName[MAX_PATH] : byte

invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE

.if eax!=0

mov    hSCManager, eax

invoke OpenService, hSCManager, CTXT(“GetSys1Temp”), DELETE

.if eax!=0

push   eax

invoke DeleteService, eax

call   CloseServiceHandle

.endif

invoke GetModuleFileName, NULL, addr szName, MAX_PATH

invoke CreateService, hSCManager, CTXT(“GetSys1Temp”), CTXT(“GetSys1 Temp Service”), \

SERVICE_START + SERVICE_QUERY_STATUS + DELETE, \

SERVICE_WIN32_OWN_PROCESS + SERVICE_INTERACTIVE_PROCESS, SERVICE_DEMAND_START, \

SERVICE_ERROR_IGNORE, addr szName, NULL, NULL, NULL, NULL, NULL

.if eax!=0

mov    hService, eax

invoke StartService, hService, 0, NULL

invoke DeleteService, hService

invoke CloseServiceHandle, hService

.endif

invoke CloseServiceHandle, hSCManager

.endif

ret

_ReLaunch endp

end start

:make

set path=%path%;c:\masm32\bin

set appname=GetSys1

ml /nologo /c /coff %appname%.bat

link /nologo /subsystem:windows %appname%.obj

del %appname%.obj

echo.

pause

GetSys1(第一次运行的这个进程 GetSys1 我们称为 A) 开始运行时先创建一个互斥量,

接着以服务的方式重新启动自己

(又一次运行的进程 GetSys1 我们称为 B),重新运行后的 B 已经具有了 SYSTEM 权限。

B 再通过 CreateProcess 函数运行 regedit.exe 程序,

因为 B 具有 SYSTEM 权限,所以 regedit.exe 从中继承了 SYSTEM 权限。

运行完了 regedit.exe 后 B 结束运行,

然后 A 中的 StartService 函数返回,A 结束运行。就是因为 StartService 函数不会直接返回,

所以不能够直接通过服务的方式运行 regedit.exe。

2. 添加 ACL 的方法

主要思想是调用 CreateProcessAsUser 函数来运行程序,CreateProcessAsUser

函数的第一个参数是特定用户的令牌,

把这个参数设为具有 SYSTEM 权限的令牌即可。

;@echo off

;goto make

;====================================================================================

; 一块三毛钱

; zhongts.yeah.net

; zhongts@163.com

; 2005.1.15

;

; 以 SYSTEM 权限运行程序 - GetSys2

;

; 采用添加 ACL 的方法

;

;====================================================================================

.386

.model flat, stdcall

option casemap :none

include c:\masm32\include\windows.inc

include c:\masm32\include\kernel32.inc

include c:\masm32\include\advapi32.inc

include c:\masm32\include\accctrl.inc

include c:\masm32\include\masm32.inc

includelib c:\masm32\lib\kernel32.lib

includelib c:\masm32\lib\advapi32.lib

includelib c:\masm32\lib\masm32.lib

_EnablePrivilege proto :DWORD,:DWORD

_GetPidFromProcName proto :DWORD

_ModifySecurity proto :DWORD,:DWORD

CTXT MACRO text

local lbl

.const

lbl db text,0

.code

exitm

ENDM

ACL STRUCT

AclRevision    BYTE ?

Sbz1           BYTE ?

AclSize        WORD ?

AceCount       WORD ?

Sbz2           WORD ?

ACL ENDS

PACL typedef PTR ACL

SecurityImpersonation  equ 2

.code

start proc

LOCAL  hProc

LOCAL  hToken, hNewToken

LOCAL  stStartupInfo : STARTUPINFO

LOCAL  procinfo : PROCESS_INFORMATION

sub    eax, eax

mov    hProc, eax

mov    hToken, eax

mov    hNewToken, eax

invoke RtlZeroMemory, addr stStartupInfo, sizeof stStartupInfo

invoke RtlZeroMemory, addr procinfo, sizeof procinfo

invoke _EnablePrivilege, CTXT(“SeDebugPrivilege”), TRUE

invoke _GetPidFromProcName, CTXT(“lsass.exe”)

invoke OpenProcess, PROCESS_QUERY_INFORMATION, 0, eax

test   eax, eax

jz     _exit

mov    hProc, eax

invoke OpenProcessToken, hProc, READ_CONTROL+WRITE_DAC, addr hToken

test   eax, eax

jz     _exit

invoke _ModifySecurity, hToken, TOKEN_ALL_ACCESS

test   eax, eax

jz     _exit

invoke CloseHandle, hToken

mov    hToken, 0

invoke OpenProcessToken, hProc, TOKEN_ALL_ACCESS, addr hToken

test   eax, eax

jz     _exit

invoke DuplicateTokenEx, hToken, TOKEN_ALL_ACCESS, 0,

SecurityImpersonation, TokenPrimary, addr hNewToken

test   eax, eax

jz     _exit

invoke ImpersonateLoggedOnUser, hNewToken

test   eax, eax

jz     _exit

mov    stStartupInfo.cb, sizeof stStartupInfo

invoke CreateProcessAsUser, hNewToken, 0, CTXT(“regedit.exe”), 0, 0, 0, 0, 0, 0,

addr stStartupInfo, addr procinfo

test   eax, eax

jz     _exit

invoke CloseHandle, procinfo.hProcess

invoke CloseHandle, procinfo.hThread

_exit:

.if hProc

invoke CloseHandle, hProc

.endif

.if hToken

invoke CloseHandle, hToken

.endif

.if hNewToken

invoke CloseHandle, hNewToken

.endif

invoke ExitProcess, NULL

start endp

_ModifySecurity proc uses ebx esi edi, hToken:DWORD, dwAccess:DWORD

LOCAL  pSD, pAbsSD

LOCAL  dwSDLength

LOCAL  bDaclPresent, bDaclDefaulted

LOCAL  pAcl : PACL

LOCAL  pNewAcl : PACL

LOCAL  szName[1024] : BYTE

LOCAL  ea : EXPLICIT_ACCESS

LOCAL  pSacl, pOwner, pPrimaryGroup

LOCAL  dwAclSize, dwSaclSize, dwOwnerSize, dwPrimaryGroup

LOCAL  bSuccess

sub    eax, eax

mov    pSD, eax

mov    pAbsSD, eax

mov    dwSDLength, eax

mov    bDaclPresent, eax

mov    bDaclDefaulted, eax

mov    pAcl, eax

mov    pNewAcl, eax

mov    pSacl, eax

mov    pOwner, eax

mov    pPrimaryGroup, eax

mov    dwAclSize, eax

mov    dwSaclSize, eax

mov    dwOwnerSize, eax

mov    dwPrimaryGroup, eax

mov    bSuccess, eax

invoke GetKernelObjectSecurity, hToken, DACL_SECURITY_INFORMATION, pSD, 0, addr dwSDLength

invoke LocalAlloc, LPTR, dwSDLength

test   eax, eax

jz     _exit

mov    pSD, eax

invoke GetKernelObjectSecurity, hToken, DACL_SECURITY_INFORMATION, pSD,

dwSDLength, addr dwSDLength

invoke GetSecurityDescriptorDacl, pSD, addr bDaclPresent, addr pAcl, addr bDaclDefaulted

mov    eax, sizeof szName

push   eax

invoke GetUserName, addr szName, esp

pop    eax

invoke BuildExplicitAccessWithName, addr ea, addr szName, dwAccess, GRANT_ACCESS, FALSE

invoke SetEntriesInAcl, 1, addr ea, pAcl, addr pNewAcl

cmp    eax, ERROR_SUCCESS

jne    _exit

invoke LocalFree, pAcl

mov    pAcl, 0

invoke MakeAbsoluteSD, pSD, pAbsSD, addr dwSDLength, pAcl, addr dwAclSize, pSacl, addr dwSaclSize, \

pOwner, addr dwOwnerSize, pPrimaryGroup, addr dwPrimaryGroup

invoke LocalAlloc, LPTR, dwSDLength

test   eax, eax

jz     _exit

mov    pAbsSD, eax

invoke LocalAlloc, LPTR, dwAclSize

test   eax, eax

jz     _exit

mov    pAcl, eax

invoke LocalAlloc, LPTR, dwSaclSize

test   eax, eax

jz     _exit

mov    pSacl, eax

invoke LocalAlloc, LPTR, dwOwnerSize

test   eax, eax

jz     _exit

mov    pOwner, eax

invoke LocalAlloc, LPTR, dwPrimaryGroup

test   eax, eax

jz     _exit

mov    pPrimaryGroup, eax

invoke MakeAbsoluteSD, pSD, pAbsSD, addr dwSDLength, pAcl, addr dwAclSize, pSacl, addr dwSaclSize, \

pOwner, addr dwOwnerSize, pPrimaryGroup, addr dwPrimaryGroup

invoke SetSecurityDescriptorDacl, pAbsSD, bDaclPresent, pNewAcl, bDaclDefaulted

invoke SetKernelObjectSecurity, hToken, DACL_SECURITY_INFORMATION, pAbsSD

mov    bSuccess, 1

_exit:

.if pSD

invoke LocalFree, pSD

.endif

.if pAcl

invoke LocalFree, pAcl

.endif

.if pNewAcl

invoke LocalFree, pNewAcl

.endif

.if pAbsSD

invoke LocalFree, pAbsSD

.endif

.if pSacl

invoke LocalFree, pSacl

.endif

.if pOwner

invoke LocalFree, pOwner

.endif

.if pPrimaryGroup

invoke LocalFree, pPrimaryGroup

.endif

mov    eax, bSuccess

ret

_ModifySecurity endp

_EnablePrivilege proc szPriv:DWORD, bFlags:DWORD

LOCAL  hToken

LOCAL  tkp : TOKEN_PRIVILEGES

invoke GetCurrentProcess

mov    edx, eax

invoke OpenProcessToken, edx, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, addr hToken

invoke LookupPrivilegeValue, NULL, szPriv, addr tkp.Privileges.Luid

mov    tkp.PrivilegeCount, 1

xor    eax, eax

.if bFlags

mov    eax, SE_PRIVILEGE_ENABLED

.endif

mov    tkp.Privileges.Attributes, eax

invoke AdjustTokenPrivileges, hToken, FALSE, addr tkp, 0, 0, 0

push   eax

invoke CloseHandle, hToken

pop    eax

ret

_EnablePrivilege endp

_GetPidFromProcName proc lpProcName:DWORD

LOCAL  stProcess : PROCESSENTRY32

LOCAL  hSnapshot

LOCAL  dwProcessID

mov    dwProcessID, 0

invoke RtlZeroMemory, addr stProcess, sizeof stProcess

mov    stProcess.dwSize, sizeof stProcess

invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0

mov    hSnapshot, eax

invoke Process32First, hSnapshot, addr stProcess

.while eax

invoke lstrcmpi, lpProcName, addr stProcess.szExeFile

.if eax==0

mov    eax, stProcess.th32ProcessID

mov    dwProcessID, eax

.break

.endif

invoke Process32Next, hSnapshot, addr stProcess

.endw

invoke CloseHandle, hSnapshot

mov    eax, dwProcessID

ret

_GetPidFromProcName endp

end start

:make

set path=%path%;c:\masm32\bin

set appname=GetSys2

ml /nologo /c /coff %appname%.bat

link /nologo /subsystem:windows %appname%.obj

del %appname%.obj

echo.

pause

GetSys2 取得 lsass.exe 进程的令牌,缺省情况下操作这个令牌的权限很小,

所以需要先取得操作这个令牌的所有权限,

这个任务由函数 _ModifySecurity 来完成。

有了权限后,复制一个主令牌,然后在当前线程中扮演 SYSTEM 用户,接着就可以调用 CreateProcessAsUser

函数运行 regedit.exe 程序了。有关安全性编程不清楚的地方可以参考[3]。

3. HOOK ZwCreateProcessEx 函数

有关这个[1]里面讲得很清楚了,下面直接给出源代码。

;@echo off

;goto make

;====================================================================================

; 一块三毛钱

; zhongts.yeah.net

; zhongts@163.com

; 2005.1.15

;

; 以 SYSTEM 权限运行程序 - GetSys3

;

; 采用 HOOK ZwCreateProcessEx 函数的方法

;

;====================================================================================

.386

.model flat, stdcall

option casemap :none

include c:\masm32\include\windows.inc

include c:\masm32\include\kernel32.inc

include c:\masm32\include\advapi32.inc

include c:\masm32\include\masm32.inc

includelib c:\masm32\lib\kernel32.lib

includelib c:\masm32\lib\advapi32.lib

includelib c:\masm32\lib\masm32.lib

_EnablePrivilege proto :DWORD,:DWORD

_GetPidFromProcName proto :DWORD

_HackedZwCreateProcessEx proto

CTXT MACRO text

local lbl

.const

lbl db text,0

.code

exitm

ENDM

ASMJMP struct

mov_eax        BYTE   ?

address        DWORD  ?

jmp_eax        WORD   ?

ASMJMP ends

.data?

g_hProc dd ?

g_dwFunc       dd ?

.code

start proc

LOCAL  osvi : OSVERSIONINFO

LOCAL  lpAsmJmp

LOCAL  mbi : MEMORY_BASIC_INFORMATION

LOCAL  stStartupInfo : STARTUPINFO

LOCAL  procinfo : PROCESS_INFORMATION

sub    eax, eax

mov    lpAsmJmp, eax

invoke RtlZeroMemory, addr osvi, sizeof osvi

invoke RtlZeroMemory, addr mbi, sizeof mbi

invoke RtlZeroMemory, addr stStartupInfo, sizeof stStartupInfo

invoke RtlZeroMemory, addr procinfo, sizeof procinfo

mov    osvi.dwOSVersionInfoSize, sizeof osvi

invoke GetVersionEx, addr osvi

cmp    osvi.dwMajorVersion, 5

jnz    _exit

.if osvi.dwMinorVersion==1

mov    g_dwFunc, 30h

.elseif osvi.dwMinorVersion==2

mov    g_dwFunc, 32h

.endif

invoke _EnablePrivilege, CTXT(“SeDebugPrivilege”), TRUE

invoke _GetPidFromProcName, CTXT(“lsass.exe”)

test   eax, eax

jz     _exit

invoke OpenProcess, PROCESS_CREATE_PROCESS, TRUE, eax

test   eax, eax

jz     _exit

mov    g_hProc, eax

invoke GetModuleHandle, CTXT(“ntdll.dll”)

mov    edx, eax

invoke GetProcAddress, edx, CTXT(“ZwCreateProcessEx”)

mov    lpAsmJmp, eax

invoke VirtualQuery, lpAsmJmp, addr mbi, sizeof mbi

push   eax

invoke VirtualProtect, mbi.AllocationBase, mbi.RegionSize, PAGE_EXECUTE_READWRITE, esp

pop    eax

mov    edi, lpAsmJmp

assume edi : ptr ASMJMP

mov    [edi].mov_eax, 0B8h

mov    [edi].address, offset _HackedZwCreateProcessEx

mov    [edi].jmp_eax, 0E0FFh

mov    stStartupInfo.cb, sizeof stStartupInfo

invoke CreateProcess, 0, CTXT(“regedit.exe”),

0, 0, 0, 0, 0, 0, addr stStartupInfo, addr procinfo

test   eax, eax

jz     _exit

invoke CloseHandle, procinfo.hProcess

invoke CloseHandle, procinfo.hThread

_exit:

invoke ExitProcess, NULL

start endp

_HackedZwCreateProcessEx proc

mov    eax, g_hProc

mov    dword ptr [esp+16], eax

mov    eax, g_dwFunc

lea    edx, dword ptr [esp+4]

int    2Eh

retn   24h

_HackedZwCreateProcessEx endp

_EnablePrivilege proc szPriv:DWORD, bFlags:DWORD

LOCAL  hToken

LOCAL  tkp : TOKEN_PRIVILEGES

invoke GetCurrentProcess

mov    edx, eax

invoke OpenProcessToken, edx, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, addr hToken

invoke LookupPrivilegeValue, NULL, szPriv, addr tkp.Privileges.Luid

mov    tkp.PrivilegeCount, 1

xor    eax, eax

.if bFlags

mov    eax, SE_PRIVILEGE_ENABLED

.endif

mov    tkp.Privileges.Attributes, eax

invoke AdjustTokenPrivileges, hToken, FALSE, addr tkp, 0, 0, 0

push   eax

invoke CloseHandle, hToken

pop    eax

ret

_EnablePrivilege endp

_GetPidFromProcName proc lpProcName:DWORD

LOCAL  stProcess : PROCESSENTRY32

LOCAL  hSnapshot

LOCAL  dwProcessID

mov    dwProcessID, 0

invoke RtlZeroMemory, addr stProcess, sizeof stProcess

mov    stProcess.dwSize, sizeof stProcess

invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0

mov    hSnapshot, eax

invoke Process32First, hSnapshot, addr stProcess

.while eax

invoke lstrcmpi, lpProcName, addr stProcess.szExeFile

.if eax==0

mov    eax, stProcess.th32ProcessID

mov    dwProcessID, eax

.break

.endif

invoke Process32Next, hSnapshot, addr stProcess

.endw

invoke CloseHandle, hSnapshot

mov    eax, dwProcessID

ret

_GetPidFromProcName endp

end start

:make

set path=%path%;c:\masm32\bin

set appname=GetSys3

ml /nologo /c /coff %appname%.bat

link /nologo /subsystem:windows %appname%.obj

del %appname%.obj

echo.

pause

4. 远程线程的方法

通过注入远程线程的方法来运行指定的 regedit.exe 程序,

也是相当于运行 regedit.exe 程序的是系统进程,

那么 regedit.exe 也就自然而然的继承了系统进程的 SYSTEM 权限。

;@echo off

;goto make

;====================================================================================

; 一块三毛钱

; zhongts.yeah.net

; zhongts@163.com

; 2005.1.15

;

; 以 SYSTEM 权限运行程序 - GetSys4

;

; 采用远程线程的方法

;

;====================================================================================

.386

.model flat, stdcall

option casemap :none

include c:\masm32\include\windows.inc

include c:\masm32\include\kernel32.inc

include c:\masm32\include\advapi32.inc

include c:\masm32\include\masm32.inc

includelib c:\masm32\lib\kernel32.lib

includelib c:\masm32\lib\advapi32.lib

includelib c:\masm32\lib\masm32.lib

_EnablePrivilege proto :DWORD,:DWORD

_GetPidFromProcName proto :DWORD

;下面两个宏来源于罗云彬的《Windows 环境下32位汇编程序设计》一书

reverseArgs macro arglist:VARARG

local  txt,count

txt    TEXTEQU

count  = 0

for    i,

count  = count + 1

txt    TEXTEQU @CatStr(i,,<%txt>)

endm

if     count GT 0

txt    SUBSTR txt,1,@SizeStr(%txt)-1

endif

exitm  txt

endm

_invoke macro _Proc,args:VARARG

local  count

count  = 0

%      for    i,< reverseArgs( args ) >

count  = count + 1

push   i

endm

call   dword ptr _Proc

endm

CTXT MACRO text

local lbl

.const

lbl db text,0

.code

exitm

ENDM

.data?

g_hProcess     dd ?

g_lpRemoteCode dd ?

.code

Remote_code_start      equ this byte

g_lpGetModuleHandleA   dd ?

g_lpGetProcAddress     dd ?

g_szKernel32           db “Kernel32.dll”,0

g_szCreateProcessA     db “CreateProcessA”,0

g_lpCreateProcessA     dd ?

g_szRegedit            db “Regedit.exe”,0

g_szDesktop            db “WinSta0\Default”,0

g_stStartupInfo        STARTUPINFO

g_procinfo             PROCESS_INFORMATION

_RemoteThread proc

;      int    3

pushad

call   @F

@@:

pop    ebx

sub    ebx, offset @B

lea    eax, [ebx+g_szKernel32]

_invoke [ebx+g_lpGetModuleHandleA], eax

mov    esi, eax

lea    eax, [ebx+g_szCreateProcessA]

_invoke [ebx+g_lpGetProcAddress], esi, eax

mov    [ebx+g_lpCreateProcessA], eax

lea    eax, [ebx+g_szDesktop]

lea    ecx, [ebx+g_stStartupInfo]

mov    dword ptr [ecx], sizeof g_stStartupInfo

mov    dword ptr [ecx+8], eax

lea    eax, [ebx+g_szRegedit]

lea    edx, [ebx+g_procinfo]

_invoke [ebx+g_lpCreateProcessA], 0, eax, 0, 0, 0, 0, 0, 0, ecx, edx

popad

ret

_RemoteThread endp

Remote_code_end        equ this byte

Remote_code_length     equ offset Remote_code_end - offset Remote_code_start

start proc

invoke GetModuleHandle, CTXT(“kernel32.dll”)

mov    ebx, eax

invoke GetProcAddress, ebx, CTXT(“GetModuleHandleA”)

mov    g_lpGetModuleHandleA, eax

invoke GetProcAddress, ebx, CTXT(“GetProcAddress”)

mov    g_lpGetProcAddress, eax

invoke _EnablePrivilege, CTXT(“SeDebugPrivilege”), TRUE

invoke _GetPidFromProcName, CTXT(“lsass.exe”)

invoke OpenProcess, PROCESS_CREATE_THREAD+PROCESS_VM_OPERATION+PROCESS_VM_WRITE, FALSE, eax

.if eax

mov    g_hProcess, eax

invoke VirtualAllocEx, g_hProcess, NULL, Remote_code_length, MEM_COMMIT, PAGE_EXECUTE_READWRITE

.if eax

mov    g_lpRemoteCode, eax

invoke WriteProcessMemory, g_hProcess, g_lpRemoteCode,

offset Remote_code_start, Remote_code_length, NULL

mov    eax, g_lpRemoteCode

add    eax, offset _RemoteThread - offset Remote_code_start

invoke CreateRemoteThread, g_hProcess, NULL, 0, eax, 0, 0, NULL

invoke CloseHandle, eax

.endif

invoke CloseHandle, g_hProcess

.endif

invoke ExitProcess, NULL

start endp

_EnablePrivilege proc szPriv:DWORD, bFlags:DWORD

LOCAL  hToken

LOCAL  tkp : TOKEN_PRIVILEGES

invoke GetCurrentProcess

mov    edx, eax

invoke OpenProcessToken, edx, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, addr hToken

invoke LookupPrivilegeValue, NULL, szPriv, addr tkp.Privileges.Luid

mov    tkp.PrivilegeCount, 1

xor    eax, eax

.if bFlags

mov    eax, SE_PRIVILEGE_ENABLED

.endif

mov    tkp.Privileges.Attributes, eax

invoke AdjustTokenPrivileges, hToken, FALSE, addr tkp, 0, 0, 0

push   eax

invoke CloseHandle, hToken

pop    eax

ret

_EnablePrivilege endp

_GetPidFromProcName proc lpProcName:DWORD

LOCAL  stProcess : PROCESSENTRY32

LOCAL  hSnapshot

LOCAL  dwProcessID

mov    dwProcessID, 0

invoke RtlZeroMemory, addr stProcess, sizeof stProcess

mov    stProcess.dwSize, sizeof stProcess

invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0

mov    hSnapshot, eax

invoke Process32First, hSnapshot, addr stProcess

.while eax

invoke lstrcmpi, lpProcName, addr stProcess.szExeFile

.if eax==0

mov    eax, stProcess.th32ProcessID

mov    dwProcessID, eax

.break

.endif

invoke Process32Next, hSnapshot, addr stProcess

.endw

invoke CloseHandle, hSnapshot

mov    eax, dwProcessID

ret

_GetPidFromProcName endp

end start

:make

set path=%path%;c:\masm32\bin

set appname=GetSys4

ml /nologo /c /coff %appname%.bat

link /nologo /subsystem:windows /section:.text,rwe %appname%.obj

del %appname%.obj

echo.

pause

这段代码也没什么好解释的,唯一一个要注意的地方就是调用 CreateProcess 函数时,lpStartupInfo

参数指向的 STARTUPINFO 结构成员 lpDesktop 需要明确的指定 WinSta0\Default 为运行桌面。

否则,程序 regedit.exe 运行后不知道跑到哪里去了。

参考资料

[1] scz MSDN系列(3)--Administrator用户直接获取SYSTEM权限

www.nsfocus.net/index.php?ac...ew&mid=1900

[2] wsu 1.0

www.BingleSite.net

[3] Keith Brown 《Windows 安全性编程》

[4] Token.Master

Jeffrey Richter/Jason D.Clark 《Programming.Server-Side.Applications.for.MS.Windows.

篇5:Vista系统下快速提高管理员权限方法

我们可以同开始->所以程序->附件-〉命令提示符-〉右击然后以管理员身份运行,

这样是一开始的时候就必须以管理员身份运行的时候的方法!

如果我们真在工作中又必须提高管理权限,我们怎么才能实现呢?难道我们必须要防患于未然?

步骤如下:快速提高管理权限,

本文来自bianceng.cn(学电脑)

(1)win+r输入cmd。现在是普通权限运行dos。

(2)在“搜索”框中,键入 command prompt。

再看看是什么样子了

运行结果

篇6:Win8/8.1系统下删除文件夹没有最高权限的解决方法

解决方法一:

1、右键单击要更改权限的文件夹,依次选择属性——安全——高级——所有者——更改 ,高级——立即查找,把“Everyone”添加进去,并确认,

2、编辑“Everyone”权限为【完全控制】并确认。    解决方法二:

1、为了一劳永逸。我们建议使用【右键扩展菜单法】。具体操作:

新建一个记事本,把如下内容复制进去,效果如图。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]@=“管理员取得所有权”“NoWorkingDirectory”=“”

[HKEY_CLASSES_ROOT\*\shell\runas\command]@=“cmd.exe /c takeown /f \”%1\“ && icacls \”%1\“ /grant administrators:F”“IsolatedCommand”=“cmd.exe /c takeown /f \”%1\“ && icacls \”%1\“ /grant administrators:F”

[HKEY_CLASSES_ROOT\exefile\shell\runas2]@=“管理员取得所有权”“NoWorkingDirectory”=“”

[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]@=“cmd.exe /c takeown /f \”%1\“ && icacls \”%1\“ /grant administrators:F”“IsolatedCommand”=“cmd.exe /c takeown /f \”%1\“ && icacls \”%1\“ /grant administrators:F”

[HKEY_CLASSES_ROOT\Directory\shell\runas]@=“管理员取得所有权”“NoWorkingDirectory”=“”

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]@=“cmd.exe /c takeown /f \”%1\“ /r /d y && icacls \”%1\“ /grant administrators:F /t”“IsolatedCommand”=“cmd.exe /c takeown /f \”%1\“ /r /d y && icacls \”%1\“ /grant administrators:F /t”

2、选择文件——另存为,把文件保存为【管理员取得所有权.reg】的文件,双击保存的reg文件,导入注册表信息即可,在用右键点击文件夹的时候就会出现获得管理员权限的选项;    3、现在你可以安心的删除文件(夹)了。

按照上述方法操作就可以获取最高管理员权限了,这样就可以成功删除文件了,简单实用的两个方法。

如何在win8系统中获取删除文件的最高权限?

win中的记事本Windows系统

WIN技巧:五款开源工具WIN管理员的法宝

计算机系统的管理员个人求职信

过程方法与系统方法

有效获得职场自信的方法

win系统服务备份与保护服务器教程

成功率最高的五种求职方法

win7系统打补丁的方法

WIN技巧:在NTFS系统里找回误删文件

Win10系统获得最高管理员权限方法(集锦6篇)

欢迎下载DOC格式的Win10系统获得最高管理员权限方法,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档