易截截图软件、单文件、免安装、纯绿色、仅160KB

DELPHI 中如何提升进程令牌

转:DELPHI 中如何提升进程令牌
近一段时间在用DELPHI写个程序,当我写到一个结束其他进程的模块的时候有时不成功,那是因为其他进程,如病毒进程的权限高,通过常规的结束进程的函数行不通,要首先提高自身程序的权限,再结束其他进程
在网上也看到了一些提升进程令牌的函数但都不怎么好用,最后我还是从一个黑客后门程序的源代码中提取出了一个好的提升进程令牌的函数,不敢独享,跟大家分享下
头部请加入:Tlhelp32
//提升进程权限为DEBUG权限
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;
用法就不用说了吧,
procedure TForm1.FormCreate(Sender: TObject);
begin
SetPrivilege;
...
一句话就把程序提升为DEBUG权限了,然后就可以随便结束其他进程了
这里也附带贴出一个结束进程的函数供大家参考:
function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((


相关文档:

Delphi调用Servlet

一直想让Delphi做为RIA,而业务层使用Java!今天没事做,简单实现了一下!
目前有2种方案:
WebService
IndyHttp调用Servlet
以下是用IndyHttp来调用Servlet
一、先写一个helloworld的Servlet
1.编写ui以及service
//工具包
package com.cdrs.jutils;
import java.io.IOException;
import java.util.Date;
impor ......

Delphi中DLL初始化和退出处理


<1>利用Unit的
Initalization与Finalization这两个小节
  可以在Unit的这两个小节中安排Unit的进入和退出,但是
Program

Library并没有这两个部分,所以只能写在Unit中。
<2>利用ExitProc变量
  在Library的begin
..end.中间是可以写代码
的,
这里可以放置
DLL初始化代码
。如果想要做善 ......

怎么用delphi向网页提交登陆信息

procedure TForm1.Button2Click(Sender: TObject);
var  
o : Olevariant;
begin  
  webbrowser1.Navigate('http://www.163.com');  
  delay(2000);
  o :=   WebBrowser1.OleObject.document.all.item('username',0);
  o.value := 'username';  
  o := W ......

关于TDateTimePicker的设定[delphi]

由于需要在窗体中设定一个日期时间,出去通用型考虑,采用了TDateTimePicker控件。
因为这个控件的默认状态只能显示日期,造成使用上的不便,所以需要做如下的设定:
在控件的format属性栏里设置如下值:yyyy-mm-dd hh:mm:ss;
设定完成后的时间为当前的系统时间,不能通过弹出日历设定,只能在文本框中设定。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号