首页
社区
课程
招聘
[求助]请大家帮忙看一下这个小工具是通过什么函数杀挂钩OPENPROCESS的进程的?
发表于: 2008-11-12 17:50 9252

[求助]请大家帮忙看一下这个小工具是通过什么函数杀挂钩OPENPROCESS的进程的?

2008-11-12 17:50
9252
收藏
免费 0
支持
分享
最新回复 (32)
雪    币: 225
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
下载不了,怎么看???
2008-11-12 18:14
0
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
看看。。。。
2008-11-12 18:22
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
555,新人发不了附件,用的是看雪提供的网络硬盘。能下的,要等10秒。
2008-11-13 09:51
0
雪    币: 709
活跃值: (2590)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
5
等了10秒,也下不了. 带了驱动,什么都可以杀...
2008-11-13 09:57
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没有带驱动的,加载驱动OUTPOST会提示的,麻烦大家去作者主页下载一下,就28KB。

ebfK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4#2N6r3!0V1k6h3u0#2k6#2)9J5k6h3y4G2L8g2)9J5c8X3c8G2N6$3&6D9L8$3q4V1i4K6u0W2M7r3S2H3

最下面 KILLPROCESS,谢谢!!!
2008-11-13 15:39
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我是作者,没有用什么技巧啊,就是用TerminateProcess杀进程啊。
2008-11-13 16:11
0
雪    币: 709
活跃值: (2590)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
8
被雷到了...
2008-11-13 16:34
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
昏迷,你没用OPENPROCESS吗?我试过很多杀进程软件,只要用到OPENPROCESS的都杀不掉那个软件。但是这个就可以,郁闷了!TerminateProcess都知道啊,但在OPENPROCESS时就已经失败了,如果这个只是简单的用OPENPROCESS和TerminateProcess怎么可能哦。
2008-11-13 17:17
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
用了OpenProcess啊。把你的东西share出来看看。
2008-11-13 17:28
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不过,还用了一下提升权限的函数。
2008-11-13 17:29
0
雪    币: 225
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
貌似用了点特殊技巧
2008-11-13 17:30
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
谢谢,我马上试,不行UP上来~ 感谢~
2008-11-13 17:31
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
function UpgradePrivilege: Boolean;
var
  TTokenHd: THandle;
  TTokenPvg: TTokenPrivileges;
  cbtpPrevious: DWORD;
  rTTokenPvg: TTokenPrivileges;
  pcbtpPreviousRequired: DWORD;
begin
  Result := False;
  if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
    if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TTokenHd) then
    begin
      if LookupPrivilegeValue(nil, 'SeDebug', TTokenPvg.Privileges[0].Luid) then
      begin
        TTokenPvg.PrivilegeCount := 1;
        TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        cbtpPrevious := SizeOf(rTTokenPvg);
        pcbtpPreviousRequired := 0;

        Result := Windows.AdjustTokenPrivileges(TTokenHd, False, TTokenPvg, cbtpPrevious,
                                                rTTokenPvg, pcbtpPreviousRequired);
      end;
    end;
  end;
end;

function KillProcessByPID(PID : DWord): boolean;
begin
  Result := TerminateProcess(OpenProcess(PROCESS_TERMINATE, False, PID), 0);
end;

先提升权限后再KILL,那个进程没关掉,自己进程反而关掉了,求教!那个是个客户端平台,对OPENPROCESS做了挂钩,整个不知道怎么整了。各位高人帮帮忙吧~

UpgradePrivilege;
KillProcessByPID(dPID);
2008-11-13 17:48
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
SeDebug是什么东西?我看到的是SeDebugPrivilege。
另外,不懂delphi.
2008-11-13 17:57
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
OK了, 原来错把SeDebugPrivilege写成SeDebug,非常感谢。
2008-11-13 18:03
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不好意思,又来请大家帮助了,按楼上兄弟做法提升权限后时而成功时而失败,不知道为什么。但楼上兄弟写的那个KILLPROCESS.EXE 每次都是成功的。

请问除了提升权限外,是否还有什么细节需要处理?而且我发现如果关闭指定的程序失败,那个程序没关掉反而杀进程的程序莫名其妙的关闭。
2008-11-13 20:37
0
雪    币: 225
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
可能是把他的hand直接转成你得了吧
2008-11-13 21:03
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
是的,晕死,OPENPROCESS返回的HANDLE尽然和我自己GetCurrentProcess返回的一样。输出PID和KILLPROCESS得到的一样的,但OPENPROCESS后,返回的HANDLE难得正确一次,如果不正确那个HANDLE就是自己的HANDLE,所以变成杀自己了。真的不明白~~~ 求救。
2008-11-13 21:11
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
有现成的不用,为啥自己要重新写一个呢?
2008-11-14 07:06
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
因为是一个外部更新程序用到的,在更新前要杀掉进程才能更新,要更新的程序本身不是自己的程序,所以只好通过杀进程方式解决了,因为它做了一些保护,发送关闭消息、简单的关闭进程都不能用。楼上的兄弟,请问除了提升权限外是否还有其他的细节需要处理呢?你的KILLPROCESS每次杀都是成功的。
2008-11-14 09:03
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
没有其他的了。
2008-11-14 10:44
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
我早上又试了一下,感觉很郁闷,PID取得是正确的,但OPENPROCESS后的HANDLE返回就经常出问题了,经常返回的是自己的HANDLE,而不是要杀的进程的HANDLE,如果不用OPENPROCESS是否能够取得HANDLE呢?除了我要杀的那个程序总出问题外,杀其他例如计算器、记事本那些都没问题。
2008-11-14 10:52
0
雪    币: 240
活跃值: (190)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
24
在ring0中杀进程有很多种方法,不一定要openprocess
杀进程可以用以下方法:
把EPPROCESS中的object清零
把EPPROCESS从active链表中摘除
从ring0注入代码让进程自己退出等等,
反正ring0杀进程方法很多,
这个问题不用深究
2008-11-14 13:31
0
雪    币: 709
活跃值: (2590)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
25
这2个不是杀进程,是隐藏进程
2008-11-14 13:34
0
游客
登录 | 注册 方可回帖
返回