nt!MmCreatePeb函數分析之peb中OSMajorVersion的由來

第一部分:

NTSTATUS
MmCreatePeb (
IN PEPROCESS TargetProcess,
IN PINITIAL_PEB InitialPeb,
OUT PPEB *Base
)
{
PPEB PebBase;

??????? PebBase->OSMajorVersion = NtMajorVersion;
PebBase->OSMinorVersion = NtMinorVersion;
PebBase->OSBuildNumber = (USHORT)(NtBuildNumber & 0x3FFF);
PebBase->OSPlatformId = 2;????? // VER_PLATFORM_WIN32_NT from winbase.h
PebBase->OSCSDVersion = (USHORT)CmNtCSDVersion;


第二部分:

0: kd> kc

nt!MmCreatePeb
nt!PspCreateProcess
nt!NtCreateProcessEx
nt!_KiSystemService
SharedUserData!SystemCallStub
ntdll!ZwCreateProcessEx
kernel32!CreateProcessInternalW
kernel32!CreateProcessW
cmd!ExecPgm
cmd!ECWork
cmd!ExtCom
cmd!FindFixAndRun
cmd!Dispatch
cmd!main
cmd!mainCRTStartup
kernel32!BaseProcessStart
0: kd> kv
ChildEBP RetAddr? Args to Child???????????? ?
ba10eb74 80d3a7da 892f72d0 ba10ec80 892f7460 nt!MmCreatePeb (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\mm\procsup.c @ 6255]
ba10ecd8 80d3af36 0012fa74 001f0fff 00000000 nt!PspCreateProcess+0x61a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 1623]
ba10ed2c 80afbcb2 0012fa74 001f0fff 00000000 nt!NtCreateProcessEx+0xae (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 955]
ba10ed2c 7ffe0304 0012fa74 001f0fff 00000000 nt!_KiSystemService+0x13f (FPO: [0,3] TrapFrame @ ba10ed64) (CONV: cdecl) [d:\srv03rtm\base\ntos\ke\i386\trap.asm @ 1328]
0012f0c0 77f2ed58 77e61163 0012fa74 001f0fff SharedUserData!SystemCallStub+0x4 (FPO: [0,0,0])
0012f0c4 77e61163 0012fa74 001f0fff 00000000 ntdll!ZwCreateProcessEx+0xc (FPO: [9,0,0]) [d:\srv03rtm\base\ntdll\daytona\obj\i386\usrstubs.asm @ 523]
0012fa9c 77e61e74 00000000 00144d20 001466c0 kernel32!CreateProcessInternalW+0x11c8 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\win32\client\process.c @ 3573]
0012fad4 4ad0c5de 00144d20 001466c0 00000000 kernel32!CreateProcessW+0x2a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\win32\client\process.c @ 4637]
0012fc20 4ad0d1fa 00146630 001450a8 00000000 cmd!ExecPgm+0x200 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\cmd\cext.c @ 480]
0012fc54 4ad0d302 00146630 00000000 00000000 cmd!ECWork+0x6a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\cmd\cext.c @ 204]
0012fc6c 4ad124b1 00146630 00000001 00146630 cmd!ExtCom+0x3a (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\cmd\cext.c @ 87]
0012fe98 4ad12dff 00146630 00000001 00000002 cmd!FindFixAndRun+0x111 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\cmd\cmd.c @ 1345]
0012fee0 4ad130cc 00000000 00000001 00000000 cmd!Dispatch+0x1a7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\cmd\cmd.c @ 683]
0012ff44 4ad21754 00000001 00363cf8 00362f68 cmd!main+0x280 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\cmd\cmd.c @ 431]
0012ffc0 77e62c34 00000000 00000000 7ffdf000 cmd!mainCRTStartup+0x12f (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\crts\crtw32\dllstuff\crtexe.c @ 501]
0012fff0 00000000 4ad21625 00000000 78746341 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\win32\client\support.c @ 580]

0: kd> x nt!NtMajorVersion
80a040ac nt!NtMajorVersion = 5

第三部分:

./base/ntos/init/init.c:137:const ULONG NtMajorVersion = VER_PRODUCTMAJORVERSION;

./base/ntos/init/init.c

#include "ntos.h"
#include "ntimage.h"
#include <zwapi.h>
#include <ntdddisk.h>
#include <kddll.h>
#include <setupblk.h>
#include <fsrtl.h>
#include <ntverp.h>?? ??? ?//#include <ntverp.h>

