本站资源来自互联网用户收集发布,仅供用于学习和交流。如有侵权之处,请联系站长并出示版权证明以便删除,敬请谅解!(邮箱:whctwlgzs@foxmail.com)
title
广告展示页面
微信扫一扫 分享朋友圈

已有 1465 人浏览分享

[Windows内核-驱动开发] Windows内核驱动-进程线程 1-12课程

[复制链接]
admin (帅逼1)实名认证

积分信息:
无忧币:112764
交易币:2147480567
贡献:999999

我的勋章:

灌水之王突出贡献优秀版主荣誉管理论坛元老沙发王源码大师在线王终身成就机器王知识库土豪活跃会员最佳新人热心会员


发表于  2025-5-9 16:35:31 | 显示全部楼层 | 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转无忧吧。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
课程介绍​
本系列教程将深入讲解 Windows 内核中的进程和线程相关知识,带领大家了解其运行原理,包括线程切换、强杀进程、进程挂靠的本质等内容。通过理论讲解与小练习相结合的方式,帮助读者更好地掌握 Windows 内核驱动中进程线程的关键技术。​
第 1 课 进程结构体​
在 Windows 内核中,进程是系统进行资源分配和调度的基本单位。而进程结构体(EPROCESS)则是描述进程的核心数据结构,它包含了进程的各种关键信息,如进程 ID、父进程 ID、进程状态、内存信息、句柄表等。通过对进程结构体的研究,我们可以深入了解进程在系统中的运行机制。例如,进程 ID(UniqueProcessId)用于唯一标识一个进程,父进程 ID(InheritedFromUniqueProcessId)则表明了该进程的父进程,这对于理解进程的创建和层次关系至关重要。​
第 2 课 线程结构体​
线程是进程中的执行单元,每个进程至少包含一个线程。线程结构体(ETHREAD)描述了线程的详细信息,包括线程 ID、线程状态、上下文信息、调度信息等。线程的上下文信息保存了线程在执行过程中的各种寄存器值,当线程被切换时,这些信息会被保存和恢复,以确保线程能够正确地继续执行。调度信息则与线程的优先级、时间片等相关,决定了线程在 CPU 上的执行顺序。​
第 3 课 KPCR 与等待链表、调度链表​
KPCR(Kernel Processor Control Region)是内核中与处理器相关的控制区域,每个处理器都有一个对应的 KPCR。KPCR 中包含了处理器的状态信息、当前运行的线程、等待链表头、调度链表头等重要内容。等待链表用于管理那些正在等待某种资源的线程,当资源可用时,系统会从等待链表中唤醒相应的线程。调度链表则根据线程的优先级和状态,决定下一个应该运行的线程,实现 CPU 资源的合理分配。​
第 4 课 线程切换(主动切换)​
线程切换是操作系统实现多任务处理的关键机制之一。主动切换是指线程主动放弃 CPU 使用权的情况,例如当线程需要等待某个事件(如 I/O 操作完成)时,会主动进入等待状态,从而触发线程切换。在主动切换过程中,系统会保存当前线程的上下文信息,将其状态设置为等待状态,并将其放入等待链表中,然后从调度链表中选择一个合适的线程来运行,恢复该线程的上下文信息,使其开始执行。​
第 5 课 线程切换(被动切换)​
被动切换则是线程在运行过程中被迫放弃 CPU 使用权的情况,通常是由于时间片用完或者有更高优先级的线程进入就绪状态。当线程的时间片耗尽时,系统会触发时钟中断,此时会进行线程切换,将当前线程的上下文保存下来,放入就绪队列中,然后选择下一个线程运行。如果有更高优先级的线程就绪,系统会立即进行线程切换,以确保高优先级线程能够及时得到执行,这体现了操作系统的优先级调度策略。​
第 6 课 SwapContext 函数分析​
SwapContext 函数是线程切换过程中的关键函数,它负责保存当前线程的上下文和恢复新线程的上下文。在 x86 架构下,该函数会处理寄存器的保存和恢复,如通用寄存器、段寄存器、标志寄存器等。通过深入分析 SwapContext 函数的实现,可以更好地理解线程切换的底层机制。该函数的调用时机通常是在确定需要进行线程切换时,由调度器调用,从而完成两个线程之间的上下文交换,保证程序的正确执行。​
第 7 课 线程切换的优先级​
线程的优先级在调度过程中起着重要作用。Windows 内核支持多种优先级级别,从低到高分为不同的等级。高优先级的线程在调度时会优先获得 CPU 资源,从而能够更快地执行。线程的优先级可以分为动态优先级和基本优先级,动态优先级会根据线程的运行情况进行调整,例如,经常等待 I/O 操作的线程可能会获得更高的动态优先级,以提高系统的整体性能。了解线程切换的优先级机制,有助于我们更好地理解操作系统如何调度线程,以及如何优化程序的性能。​
第 8 课 进程挂靠​
进程挂靠的本质是将一个进程的执行环境依附到另一个进程中,使得挂靠进程可以共享被挂靠进程的资源和上下文。在实现进程挂靠时,需要修改相关的进程和线程结构体,使得挂靠进程的线程能够在被挂靠进程的地址空间中运行。这在一些特殊的应用场景中非常有用,例如,游戏**可能会通过进程挂靠来读取游戏进程的内存数据。但需要注意的是,进程挂靠也可能带来一些安全问题,需要合理使用。​
第 9 课 小练习:进程隐藏​
进程隐藏是通过修改进程结构体在系统中的链表链接,使得进程在任务管理器等工具中不可见。具体来说,Windows 内核中维护了一个进程链表,每个进程的 EPROCESS 结构体通过双向链表链接在一起。要隐藏一个进程,我们需要将该进程从链表中移除,同时修改其他相关的引用,以避免被系统检测到。在实现过程中,需要注意操作的安全性,避免导致系统崩溃。​
第 10 课 小练习:保护进程​
保护进程的目的是防止进程被非法终止、修改等操作。可以通过监控进程的相关操作,如进程终止请求、内存修改请求等,并根据预设的规则进行过滤和拦截。例如,我们可以在驱动程序中注册相关的回调函数,当系统试图终止或修改被保护进程时,回调函数会被触发,我们可以在回调函数中判断操作是否合法,从而决定是否允许该操作。​
第 11 课 小练习:强杀进程​
强杀进程是指即使进程处于某种保护状态或无法正常终止的情况下,强制终止该进程。这通常需要直接操作进程的内核对象,如关闭进程的所有句柄,终止进程的所有线程等。在实现强杀进程时,需要获取进程的 EPROCESS 结构体,然后调用相关的内核函数来终止进程。需要注意的是,强杀进程可能会导致数据丢失或系统不稳定,应谨慎使用。​
第 12 课 小练习:进程挂靠读游戏内存(DXF)​
以 DXF 游戏为例,进程挂靠读游戏内存的步骤如下:首先找到游戏进程的 PID,然后通过进程挂靠将我们的驱动程序的线程挂靠到游戏进程中,使得我们的线程可以在游戏进程的地址空间中运行。接着,通过读取游戏进程中的内存数据,获取我们需要的信息,如玩家的坐标、血量等。在实现过程中,需要正确处理内存地址的转换,确保能够准确读取到游戏进程的内存数据。
游客回复评论后点此刷新即可查看下载地址
回复




