首页
社区
课程
招聘
[讨论]一个不能被兵刃 RKU等工具结束进程的小程序。
2007-11-9 19:21 4414

[讨论]一个不能被兵刃 RKU等工具结束进程的小程序。

2007-11-9 19:21
4414
收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 421
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
鸡蛋壳 2007-11-9 19:23
2
0
使用方法:启动后,点 保护 按钮,然后再尝试杀本进程。
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gyfhgyfh 2007-11-9 19:57
3
0
VB ???

......

SetErrorMode
GetProcAddress
GetVersionExA
GetCurrentProcess
AdjustTokenPrivileges
OpenProcessToken
LookupPrivilegeValueA

......

CallWindowProcA : 拒绝访问。
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
炉子 3 2007-11-9 20:36
4
0
瞧不起这种转载不注明出处的
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinaruto 2007-11-9 21:04
5
0
可能他也不知道是谁写的。那东西已经被转遍了,不一定是在哪转的。
雪    币: 421
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
鸡蛋壳 2007-11-9 21:56
6
0
某人分析:
NtSystemDebugControl读写的内存~~

关键代码如下:
.text:00402F6B                mov    ecx, [ecx+0Ch]
.text:00402F6E                or      ebx, 0FFFFFFFFh
.text:00402F71                mov    edx, [ecx+eax]
.text:00402F74                mov    eax, [esi+170h]
.text:00402F7A                add    eax, 248h
.text:00402F7F                mov    [esi+16Ch], edx
.text:00402F85                jo      loc_40319E
.text:00402F85
.text:00402F8B                push    eax
.text:00402F8C                mov    [ebp-1Ch], ebx
.text:00402F8F                call    ReadSysMem
.text:00402F8F
.text:00402F94                mov    ecx, [esi+16Ch]
.text:00402F9A                push    10h
.text:00402F9C                add    ecx, 248h
.text:00402FA2                mov    [esi+180h], eax
.text:00402FA8                jo      loc_40319E
.text:00402FA8
.text:00402FAE                push    ecx
.text:00402FAF                call    WriteSysMem

即是将Thread->CrossThreadFlags设为0x10h(PS_CROSS_THREAD_FLAGS_SYSTEM)
硬编码XXXX

参考PSPXXXXXTHREAD的代码

NTSTATUS
PspTerminateThreadByPointer(
    IN PETHREAD Thread,
    IN NTSTATUS ExitStatus,
    IN BOOLEAN DirectTerminate
    )

/*++

Routine Description:

    This function causes the specified thread to terminate.

Arguments:

    ThreadHandle - Supplies a referenced pointer to the thread to terminate.

    ExitStatus - Supplies the exit status associated with the thread.

    DirectTerminate - TRUE is its ok to exit without queing an APC, FALSE otherwise

--*/

{
    NTSTATUS Status;
    PKAPC    ExitApc=NULL;
    ULONG    OldMask;

    PAGED_CODE();

    if (Thread->CrossThreadFlags
    & PS_CROSS_THREAD_FLAGS_BREAK_ON_TERMINATION) {
      PspCatchCriticalBreak("Terminating critical thread 0x%p (in %s)\n",
                Thread,
                THREAD_TO_PROCESS(Thread)->ImageFileName);
    }

    if (DirectTerminate && Thread == PsGetCurrentThread()) {

        ASSERT (KeGetCurrentIrql() < APC_LEVEL);

        PS_SET_BITS (&Thread->CrossThreadFlags, PS_CROSS_THREAD_FLAGS_TERMINATED);

        PspExitThread (ExitStatus);

        //
        // Never Returns
        //

    } else {
        //
        // Cross thread deletion of system threads won't work.
        //
        if (IS_SYSTEM_THREAD (Thread)) {
            return STATUS_ACCESS_DENIED;
        }
雪    币: 239
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
fffddd 2007-11-10 21:18
7
0
哈哈,好久没看到鸡蛋了。一来就搞这么多花样。
雪    币: 513
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2007-11-10 22:26
8
0
好旧的东西,早有人说怎么破解了.这种硬编码方式只能在xp系统上正常,。
游客
登录 | 注册 方可回帖
返回