博客
关于我
SSDT——框架编写与hook实例
阅读量:205 次
发布时间:2019-02-28

本文共 1424 字,大约阅读时间需要 4 分钟。

SSDT Hook??????????? .Net ??? MVC ?????????????? .cpp ? .h ???????????? API ?????????

SSDT ??????? Service Descriptor Table?SSDT????????????????????????????????????Hook?????????????? ServiceTableBase??????????????????????????

SSDT ??????????????

  • ServiceTableBase?SSDT ??????
  • ServiceCounterTableBase?????????????
  • NumberOfServices?SSDT ???????
  • ParamTableBase????????

??????????????????????????????cli????????? sti???????????????????Cr0 ?????????????????????????????????

???????????????

void PageProtectOff() {    __asm {        cli        mov eax, cr0        and eax, not 10000h        mov cr0, eax    }}

????????????????

void PageProtectOn() {    __asm {        mov eax, cr0        or eax, 10000h        mov cr0, eax        sti    }}

???Hook?????????????? SSDT ?????????????????????????????????

? OpenProcess ??????????????????????????? Hook ??????????????????????????????????????? OpenProcess ???

??? OpenProcess Hook ????????

NTSTATUS ssdt_hook() {    O_NtOpenProcess = KeServiceDescriptorTable.ServiceTableBase[122];    PageProtectOff();    KeServiceDescriptorTable.ServiceTableBase[122] = (unsigned int)MyNtOpenProcess;    PageProtectOn();    return STATUS_SUCCESS;}

MyNtOpenProcess ?????????????????????????? OpenProcess ????????????? ClientId ?????????????

CLIENT_ID ???????

typedef struct _CLIENT_ID {    HANDLE UniqueProcess;    HANDLE UniqueThread;} CLIENT_ID;

??????????????????? Hook ??????????????????????????????

转载地址:http://rzri.baihongyu.com/

你可能感兴趣的文章
org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
查看>>
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
查看>>
org.hibernate.HibernateException: Unable to get the default Bean Validation factory
查看>>
org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
查看>>
SQL-CLR 类型映射 (LINQ to SQL)
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
查看>>
org.tinygroup.serviceprocessor-服务处理器
查看>>
org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
查看>>
org/hibernate/validator/internal/engine
查看>>
Orleans框架------基于Actor模型生成分布式Id
查看>>
SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
查看>>
ORM sqlachemy学习
查看>>
Ormlite数据库
查看>>
orm总结
查看>>
os.environ 没有设置环境变量
查看>>
os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
查看>>
os.removexattr 的 Python 文档——‘*‘(星号)参数是什么意思?
查看>>
os.system 在 Python 中不起作用
查看>>