第七下载是国内最新、最齐、最安全的软件下载基地!

关于我们最近更新热门排行

首页 入库 软件 游戏 安卓 MAC 文章 专题

新闻资讯软件应用软件教程 电脑百科编程开发操作系统游戏娱乐游戏攻略手机相关游戏视频
当前位置:首页 ›› 软件教程 ›› 如何通过HOOK方式来实现监控进程启动

如何通过HOOK方式来实现监控进程启动

2014-12-25 10:22   作者:佚名   来源:本站整理   浏览:2885   评论:6  

怎么才能通过HOOK方式来监控进程启动?这是小编最近逛论坛偶然发现很多人询问的问题,考虑到还有很多人会有同样的疑惑,于是小编就在这里准备了一篇相关的教程,并且给出了相应的代码,希望在你看完这篇文章后,能够有一定的收货!

对于程序员来说 在R3使用ms提供的winapi是非常舒服的,但是对于安全软件来说 这是非常不爽的.因为同一种功能可能使用多个api达成,比如说像CreateProcess.这个api将创建一个进程,但是为了兼容古老的操作系统 winexec也还是可以呼叫的,还有ShellExecute这个api..

那么.我在想 如何从如海般的r3 api中脱离出来?

结果发现 这三个api 不管怎么调用 最后也是NTCreateProcess(但是NTCreateProcess却是内部调用的NTCreateProcessEx,而NTCreateProcessEx是一个在ssdt表中存在的函数虽然也是未公开的),所以我只能转战r0了。

(首先去msdn找NTCreateProcess的原形,额.没有?好吧 去百度www.baidu.com/s?wd=NTCreateProcess,嗯 ..好吧 我失败了.去谷歌把.找到了

http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/Process/NtCreateProcess.html

没错 现在我再次感觉到对于程序员来说 不能依赖百度的原因了.)

这个函数的原型

NtCreateProcess(

OUT PHANDLE ProcessHandle,

IN ACCESS_MASK DesiredAccess,

IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,

IN HANDLE ParentProcess,

IN BOOLEAN InheritObjectTable,

IN HANDLE SectionHandle OPTIONAL,

IN HANDLE DebugPort OPTIONAL,

IN HANDLE ExceptionPort OPTIONAL );

注意这里有个非常被我喜欢的东西 就是这个输出参数ProcessHandle 这是进程句柄..有了句柄我们就方便多了.

好了 准备工作都做好了..开始研究驱动程序的结构

驱动程序标准入口函数声明如下

NTSTATUS DriverEntry

(

IN PDRIVER_OBJECT theDriverObject,

IN PUNICODE_STRING theRegistryPath

);

在这个函数里面 我们应该做好驱动程序的符号链接

相关代码如下:

____________________________________________________________________________________________________

UNICODE_STRING uniSymLink, uniDevName;

RtlInitUnicodeString(&uniSymLink,L"\\DosDevices\\ZMPIdrive");

//用户层的设备对象名称

RtlInitUnicodeString(&uniDevName,L"\\Device\\ProcessesGuard");

//设备对象名称

ntStatus = IoCreateDevice(pDriverObj,

sizeof (DEVICE_EXTENSION),

&uniDevName,

FILE_DEVICE_UNKNOWN,

0,

FALSE,

&pDevObj);

if (!NT_SUCCESS(ntStatus))//判定IoCreateDevice是否成功

return(ntStatus);

IoCreateSymbolicLink(

&uniSymLink,

&uniDevName);

//创建用户层名字与自己设备对象名称的符号连接方便R3与自己通信

-------------------------------------------------------------------------------

Tags:责任编辑:xinxl
    1. 管理工具管理工具

      进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,那么电脑应用进程开多了就会影响我们的电脑运行速度,第七下载提供了多款进程清理工具和管理软件...

    软件评论

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

        登录   注册