const ULONG NtMajorVersion = VER_PRODUCTMAJORVERSION;
const ULONG NtMinorVersion = VER_PRODUCTMINORVERSION;

#if DBG
ULONG NtBuildNumber = VER_PRODUCTBUILD | 0xC0000000;
#else
ULONG NtBuildNumber = VER_PRODUCTBUILD | 0xF0000000;
#endif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95262.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity TimeLine使用教程

1.概述 Timeline 是一個基于時間軸的序列化編輯工具&#xff0c;主要用于控制游戲或動畫中的 過場動畫&#xff08;Cutscenes&#xff09;、劇情事件、角色動畫混合、音頻控制 等。它類似于視頻編輯軟件&#xff08;如 Adobe Premiere&#xff09;的時間線&#xff0c;但專門針…

數據分析基本內容(第二十節課內容總結)

1.pd.read_csv(一個文件.csv)&#xff1a;從本地文件加載數據&#xff0c;返回一個 DataFrame 對象&#xff0c;這是 pandas 中用于存儲表格數據的主要數據結構2.df.head()&#xff1a;查看數據的前五行&#xff0c;幫助快速了解數據的基本結構和內容3.df.info()&#xff1a;查…

2025年最新原創多目標算法:多目標酶作用優化算法(MOEAO)求解MaF1-MaF15及工程應用---盤式制動器設計,提供完整MATLAB代碼

一、酶作用優化算法 酶作用優化&#xff08;Enzyme Action Optimizer, EAO&#xff09;算法是一種2025年提出的新型仿生優化算法&#xff0c;靈感源于生物系統中酶的催化機制&#xff0c;發表于JCR 2區期刊《The Journal of Supercomputing》。其核心思想是模擬酶與底物的特異性…

用 COLMAP GUI 在 Windows 下一步步完成 相機位姿估計(SfM) 和 稀疏點云重建的詳細步驟:

使用 COLMAP GUI 進行 SfM 和稀疏點云重建的步驟1. 打開 COLMAP GUI運行 colmap.bat&#xff0c;會彈出圖形界面。2. 新建項目&#xff08;或打開已有項目&#xff09;點擊菜單欄的 File > New Project&#xff0c;選擇一個空文件夾作為項目目錄&#xff08;建議新建一個空目…

天線設計 介質材料PEC和FR4有什么區別嗎

在電磁仿真&#xff08;包括 CST 中&#xff09;&#xff0c;PEC 和 FR4 是兩種完全不同的材料類型&#xff0c;主要區別如下&#xff1a;材料性質&#xff1a;PEC&#xff08;Perfect Electric Conductor&#xff0c;理想電導體&#xff09;&#xff1a;是一種理論上的理想材料…

mysql鎖+索引

mysql鎖按鎖的粒度分類表級鎖&#xff08;Table - level locks&#xff09;特點&#xff1a;對整張表進行鎖定&#xff0c;實現簡單&#xff0c;加鎖和釋放鎖的速度快&#xff0c;但并發度較低。當一個事務對表加表級鎖后&#xff0c;其他事務對該表的讀寫操作都可能被阻塞。應…

計算機視覺CS231n學習(7)

可視化和理解 這里主要是對CNN中間的層的結果可視化濾波器可視化 直接可視化網絡各層的濾波器權重&#xff0c;高層濾波器的可視化結果趣味性較低&#xff0c;而底層濾波器通常對應邊緣、紋理等基礎視覺特征 &#xff08;“高層濾波器” 通常指的是網絡中靠后的卷積層所包含的濾…

OpenBMC中工廠模式的簡明工作流程解析

本文將以最簡單直接的方式&#xff0c;從零開始講解OpenBMC中工廠模式的完整工作流程&#xff0c;包括從設計到使用的全生命周期。 1. 工廠模式最簡示例 我們先從一個最基礎的工廠模式實現開始&#xff1a; // 產品接口 class GpioPin { public:virtual void setValue(bool val…

解決:Error updating changes: detected dubious ownership in repository at

在通過 Git Bash 提交項目代碼時輸入 git add . 命令后&#xff0c;報錯&#xff1a;Error updating changes: detected dubious ownership in repository at ...這是因為 該項目的所有者 與 現在的用戶 不一致 比如說&#xff1a; 該項目的所有者是 Administrator&#xff0c;…

DataEase V2 社區版安裝部署

