首页
社区
课程
招聘
[原创]伪造句柄,绕过Callback保护
发表于: 2016-4-9 20:17 5249

[原创]伪造句柄,绕过Callback保护

2016-4-9 20:17
5249
NTSTATUS ForceTerminateProcess(IN HANDLE Processid)
{
NTSTATUS status;
HANDLE hProcess;
PEPROCESS MyProcess;
PEPROCESS TargetProcess;
MyProcess = PsGetCurrentProcess();//先取得自身的eprocess
status = PsLookupProcessByProcessId(Processid,&TargetProcess);
if(!NT_SUCCESS(status))
{
KdPrint(("PsLookupProcessByProcessId 失败 pid[%d] error 0x%08X\r\n",Processid,status));
return status;
}
//先打开自身
status = ObOpenObjectByPointer(
MyProcess,
0,
NULL,
PROCESS_ALL_ACCESS,
* PsProcessType,
KernelMode,
&hProcess
);
if(!NT_SUCCESS(status))
{
ObDereferenceObject (MyProcess);
KdPrint(("ObOpenObjectByPointer 失败 error 0x%08X\r\n",status));
return status;
}
//接下来,修改在自身进程中找出hProcess的HandleTable,修改其Object指针为目标进程指针
//改掉句柄里指向的Object
ModifyHandleObject(MyProcess, TargetProcess, hProcess);
//然后,结束吧
status = ZwTerminateProcess(hProcess,0);
if(!NT_SUCCESS(status))
{
KdPrint(("ZwTerminateProcess 失败 error 0x%08X\r\n",status));
}
//结束完,把句柄恢复回去
ModifyHandleObject(MyProcess, MyProcess, hProcess);
NtClose(hProcess);
return status;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (4)
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
干掉NP进程的意思是,od可以调试吗
2016-4-9 20:25
0
雪    币: 6
活跃值: (1509)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
当然不可能,老外的资料早说了,NP有心跳包,你只要劫持了这个就干掉NP了
2016-4-9 20:34
0
雪    币: 256
活跃值: (48)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
如果仅仅只是读写 我只是你这太复杂了
2016-4-10 02:50
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
都进内核了。。绕过个callback还这么费劲
2016-4-11 07:20
0
游客
登录 | 注册 方可回帖
返回
//