zoukankan      html  css  js  c++  java
  • 【note】进程结束内幕

    下午抽空看了PspTerminateProcess  NTerminateProcess的实现。。。也更加理解了进程是个容器。。。线程是执行体的概念。。。。

    note下流程:

    在内部的调用流程 :

    psPTerninateProcess 

    1. 通过Eprocess得到 Ethread的列表 。。

    2. 通过循环依次结束每个线程。。。调用PspTerminateThreadByPointer  。。。

    3. 在PspTerminateThreadByPointer内部。。判断如果是当前线程 。。则调用PspExitThread 结束 。。否则。。便向该线程中插入一个PspExitApc, 然后强制

    唤醒该线程。。。。去执行PspExitThread, 让线程自杀。。。。(如果是系统线程 。。则拒绝访问)

    4. 如果结束的是进程的最后一个线程。。。则销毁进程的虚拟地址空间。。。debugport  exceptport。。。。然后从进程链表中删除 。。。。

    所以。。一般DKOM伎俩也就是从上面的步骤中寻找突破口 。。然后保护进程。。

    看了下大米的Dkom。。。被一个法国人A了。。。主要是通过3和4 完成的 。。

    再看mj的。。。。更邪恶。。。  做了一个回调函数。。。。 想法是挺好的。。。

    去年看  炉子。。大米。。。他们的文章 和看天书似的。。。。现在已经能看懂大部分了。。。。我已经进步了 O(∩_∩)O哈哈~

    新书 。。。windows内核情景分析 。。。140¥  。。。。  老毛子 。。。。真狠。。。

    =============================================================

    ps:只看一个东西的原理真不过瘾。。。。真正看到实现了。。。所有的东西也就明白了。。。  技术就是一层窗户纸啊。。。。。。

    stl如此。。。windows的os也是如此。。。。。

    想端午节回家。。。。。。。。。

  • 相关阅读:
    Java进阶7并发优化4——JDK并发数据结构
    Java 进阶7 并行优化 JDK多任务执行框架技术
    Java进阶7 并发优化2 并行程序设计模式
    Java 进阶7 并发优化 1 并行程序的设计模式
    Java 进阶6 异常处理的陷阱
    Algorithm3: 获得一个int数中二进制位为1 的个数
    Algorithm2: 重复查过半数的元素
    Algorithm1: 全排列
    Java进阶5 面向对象的陷阱
    Java进阶2 数组内存和对象的内存管理知识
  • 原文地址:https://www.cnblogs.com/herso/p/1458064.html
Copyright © 2011-2022 走看看