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也是如此。。。。。

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

  • 相关阅读:
    Luogu P1962 斐波那契数列
    Luogu P2370 yyy2015c01的U盘
    Luogu P2678跳石头
    POJ3111 K Best
    表单内容相关操作
    框架集与框架.
    spring aop的使用
    sql查询的优化(六)
    mysql数据库视图(五)
    mysql数据库索引(四)
  • 原文地址:https://www.cnblogs.com/herso/p/1458064.html
Copyright © 2011-2022 走看看