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

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

  • 相关阅读:
    centos 8 安装zabbix4.5
    python调用钉钉机器人发送消息
    基于docker-compose部署Prometheus + Grafana监控系统
    在阿里云上单机部署k8s1.18
    python3使用email模块发送邮件
    mongodb mysql es数据迁移
    Dockerfile详解
    docker-compose部署zabbix5.0
    centos8.1部署gitlab+jenkins
    基于docker-compose部署jumpserver
  • 原文地址:https://www.cnblogs.com/herso/p/1458064.html
Copyright © 2011-2022 走看看