过XX保护之 InLine Hook
2015-09-26 13:55
204 查看
1--查看系统进程中的线程,发现有属于TeSafe.sys的线程,初步推测为守护线程。
2--系统回调,具体功能不予说明。
3-- SSDT 发现有3个Inline hook函数
先使用了重载内核,HOOK KiFastCallEntry来解除,后发现重载内核后,没有解除inline hook,由于水平不够,尚且不知道为何,有待提升。所以选择最平常的inline hook来绕过TP的几个inline hook函数。
1)NtOpenProcess
修改了0x805CC67A处的call,因为采用绕过,故在call之前,根据根据特征码,做手脚。
2)NtOpenThread,做和NtOpenProcess一样的操作。 为修改时的汇编代码如下:
修改后:
3)NtReadVirtualMemory,NtProtectVirtualMemory,NtWriteVirtualMemory,3个inline hook皆修改了函数开头的7个字节
绕过inline hook之后,如下:
过了最简单的部分,之后开始过KiAttachProcess,解决OD等无法附加的问题,过双机调试,DeBug port清零问题以及硬件断点等等,要学的还有很多。
2--系统回调,具体功能不予说明。
3-- SSDT 发现有3个Inline hook函数
先使用了重载内核,HOOK KiFastCallEntry来解除,后发现重载内核后,没有解除inline hook,由于水平不够,尚且不知道为何,有待提升。所以选择最平常的inline hook来绕过TP的几个inline hook函数。
1)NtOpenProcess
修改了0x805CC67A处的call,因为采用绕过,故在call之前,根据根据特征码,做手脚。
2)NtOpenThread,做和NtOpenProcess一样的操作。 为修改时的汇编代码如下:
修改后:
3)NtReadVirtualMemory,NtProtectVirtualMemory,NtWriteVirtualMemory,3个inline hook皆修改了函数开头的7个字节
绕过inline hook之后,如下:
过了最简单的部分,之后开始过KiAttachProcess,解决OD等无法附加的问题,过双机调试,DeBug port清零问题以及硬件断点等等,要学的还有很多。
相关文章推荐
- Suterusu Rootkit: Inline Kernel Function Hooking on x86 and ARM
- ARM inlinehook小结
- Win64 驱动内核编程-23.Ring0 InLineHook 和UnHook
- 某网络监视器完整逆向
- Java入门_内部类
- Spring与Hibernate整合之通用Dao的实现
- Merge k Sorted Lists
- Discuz!NT3.6与网站整合(操作用户信息)解决方案
- Java入门_面向对象基本概念
- socket编程
- Java入门_String类
- XML解析
- SpringMVC那些事-整体概述
- C#的数据类型
- centos定时备份数据库超简单示例
- CentOS 使用第三方yum源安装更多rpm软件包
- 黑马程序员-----java基础语法 函数数组
- Maven(一)-环境搭建
- fragment中startActivityForResult的一些问题
- Java入门_数组