參考&#xff1a;使用外置 MySQL 部署 DataEase v2 - FIT2CLOUD 知識庫 一、下載安裝包 開源社區 - FIT2CLOUD 飛致云 選擇社區版下載 下載后上傳到 linux 的目錄 &#xff08;要求至少200G&#xff09; 二、在MySQL8中創建數據庫 # 創建DataEase庫 CREATE DATABASE datae…

nginx高性能web服務器

web服務基礎介紹 一、Web服務核心流程 #mermaid-svg-NCj4hbRIvvgMXmcK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NCj4hbRIvvgMXmcK .error-icon{fill:#552222;}#mermaid-svg-NCj4hbRIvvgMXmcK .error-text{fil…

_init__.py的作用

目錄 場景1:沒有 `__init__.py` 的情況 場景2:有 `__init__.py` 并導入模塊 場景3:用 `__all__` 定義"推薦工具" 注意:工具箱內部的工具互相調用 情況1:在 `__init__.py` 中導入模塊 情況2:在 `__init__.py` 中直接導入模塊里的功能 關鍵原則 在 Python 中,__…

瀏覽器面試題及詳細答案 88道(12-22)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

開發避坑指南(23):Tomcat高版本URL特殊字符限制問題解決方案(RFC 7230 RFC 3986)

異常信息 java.lang.IllegalArgumentException: 在請求目標中找到無效字符[/order/show?orderType01&orderTitle0xe50x8f0xa30xe50xb20xb80xe50x8a0xa80xe60x800x81&pageNum1 ]。有效字符在RFC 7230和RFC 3986中定義org.apache.coyote.http11.Http11InputBuffer.parse…

HTTPS的應用層協議

HTTPS的應用層協議 方案 5 - 非對稱加密 對稱加密 證書認證 在客戶端和服務器剛一建?連接的時候, 服務器給客戶端返回一個 證書&#xff0c;證書包含了之前服務端的公鑰, 也包含了網站的身份信息. 客戶端進行認證 當客戶端獲取到這個證書之后, 會對證書進行校驗(防止證書是偽…

【SpringBoot】05 容器功能 - SpringBoot底層注解的應用與實戰 - @Configuration + @Bean

文章目錄前言一、創建兩個組件二、使用傳統方式源代碼解釋三、使用SpringBoot方法源代碼解釋四、查看是否添加到組件中查看自定義組件名配置類在容器中注冊的是單實例組件配置類本身也是容器中的一個組件Configuration的proxyBeanMethods屬性&#xff1a;代理bean的方法proxyBe…

c#聯合Halcon進行OCR字符識別(含halcon-25.05 百度網盤)

1.下載安裝halcon 通過網盤分享的文件&#xff1a;halcon-25.05.0.0-x64-win64 鏈接: https://pan.baidu.com/s/1XAx-8ZQM-ZHkgHIc-dhCYw 提取碼: whek 2.c#環境配置 創建test_halcon_ocr項目 找到halcon的安裝路徑 我的&#xff1a; D:\halcon\HALCON-25.05-Progress\bin\x64…

絲桿支撐座怎樣助力升降設備實現智能化?

絲桿支撐座作為傳動系統中的關鍵支撐部件&#xff0c;憑借其高剛性、抗沖擊及精準定位能力&#xff0c;廣泛應用于重型機械與升降設備領域&#xff0c;為設備提供穩定可靠的軸向承載與徑向支撐&#xff0c;確保高負荷工況下的安全運行。電梯 / 升降平臺&#xff1a;液壓電梯的輔…

Notta:高效智能的音頻轉文字工具

本文轉載自&#xff1a;Notta&#xff1a;高效智能的音頻轉文字工具 - Hello123 ** 一、產品簡介 Notta 是一款基于 AI 語音識別引擎的語音轉文字工具&#xff0c;支持 58 種語言的轉錄和 42 種語言的翻譯。用戶可通過實時錄音或上傳音頻 / 視頻文件&#xff08;如 MP3、WAV …

Docker私有倉庫創建及Docky存儲與網絡配置(小白的“升級打怪”成長之路)

目錄 一、Docker私有倉庫創建 1、在一臺安裝Docker私有倉庫的主機上添加docker-compose 命令 2、安裝docker-ce服務 3、Docker 鏡像加速 4、安裝Harbor倉庫 5、使用腳本安裝倉庫 6、網站登陸 7、客戶端使用Harbor倉庫 二、Docky存儲與網絡配置 1、存儲與網絡 掛載主機…