读取SSDT表和原函数地址
2015-12-30 13:50
239 查看
读取当前地址代码(NtOpenProcess):
LONG *SSDT_Adr,t_addr,adr;
t_addr=(LONG)KeServiceDescriptorTable->ServiceTableBase;
SSDT_Adr=(PLONG)(t_addr+0x7a*4);
adr=*SSDT_Adr;
读取起源地址(NtOpenProcess):
UNICODE_STRING SysRoutineName;
LONG orgadr;
RtlInitUnicodeString(&SysRoutineName,L"NtOpenProcess");
orgadr=(LONG)MmGetSystemRoutineAddress(&SysRoutineName);
通过得到的地址 可以判断改函数是否被hook
自己读取的SSDT表:
SSDT 地址 | 起源地址.
NtOpenProcess->805751e0 | 805751e0
LONG *SSDT_Adr,t_addr,adr;
t_addr=(LONG)KeServiceDescriptorTable->ServiceTableBase;
SSDT_Adr=(PLONG)(t_addr+0x7a*4);
adr=*SSDT_Adr;
读取起源地址(NtOpenProcess):
UNICODE_STRING SysRoutineName;
LONG orgadr;
RtlInitUnicodeString(&SysRoutineName,L"NtOpenProcess");
orgadr=(LONG)MmGetSystemRoutineAddress(&SysRoutineName);
通过得到的地址 可以判断改函数是否被hook
自己读取的SSDT表:
SSDT 地址 | 起源地址.
NtOpenProcess->805751e0 | 805751e0
相关文章推荐
- 学习资料收集
- iOS9 HTTP请求失效
- [LeetCode]题解(python):082-Remove Duplicates from Sorted List II
- [转载]C#流,字节数组,字符串
- 深度解读「楼下100」撬动下午茶市场 |手摸手产品研究院
- 我的2015系统集成考试心得
- delete void* 释放内存问题(C++)
- 反调试技巧总结-原理和实现
- 锚点平滑定位(js)
- [LeetCode]Distinct Subsequences
- Android 使用ORMLite 操作数据库
- 敏捷开发之Scrum扫盲篇
- android:activity活动的生命周期
- 深入理解Java的接口和抽象类
- VC编译的除法的一段汇编代码解释
- 建造者模式【Builder Pattern
- 田蕴章书法讲座《每日一题,每日一字》(3) 文字整理 ——左右二字与毛笔
- Ubuntu系统安装完后修改目录空间大小
- Python标准库09 当前进程信息 (os包)
- linux服务器启动系统提示welcome to emergency mode! after logging in type...