★★★在XP中如何获得system权限★★★(高分:100)高手进!

★★★在XP中如何获得system权限★★★(高分:100)高手进!,第1张

用户永远得不到system权限,如果你学过 *** 作系统就会知道:system做的事对系统核心的东西进行 *** 作,如果用户介入了,万一误 *** 作,系统很容易就会崩溃的。

就是不能删除,最起码在界面上不能删除,如果你对注册表熟悉的话,可直接删除sam表项的guest选项。一般只要禁用guest帐户就行了,不需要删除。

默认状态下是看不到的,即使是最高权限,打开注册表,选中某一项设置下权限,设置后在打开就有了

纠正,只留一个administrator一样不很安全。windows的安全是指合理的分配给不同的帐户不同的权限。

//提升进程访问权限

void EnableDebugPriv()

{

HANDLE hToken;

LUID sedebugnameValue;

TOKEN_PRIVILEGES tkp;

if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))

return;

if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue))

{

CloseHandle(hToken);

return;

}

tkpPrivilegeCount = 1;

tkpPrivileges[0]Luid = sedebugnameValue;

tkpPrivileges[0]Attributes = SE_PRIVILEGE_ENABLED;

if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL))

CloseHandle(hToken);

}

1、打开cmd,执行taskkill/f/imexplorerexe,关闭explorer。

2、然后输入一下命令并回车。

3、即可用SYSTEM身份启动Windows的Shell进程Explorer。当Explorer重新启动以后,我们就会发现已经成功进入SYSTEM帐户环境。

4、Ctrl+r打开“运行”,输入希望打开的应用程序即可。

android怎么在代码里获得系统文件的读写权限

1、必须是Android系统开发人员,否则你无法修改initrc等文件。

2、你的应用程序必须要获得system权限。

在应用层 你要想用代码获得系统文件权限,除非你手机root了

要么你自己做rom。 自己修改 init,rc

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。

第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:

1 在应用程序的AndroidManifestxml中的manifest节点中加入

android:sharedUserId="androiduidsystem"这个属性。

2 修改Androidmk文件,加入LOCAL_CERTIFICATE := platform这一行

3 使用mm命令来编译,生成的apk就有修改系统时间的权限了。

第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:

1 同上,加入android:sharedUserId="androiduidsystem"这个属性。

2 使用eclipse编译出apk文件,但是这个apk文件是不能用的。

3 用压缩软件打开apk文件,删掉META-INF目录下的CERTSF和CERTRSA两个文件。

4 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,

首先找到密钥文件,在我的Android源码目录中的位置

是"build argetproductsecurity",下面的platformpk8和platformx509pem

两个文件。

然后用Android提供的Signapk工具来签名,signapk的源代码是

在"build oolssignapk"下,

用法为"signapk platformx509pem platformpk8 inputapk outputapk",

文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。

这样最后得到的apk和第一个方法是一样的。

最后解释一下原理,首先加入android:sharedUserId="androiduidsystem"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成androiduidsystem,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。

只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform

key,就是上面第二个方法提到的platformpk8和platformx509pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platformpk8和platformx509pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package has no signatures that match those in shared user androiduidsystem",这样也是保护了系统的安全。

Java代码

1、必须是Android系统开发人员,否则你无法修改initrc等文件。 2、你的应用程序必须要获得system权限。

在应用层 你要想用代码获得系统文件权限,除非你手机root了

要么你自己坐rom。。。。 自己修改 init,rc

1、必须是Android系统开发人员,否则你无法修改initrc等文件。 2、你的应用程序必须要获得system权限。 在应用层 你要想用代码获得系统文件权限,除非你手机root了 要么你自己坐rom。。。。 自己修改 init,rc

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

没有这样的函数,也不可能有。 普通的C#应用程序是无法获得System权限的,因为你的应用程序运行在系统核心以外,这是Windows隔离的结果,你无法突破这个界限,除非你利用Unicode漏洞。(显然不在C#的能力范围之内) 但是,我们C#还是有办法获取到System权限的,最简单的一个,就是你把你的程序注册成系统服务,这样,就自动运行在System权限下了。 还有两种常见的办法,也可以使你的应用程序运行在System下,一个是直接写成驱动,一个是进程注入。驱动,C#是不可能了,但是进程注入是可行的。

#include"stdlibh"

system("pause");

system("del atxt");

到百科里面找找这个函数的资料吧

以上就是关于★★★在XP中如何获得system权限★★★(高分:100)高手进!全部的内容,包括:★★★在XP中如何获得system权限★★★(高分:100)高手进!、Delphi 或者C++ 怎么让一个指定的程序获得system权限吗、windowsystem怎么获取读者权限等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存