-
-
原创]MoonU安全学习笔记之内联Hook
-
发表于:
2018-10-29 13:41
6358
-
一、笔记说
最近在学习Windows PE文件、Dll、Hook相关知识,Dll和Hook是比较有意思的学习内容,为了熟练掌握和使用Hook技术,写了点小程序验证和记录下Hook技术的思路和使用方法,和大家交流学习,不妥之处请批评指正。
Dll(动态链接库)是Windows平台提供的一种模块共享和重用机制,它本身不能独立执行,但可以被加载到其他进程中间执行。Dll的初始动力源自于程序员对于其他第三方应用程序进行功能扩展的愿望,或应用程序实现复杂操作的基础支撑技术,本次实例笔记采用远程线程注入方式实现。
Hook(钩子)可以理解为为了截获Windows系统往来信息在指令执行流中间设置岗哨的方法,在Window下Hook有两种含义:1、系统提供的消息Hook机制;2、自定义的Hook编程技巧(包括InlineHook和IATHook)。本次实例笔记采用自定义Hook中的InlineHook实现。
二、平台环境
系统:Window10 win32任务管理器
编译环境:Vs2013
程序:MFC小程序U-Defense
三、实例笔记
本次Hook目标程序->电脑任务管理器,欲实现目的:任务管理器无法关闭MFC小程序U-Defense。
Hook思路:1.Hook谁?2.怎么Hook?3.代码实现。
3.2.1 Hook谁分析:本次实验目的为要使任务管理器不能关闭MFC小程序,则要考虑任务管理器关闭进程调用哪个API函数:一般来说进程主要有四种方式中止,①主线程的入口点函数返回;②进程中的一个线程调用ExitProcess函数;③另一个进程中的线程调用TerminateProcess函数;④进程中的所有线程都“自然死亡”(这种情况几乎从来不会发生《参见Windows核心编程第五版》),很显然任务管理器要关闭我们的程序必须要用第三种方式,所以我们也就知道要Hook谁了。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2018-10-29 18:07
被MoonU编辑
,原因: 图片未显示完整