能力值:
( LV9,RANK:380 )
|
-
-
2 楼
汇编的
aebK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6G2M7Y4g2E0i4K6u0W2k6i4k6A6L8r3!0U0N6r3q4D9i4K6u0W2j5$3!0E0i4K6u0r3M7X3g2S2k6q4)9J5k6r3S2@1L8g2)9J5k6s2c8A6k6q4)9J5k6o6t1$3y4o6l9J5i4K6u0W2K9s2c8E0L8l9`.`.
|
能力值:
( LV9,RANK:170 )
|
-
-
3 楼
我利用其它程序的代码已经进入到ring 0层了,当写那个代码段还是显示
异常,不允许写.
那个代码段是一个服务程序, 用start来进行调入执行.代码的属性值是 RO的 只读 .
各位兄弟有什么好方法吗? 比如我降低当前代码段的权限或提升,有用吗??
我用了网上直接的提升权限的代码.
见下:
procedure SetPrivilege;
var
OldTokenPrivileges, TokenPrivileges: TTokenPrivileges;
ReturnLength : dword;
hToken : THandle;
Luid : int64;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
TokenPrivileges.Privileges[0].luid := Luid;
TokenPrivileges.PrivilegeCount := 1;
TokenPrivileges.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, False, TokenPrivileges, SizeOf(TTokenPrivileges), OldTokenPrivileges, ReturnLength);
OldTokenPrivileges.Privileges[0].luid := Luid;
OldTokenPrivileges.PrivilegeCount := 1;
OldTokenPrivileges.Privileges[0].Attributes := TokenPrivileges.Privileges[0].Attributes or SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, OldTokenPrivileges, ReturnLength, PTokenPrivileges(nil)^, ReturnLength);
end;
|
|
|