首页
社区
课程
招聘
编程方法求助 系统服务可以改代码段的属性吗
发表于: 2007-3-22 22:49 4166

编程方法求助 系统服务可以改代码段的属性吗

nig 活跃值
4
2007-3-22 22:49
4166
要求的过程是这样:
  我写了一个动态库程序,要求程序在调用我的动态库的时候,我的DLL库中的
函数改写程序中的代码段中的某些代码,但程序中的代码段权限是可执行并只
读的,而且这个程序是程序的服务程序,用START来进行启动,试图用lordPE直接
改写程序的权限,重计算了CRC的值,但执行时提示 当前程序不是有效的EXE服务
程序.

  求取各位,如何在写的DLL库中提取调用程序的权限,有方法的兄弟帮帮忙!

能有DELPHI源码的更好.万分感谢!
   nig

以下一篇的说明

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
2
汇编的

http://forum.eviloctal.com/read-htm-tid-26402.html
2007-3-23 04:16
0
雪    币: 414
活跃值: (531)
能力值: ( 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;
2007-3-23 04:34
0
游客
登录 | 注册 方可回帖
返回
//