zoukankan      html  css  js  c++  java
  • SmLoadDeferedSubsystemApi

    SmLoadDeferedSubsystemApi 借用进程启动??parent handle hack?

    switch (SmApiMsg->ApiNumber) {
    case SmExecPgmApi :
    Status = (SmpApiDispatch[SmApiMsg->ApiNumber])(
    SmApiMsg,
    ClientContext,
    ConnectionPort);
    break;

    case SmLoadDeferedSubsystemApi :
    Status = (SmpApiDispatch[SmApiMsg->ApiNumber])(
    SmApiMsg,
    ClientContext,
    ConnectionPort);

    PSMAPI SmpApiDispatch[SmMaxApiNumber] = {
    SmpCreateForeignSession,
    SmpSessionComplete,
    SmpTerminateForeignSession,
    SmpExecPgm,
    SmpLoadDeferedSubsystem
    };

    键名Optional是属于defer类的subsytem,smss.exe取出值Posix,再读取Posix键的值,发现是psxss.exe。所以如果上面的方法成功,就可以发命令让smss.exe进程来启动psxss.exe

    Required是必须类,所以现在windows一般都是取出windows键的值csrss.exe来启动,debug也是,不过觉的都是为空。

    Kmode是smss.exe读取出来使用NtSetSystemInformation()函数功能号SystemExtendServiceTableInformation完成加载的

    另外笔记下,smss.exe是最早的用户进程(在内核Phase1Initxx阶段创建,smss.exe这个进程名没法配置,硬编码在代码里的),smss.exe启动2个进程(其实还有1个,就是autocheck.exe,不过启动后就退出了)分别是:winlogon.exe和csrss.exe

    其实这2个进程都是可以配置的,csrss.exe在上面截图已经看到了,就是在那配置。而winlogon.exe是smss.exe是在Session Manager下找不到Excute子键时默认启动的进程,

    暂时还不晓得Excute是怎么配置的。

    ****不一定全对,只是粗糙看了下泄露的旧源码啥的,

  • 相关阅读:
    设计模式(三)原型模式
    PageHelper在Mybatis中的使用
    设计模式(二) 单例模式
    设计模式(一)简单工厂、工厂方法和抽象工厂
    Java网络编程
    循环控制语句if 、for、case、while
    处理海量数据的grep、cut、awk、sed 命令
    shell脚本的输入以及脚本拥有特效地输出
    shell的变量以及常见符号
    shell的使用技巧
  • 原文地址:https://www.cnblogs.com/kkindof/p/2571064.html
Copyright © 2011-2022 走看看