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是怎么配置的。

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

  • 相关阅读:
    Log4j,Log4j2,logback,slf4j日志学习(转)
    MultipartFile类
    @Transactional(转)
    redis序列化和反序列化
    redis常见问题(转)
    为什么说Redis是单线程的以及Redis为什么这么快!(转)
    Numpy 用法小结
    正则表达式使用小结
    Hive 窗口函数、分析函数
    Hive UDF开发实例学习
  • 原文地址:https://www.cnblogs.com/kkindof/p/2571064.html
Copyright © 2011-2022 走看看