Windows内核驱动-进程线程 1-12课程  9265 无忧技术吧www.92wuyou.cn
Windows内核驱动-进程线程 1-12课程  3951 无忧技术吧www.92wuyou.cn
无忧技术吧-免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.whct.net无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
5、无忧技术吧(www.whct.net)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。无忧技术吧不承担任何因为技术滥用所产生的连带责任。无忧技术吧内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或QQ与我们联系处理。
6、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:whctwlgzs@foxmail.com),本站将立即改正。
联系方式:
站长邮箱:whctwlgzs@foxmail.com
站长QQ:4040068
无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

×本站发帖友情提示
1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
2、如果存在违反国家相关法律、法规、条例的行为,我们有权在不经作者准许的情况下删除其在本论坛所发表的文章。
3、所有网友不要盗用有明确版权要求的作品,转贴请注明来源,否则文责自负。
4、本社区保护注册用户个人资料,但是在自身原因导致个人资料泄露、丢失、被盗或篡改,本论坛概不负责,也不承担相应法律责任。

0

关注

6

粉丝

835

主题
  • 联系我们
  • 邮箱:4040068@qq.com
  • 官方交流群:805881393
  • QQ客服 4040068
  • 工作时间:周一至周五(早上9点至下午5点)
  • 微信公众平台

  • 扫描访问手机版

关闭

站长推荐上一条 /2 下一条

热烈推荐

QQ|Archiver|手机版|小黑屋|无忧技术吧 ( 鄂ICP备2024050280号-2 )

GMT+8, 2025-7-6 07:14 , Processed in 0.204748 second(s), 51 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.