Android应用程序获取system权限

Android应用程序获取system权限,第1张

支持原作者 : >

如果子程序调用成功,Windows下的system函数返回0,该返回值不是子进程返回值,在Windows系统中因为进程间没有维护相应的父子关系,所以,也无法得到子进程的返回值。可以编写如下代码C代码:#include <stdioh>#include <stdlibh>int main(){ unsigned ueax = 0; system("pause"); __asm mov eax, ueax //使用内联汇编,取eax寄存器的值,eax保存函数返回值 printf("%x\n", ueax); return 0;}执行结果如下图所示:可见,执行程序时,返回值的确是0。

1、首先到网上下载psexecexe工具; 2、然后首先要先删除C:WindowsSystem32drivershpmobiledisksys这个文件; 3、接着以管理员的身份运行命令提示符,如果是以管理员权限登录的系统,就可以直接打开运行对话框并输入cmd; 4、然后将psexecexe工具拷贝到System32文件夹下,之后在命令提示符窗口中输入:psexec -i -d -s regeditexe命令; 5、在d出来的交互式服务对话框检测窗口中,点击“显示消息”项; 6、然后在d出的注册表编辑器中删除以下两个注册表项,分别并定位到: HKEY_LOCAL_MACHINESYSTEMControlSet001EnumRootLEGACY_HPMOBILEDISK HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRootLEGACY_HPMOBILEDISK 7、之后重启两遍计算机,这时候就会发现蓝屏故障消失了哦。

1要先取得需要提升权限的当前进程句柄

2然后取得当前进程的访问令牌

3最后提升特权

需要用到的函数:

GetCurrentProcess:获取当前进程的伪句柄

OpenProcessToken:取得当前进程的访问令牌

LookupPrivilegeValue:查看系统权限的特权值,并返回到一个LUID结构体里

AdjustTokenPrivileges:用于提升特权

下面是提升当前进程的Debug权限,我经常把它写在模块里:

Public Declare Function GetCurrentProcess Lib "kernel32" () As Long

Public Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long

Public Declare Function OpenProcessToken Lib "advapi32dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long

Public Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, _

ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long

Public Const TOKEN_ADJUST_PRIVILEGES = &H20

Public Const TOKEN_QUERY = &H8

Public Const SE_DEBUG_NAME = "SeDebugPrivilege"

Public Const ANYSIZE_ARRAY = 1

Public Const SE_PRIVILEGE_ENABLED = &H2

Public Type LUID

LowPart As Long

HighPart As Long

End Type

Public Type LUID_AND_ATTRIBUTES

pLuid As LUID

Attributes As Long

End Type

Public Type TOKEN_PRIVILEGES

PrivilegeCount As Long

Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES

End Type

Public Sub AdjustProcPriv() '这是提升Debug权限的子过程

Dim Ret As Long, PrevNeed As Long, PrevLen As Long

Dim HCurProc As Long, HToken As Long, NewPrivilege As TOKEN_PRIVILEGES

Dim PrevPrivilege As TOKEN_PRIVILEGES, GetLuid As LUID

HCurProc = GetCurrentProcess

Ret = OpenProcessToken(HCurProc, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, HToken)

Ret = LookupPrivilegeValue("", SE_DEBUG_NAME, GetLuid)

NewPrivilegePrivilegeCount = 1

NewPrivilegePrivileges(0)pLuid = GetLuid

NewPrivilegePrivileges(0)Attributes = SE_PRIVILEGE_ENABLED

PrevLen = Len(PrevPrivilege)

Ret = AdjustTokenPrivileges(HToken, False, NewPrivilege, PrevLen, PrevPrivilege, PrevNeed)

End Sub

以上就是关于Android应用程序获取system权限全部的内容,包括:Android应用程序获取system权限、如何使android应用程序获取system权限、如何获取system系统调用的子命令返回值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10089825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存