首页
社区
课程
招聘
[旧帖] [求助]蓝屏,好喝的钙~ 0.00雪花
发表于: 2011-9-13 05:31 1657

[旧帖] [求助]蓝屏,好喝的钙~ 0.00雪花

2011-9-13 05:31
1657
我自己做了一张SSDT表,想让所有SSDT HOOK失效,我把ServiceTableBase改为自己的表的地址,就蓝屏了要怎么弄才行啊,今天喝了一天蓝屏的钙了

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还有参数表呢
2011-9-13 08:41
0
雪    币: 128
活跃值: (111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
对头,那么多参数你怎么搞?
2011-9-13 09:12
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
#include "ntddk.h"
#define INITCODE code_seg("INIT")
typedef struct _SERVICE_DESCRIPTOR_TABLE
{
    PVOID ServiceTableBase;
    PULONG ServiceCounterTableBase;
    ULONG NumberOfService;
    ULONG ParamTableBase;
}SERVICE_DESCRIPTOR_TABLE,*PSERVICE_DESCRIPTOR_TABLE;

extern PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable;

ULONG Address,OldAddress;

ULONG MySsdt[284];

void hook();
void unhook();
void OnUnload(PDRIVER_OBJECT DriverObject);

#pragma INITCODE
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
    DriverObject->DriverUnload=OnUnload;
    hook();
    return STATUS_SUCCESS;
}
void OnUnload(PDRIVER_OBJECT DriverObject)
{
    unhook();
}
void hook()
{
    MySsdt[0]=0x805a5630;
    MySsdt[1]=0x805f240e;
    MySsdt[2]=0x805f5c04;
    ..............
    MySsdt[281]=0x806196ae;
    MySsdt[282]=0x8061990a;
    MySsdt[283]=0x805cc942;//我从kernel detective上抄来的

   Address=(ULONG)KeServiceDescriptorTable;
    OldAddress=*(ULONG*)Address;
    __asm
    {
        cli
        mov eax,cr0
        and eax,not 10000h
        mov cr0,eax
    }
    *(ULONG*)Address=(ULONG)&MySsdt[0];
    __asm
    {
        mov eax,cr0
        or eax,10000h
        mov cr0,eax
        sti
    }
}

void unhook()
{
    __asm
    {
        cli
        mov eax,cr0
        and eax,not 10000h
        mov cr0,eax
    }
    *(ULONG*)Address=OldAddress;
    __asm
    {
        mov eax,cr0
        or eax,10000h
        mov cr0,eax
        sti
    }
}
2011-9-13 16:20
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大家帮帮我啊
2011-9-13 16:22
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哦  貌似 参数表不受影响哈。  
不过楼主好牛B  抄了284遍  有没有抄错哦

对  我现在怀疑你抄错了
2011-9-13 16:36
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
内存属性.exe
2011-9-13 16:38
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不会吧,检查好几遍了帮我看看还有什么其他的原因,蓝屏蓝怕了
2011-9-13 16:45
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
想到一个循环的方法填充数组,结果成功了

可能上面真的是抄错了
2011-9-13 21:07
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
但是新的问题出现了

SSDT HOOK又跑去我的表上HOOK

怎么办,听说要HOOK KiFastCallEntry才行,具体怎么操作
2011-9-13 21:12
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
11
这样做没意思啊,自己从文件中获取SSDT中函数原始地址吧,前一段时间发过相关源码~~~
2011-9-13 21:13
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
怎样hook KiFastCallEntry让它指向我的表
2011-9-14 00:21
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
怎么就没有看到相关的代码的啊
2011-9-14 00:53
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
前段时间一天蓝屏10多次的人路过...
2011-9-14 07:50
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
建议楼至使用虚拟机和影子系统研究,这样即使出错也不会有什么损失。
2011-9-16 09:13
0
游客
登录 | 注册 方可回帖
返回
//