From 8fc6aa1e29e858ed87938d4761e60812cee3e9c1 Mon Sep 17 00:00:00 2001 From: BlackINT3 Date: Thu, 28 Oct 2021 23:24:22 +0800 Subject: [PATCH] Make kernel-entry page to support Windows 11. --- .../common/win-wrapper/win-wrapper.cpp | 109 ++++++++ src/OpenArk/common/win-wrapper/win-wrapper.h | 4 +- src/OpenArk/kernel/driver/driver.cpp | 5 +- src/OpenArk/kernel/kernel.cpp | 33 +-- src/OpenArk/openark_zh.ts | 252 +++++++++--------- src/OpenArk/res/lang/openark_zh.qm | Bin 34388 -> 33722 bytes src/OpenArk/ui/kernel.ui | 84 ++---- 7 files changed, 268 insertions(+), 219 deletions(-) diff --git a/src/OpenArk/common/win-wrapper/win-wrapper.cpp b/src/OpenArk/common/win-wrapper/win-wrapper.cpp index 679a472..ef2a947 100644 --- a/src/OpenArk/common/win-wrapper/win-wrapper.cpp +++ b/src/OpenArk/common/win-wrapper/win-wrapper.cpp @@ -690,4 +690,113 @@ ULONG64 GetFreeLibraryAddress(DWORD pid) addr = GetFreeLibraryAddress32(pid); } return addr; +} + +std::string OsWinVersionInfo() +{ + //from https://github.com/BlackINT3/unone + std::string winver; + auto major = UNONE::OsMajorVer(); + auto minor = UNONE::OsMinorVer(); + auto release = UNONE::OsBuildNumber(); + SYSTEM_INFO info; + GetSystemInfo(&info); + OSVERSIONINFOEX os; + os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + GetVersionEx((OSVERSIONINFO *)&os); + if (major == 10 && minor == 0) { + if (os.dwPlatformId == VER_PLATFORM_WIN32_NT) { + if (release > 19043) winver = "Windows 11"; + else winver = "Windows 10"; + } else { + switch (release) { + case 14393: winver = "Windows Server 2016"; break; + case 17763: + case 18363: + case 19041: + case 19042: winver = "Windows Server 2019"; break; + case 20348: winver = "Windows Server 2022"; break; + } + } + } else { + switch (major) { + case 4: + switch (minor) { + case 0: + if (os.dwPlatformId == VER_PLATFORM_WIN32_NT) winver = "Windows NT 4.0"; + else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) winver = "Windows 95"; + break; + case 10: winver = "Windows 98"; break; + case 90: winver = "Windows ME"; break; + } + break; + case 5: + switch (major) { + case 0: winver = "Windows 2000"; break; + case 1: winver = "Windows XP"; break; + case 2: + if (os.wProductType == VER_NT_WORKSTATION && info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) + winver = "Windows XP Professional x64 Edition"; + else if (GetSystemMetrics(SM_SERVERR2) == 0) + winver = "Windows Server 2003"; + else if (GetSystemMetrics(SM_SERVERR2) != 0) + winver = "Windows Server 2003 R2"; + break; + } + break; + case 6: + switch (minor) { + case 0: + if (os.wProductType == VER_NT_WORKSTATION) winver = "Windows Vista"; + else winver = "Windows Server 2008"; + break; + case 1: + if (os.wProductType == VER_NT_WORKSTATION) winver = "Windows 7"; + else winver = "Windows Server 2008 R2"; + break; + case 2: + if (os.wProductType == VER_NT_WORKSTATION) winver = "Windows 8"; + else winver = "Windows Server 2012"; + break; + case 3: + if (os.wProductType == VER_NT_WORKSTATION) winver = "Windows 8.1"; + else winver = "Windows Server 2012 R2"; + } + break; + } + } + return winver; +} + +std::string OsReleaseNumber() +{ + /* + //c++11 + std::map tables = { + { 10240, 1507 }, { 10586, 1511} ,{ 14393, 1607 } ,{ 15063, 1703 } ,{ 16299, 1709 } ,{ 17134, 1803 } , + { 17763, 1809 }, { 18362, 1903 } ,{ 18363, 1909 } ,{ 19041, 2004 }, { 19042, 20H2 } + };*/ + + std::pair pairs[] = { + std::make_pair(10240, "1507"), + std::make_pair(10586, "1511"), + std::make_pair(14393, "1607"), + std::make_pair(15063, "1703"), + std::make_pair(16299, "1709"), + std::make_pair(17134, "1803"), + std::make_pair(17763, "1809"), + std::make_pair(18362, "1903"), + std::make_pair(18363, "1909"), + std::make_pair(19041, "2004"), + std::make_pair(19042, "20H2"), + std::make_pair(19043, "21H1"), + std::make_pair(22000, "21H2"), + }; + std::map tables(pairs, pairs + _countof(pairs)); + + DWORD build = UNONE::OsBuildNumber(); + auto it = tables.find(build); + if (it != tables.end()) + return it->second; + return ""; } \ No newline at end of file diff --git a/src/OpenArk/common/win-wrapper/win-wrapper.h b/src/OpenArk/common/win-wrapper/win-wrapper.h index b05eca3..10c9442 100644 --- a/src/OpenArk/common/win-wrapper/win-wrapper.h +++ b/src/OpenArk/common/win-wrapper/win-wrapper.h @@ -51,4 +51,6 @@ DWORD OsGetExplorerPid(); bool ObLoadDriverRegistryW(__in const std::wstring &file_path, __in std::wstring srv_name); bool ObUnloadDriverRegistryW(__in const std::wstring &srv_name); bool PsKillProcess(__in DWORD pid); -ULONG64 GetFreeLibraryAddress(DWORD pid); \ No newline at end of file +ULONG64 GetFreeLibraryAddress(DWORD pid); +std::string OsWinVersionInfo(); +std::string OsReleaseNumber(); \ No newline at end of file diff --git a/src/OpenArk/kernel/driver/driver.cpp b/src/OpenArk/kernel/driver/driver.cpp index 97e3d36..3b3949c 100644 --- a/src/OpenArk/kernel/driver/driver.cpp +++ b/src/OpenArk/kernel/driver/driver.cpp @@ -129,10 +129,7 @@ void KernelDriver::InitDriverKitView() QString file = QFileDialog::getOpenFileName(kernel_, tr("Open File"), "", tr("Driver Files (*.sys);;All Files (*.*)")); kernel_->onOpenFile(file); }); - connect(ui_->signBtn, SIGNAL(clicked()), this, SLOT(onSignDriver())); - connect(ui_->installNormallyBtn, SIGNAL(clicked()), this, SLOT(onInstallNormallyDriver())); - connect(ui_->installUnsignedBtn, SIGNAL(clicked()), this, SLOT(onInstallUnsignedDriver())); - connect(ui_->installExpiredBtn, SIGNAL(clicked()), this, SLOT(onInstallExpiredDriver())); + connect(ui_->installBtn, SIGNAL(clicked()), this, SLOT(onInstallNormallyDriver())); connect(ui_->uninstallBtn, SIGNAL(clicked()), this, SLOT(onUninstallDriver())); connect(ui_->writeRegBtn, &QPushButton::clicked, [&] { auto driver = QToWStr(ui_->driverFileEdit->text()); diff --git a/src/OpenArk/kernel/kernel.cpp b/src/OpenArk/kernel/kernel.cpp index e9d2582..853b182 100644 --- a/src/OpenArk/kernel/kernel.cpp +++ b/src/OpenArk/kernel/kernel.cpp @@ -203,36 +203,6 @@ void Kernel::onTabChanged(int index) CommonMainTabObject::onTabChanged(index); } -std::string OsReleaseNumber() -{ - /* - //c++11 - std::map tables = { - { 10240, 1507 }, { 10586, 1511} ,{ 14393, 1607 } ,{ 15063, 1703 } ,{ 16299, 1709 } ,{ 17134, 1803 } , - { 17763, 1809 }, { 18362, 1903 } ,{ 18363, 1909 } ,{ 19041, 2004 }, { 19042, 20H2 } - };*/ - - std::pair pairs[] = { - std::make_pair(10240, "1507"), - std::make_pair(10586, "1511"), - std::make_pair(14393, "1607"), - std::make_pair(15063, "1703"), - std::make_pair(16299, "1709"), - std::make_pair(17134, "1803"), - std::make_pair(17763, "1809"), - std::make_pair(18362, "1903"), - std::make_pair(18363, "1909"), - std::make_pair(19041, "2004"), - std::make_pair(19042, "20H2"), - }; - std::map tables(pairs, pairs+_countof(pairs)); - - DWORD build = UNONE::OsBuildNumber(); - auto it = tables.find(build); - if (it != tables.end()) - return it->second; - return ""; -} void Kernel::InitKernelEntryView() { kerninfo_model_ = new QStandardItemModel; @@ -261,6 +231,7 @@ void Kernel::InitKernelEntryView() GetPerformanceInfo(&perf, sizeof(perf)); double gb = round((double)(perf.PhysicalTotal*perf.PageSize) / 1024 / 1024 / 1024); + AddSummaryUpItem(tr("OperateSystem"), StrToQ(OsWinVersionInfo())); auto major = UNONE::OsMajorVer(); AddSummaryUpItem(tr("MajorVersion"), DWordToDecQ(major)); AddSummaryUpItem(tr("MiniorVersion"), DWordToDecQ(UNONE::OsMinorVer())); @@ -281,7 +252,7 @@ void Kernel::InitKernelEntryView() connect(ui.kernelInfoView, &QTableView::doubleClicked, [&](QModelIndex idx) { QString &txt = idx.data().toString(); if (txt == tr("ReleaseNumber") || txt == tr("BuildNumber")) { - ShellOpenUrl("https://docs.microsoft.com/en-us/windows/release-information/"); + ShellOpenUrl("https://docs.microsoft.com/en-us/windows/release-health/release-information"); } }); diff --git a/src/OpenArk/openark_zh.ts b/src/OpenArk/openark_zh.ts index 1cd4044..ee0f6f4 100644 --- a/src/OpenArk/openark_zh.ts +++ b/src/OpenArk/openark_zh.ts @@ -325,12 +325,14 @@ p, li { white-space: pre-wrap; } - urlencode + URL-Encode + urlencode - urldecode + URL-Decode + urldecode @@ -433,7 +435,7 @@ p, li { white-space: pre-wrap; } 你输入的数据太多(建议小于10KB),反汇编会很慢,是否继续? - + Compile Error: -------------------------------------------------------------- @@ -442,12 +444,12 @@ p, li { white-space: pre-wrap; } - + start nasm error 启动nasm错误 - + start ndisasm error 启动ndisasm错误 @@ -469,12 +471,12 @@ p, li { white-space: pre-wrap; } [内核模式] 连接成功... - + [KernelMode] not initialized... [内核模式] 未初始化... - + Enter KernelMode @@ -500,64 +502,60 @@ p, li { white-space: pre-wrap; } 浏览... - Install Expired Sign && Install - 过期签名安装 + 过期签名安装 - + ServiceName: 服务名: - Sign - 签名 + 签名 - Install Unsigned - 无签名安装 + 无签名安装 - + You can drag driver file to here... 可拖动文件到这里... - + Uninstall 卸载 - + Write Registry 写入注册表 - + Clean Registry 清理注册表 - + WDF Driver Installer WDF驱动安装 - + Wait for sonn... - System Notify SystemNotify - 系统回调 + 系统回调 - + System Hotkey 系统热键 @@ -567,116 +565,115 @@ p, li { white-space: pre-wrap; } 温馨提示:如果上面没获取对应的热键,请检查你输入法的快捷键(比如:微软拼音/搜狗/谷歌输入法等) - + ObjectTypes 对象类型表 - + ObjectSections 内存区对象 - + Path: InputPath: 路径: - + &ShowHold ShowHold 查看占用(&S) - + Local IPV4 本机 IPV4 - + Local IPV6 本机 IPV6 - - + + Filter: 过滤器: - <a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">Virtual-Key Codes</a> <html><head/><body><p><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes"><span style=" text-decoration: underline; color:#0000ff;">Virtual-Key Codes</span></a></p></body></html> - <html><head/><body><p><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes"><span style=" text-decoration: underline; color:#0000ff;">虚拟键码对照表</span></a></p></body></html> + <html><head/><body><p><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes"><span style=" text-decoration: underline; color:#0000ff;">虚拟键码对照表</span></a></p></body></html> - + Kernel Memory 内存管理 - + Kernel Storage 存储管理 - + Kernel Network 网络管理 - + IPV4 - + IPV6 - + TCP Listen TCP监听 - + TCP Connection TCP连接 - + UDP Listen UDP监听 - + Hosts Hosts文件 - + &HostsDirectory 打开Hosts目录(&H) - + &Save 保存(&S) - + &Clear 清空(&C) - + &Backup 备份(&B) - + &Refresh 刷新(&R) @@ -745,7 +742,17 @@ p, li { white-space: pre-wrap; } NT驱动安装 - + + SystemNotify + 系统回调 + + + + <html><head/><body><p><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes"><span style=" text-decoration: underline; color:#0000ff;">Virtual-Key Codes</span></a></p></body></html> + + + + Kernel Object Object Manager 对象管理 @@ -755,7 +762,7 @@ p, li { white-space: pre-wrap; } 内存管理 - + MemoryReadWrite MemoryView 内存读写 @@ -765,7 +772,7 @@ p, li { white-space: pre-wrap; } 文件过滤 - + FileUnlock 文件解锁 @@ -774,19 +781,19 @@ p, li { white-space: pre-wrap; } 选择文件... - + &Kill Process KillProcess 结束进程(&K) - + &Unlock Unlock 解锁(&U) - + Unlock &All Unlock All 解锁全部(&A) @@ -796,21 +803,21 @@ p, li { white-space: pre-wrap; } 网络管理 - + Port 端口 - Install Normally - 正常安装 + 正常安装 + Install - 安装 + 安装 - + Information: 信息: @@ -821,7 +828,7 @@ p, li { white-space: pre-wrap; } - + Name 名称 @@ -831,64 +838,69 @@ p, li { white-space: pre-wrap; } - + + OperateSystem + 操作系统 + + + MajorVersion 主版本号 - + MiniorVersion 副版本号 - - + + ReleaseNumber 发行编号 - - + + BuildNumber 编译号 - + MajorServicePack 主服务包 - + MiniorServicePack 副服务包 - + R3 AddressRange R3地址空间 - + R0 AddressRange R0地址空间 - + Page Size 页面大小 - + Physical Memory 物理内存 - + CPU Count CPU核数 - + SystemRoot 系统根目录 @@ -901,8 +913,8 @@ p, li { white-space: pre-wrap; } 基址 - - + + Path 路径 @@ -911,41 +923,41 @@ p, li { white-space: pre-wrap; } 顺序 - - + + Description 描述 - + Version 版本 - + Company 公司 - - + + Refresh 刷新 - + Copy 复制 - - + + Explore File 定位到文件 - - + + Sendto Scanner 扫描文件 @@ -965,8 +977,8 @@ p, li { white-space: pre-wrap; } [内核模式] 使用(热键/回调/内存)等功能时需要进入内核模式... - - + + Properties... 属性... @@ -979,26 +991,26 @@ p, li { white-space: pre-wrap; } 驱动文件 (*.sys);;所有文件 (*.*) - - + + CreateProcess - - + + CreateThread - - + + LoadImage - - + + CmpCallback @@ -1041,22 +1053,22 @@ p, li { white-space: pre-wrap; } [内核模式] 你需要启用内核模式来安装驱动... - + Callback Entry 回调入口 - + Type 类型 - + Delete Notify 删除回调 - + Disassemble Notify 反汇编回调入口 @@ -1065,37 +1077,37 @@ p, li { white-space: pre-wrap; } 内存读写 - + PID.TID 进程ID.线程ID - + Hotkey 热键 - + HotkeyObject 热键对象地址 - + HotkeyID 热键ID - + HWND 句柄 - + Title 标题 - + ClassName 类名 @@ -1104,12 +1116,12 @@ p, li { white-space: pre-wrap; } 错误 - + Delete Hotkey 删除热键 - + [-] Driver file not existed! [-] 驱动文件不存在! @@ -1187,57 +1199,57 @@ p, li { white-space: pre-wrap; } 驱动文件 (*.sys);;所有文件 (*.*) - + Write registry ok... 写入注册表成功... - + Write registry failed, open console window to view detail... 写入注册表失败,打开控制台窗口查看详情... - + Clean registry ok... 清理注册表成功... - + Clean registry failed, open console window to view detail... 删除注册表失败,打开控制台窗口查看详情... - + Sign ok... 签名成功... - + Sign failed, open console window to view detail... 签名失败,打开控制台窗口查看详情... - + Install ok... 安装成功... - + Install failed, open console window to view detail... 安装失败,打开控制台窗口查看详情... - + Uninstall ok... 卸载成功... - + Uninstall failed, open console window to view detail... 卸载失败,打开控制台窗口查看详情... - + [-] Driver file not existed! [-] 驱动文件不存在! diff --git a/src/OpenArk/res/lang/openark_zh.qm b/src/OpenArk/res/lang/openark_zh.qm index 89e08090366d5bab731bbf1ef3975bd2780b8c16..09274369afad0f993b4f8d495d44e87226574ee6 100644 GIT binary patch delta 4433 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 delta 5113 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%0DEEo&$-q<3PI6+&IZ-x4Iai|;b zgq2#fdjtw!zlTFPZNhg`P0gTmyRc!@W_Vg6Y$`p6Q*OP`@!P5w;Lix6bMIFX^@sxBKCC>G2xkT>?->6cL=AmgJDpC zaND$|3#cm)9_RfXr_&VS`Pl{(obkeIpEjudhVU-)K4M=leE7o`{k3XYqYcE=U(LNO zL8uO@h3EE2uX$>9%^hS>ySj%7G4HWb?NW*C2|1t+iuJVTScHB*M$wh2voui%?-3=nTD56U*5j_rx zIL2DUqVww3!^naxclD`Xf51&BLVeeB2=0X6sDBLv)5S|Pos|YKn`hDtnD!Piw9imAYfcZDhYLX` z&BI%uve!nd)^#^QE6L(Bho88zKXYiYL@_xf_J)v$#S zX{)xUKg8(&Kx>!O4$seMT|Kf;^K(Ru9i?^e4Z~w?w4NJLX9mTKXd0fa_3fyD9@+pk zC?6zf2gNS}Wf!%RZ-P2asJ7xR+R?V!Ph%K(-c$Qo#ZfTyhjyX<5ts|puCGfV^4y?3 zZiR8-5h709qJ3urio0*ZS4p`HHIK8ldq`Zoo4c2%1s^C^(BsF-pohk`qv_4r>&2I)FlX_SxWvX1A1j_*{m#dss> zDU*W8zGH4N6;KiRV~!4^^C=xIcdTf@lM(GA{AFSfceL}-ufyy-a-$M56`?T&1M@m2 zPQlQBx4p;{&*nD;7+8$=dMZUvDf*0Pm%z*%EHWAWWkB=N<}pPu%IruH=A~k`EuM-o zA_wox2HT>gr>XdMqYM)s%@d6nT8xGBF~J{0N;(YEqd%v^1U&_y*E}+(W3)f@q5gk< zGT~c*dDBl5({3(upDIauTR5pY3nu9PGQw<-4tt0wGO439GW~~M-G9RHSM&^lskT{0 zeP)n-R&jAbk-tutk)K}Vo@+=q<`?B>7Q3hC=j!x%ZY4#!DTcg^{3#vi<*75|6_gZb z=u35_24itaYL44veVJQ&eulotK6uQZU8D46wp@t0FHn~n+?3S&d$~#Y{LrM{(<FS-zZsqWJtH#Tn2VWZ z|2>7*-};|zI*ru+xlck~kzrDvKBLLbAxhS?s&A~+LT(=Zmqqe8ykBs~DORbDD=RA2 Q=Pvlju3J-#vtj)I0kcGRbpQYW diff --git a/src/OpenArk/ui/kernel.ui b/src/OpenArk/ui/kernel.ui index 1830c62..eaa77fb 100644 --- a/src/OpenArk/ui/kernel.ui +++ b/src/OpenArk/ui/kernel.ui @@ -38,7 +38,7 @@ QTabWidget::West - 2 + 1 @@ -91,7 +91,7 @@ - 0 + 1 @@ -196,13 +196,6 @@ - - - - Sign - - - @@ -256,26 +249,7 @@ - - - - 0 - 0 - - - - - 100 - 0 - - - - Install Unsigned - - - - - + 0 @@ -289,7 +263,7 @@ - Uninstall + Install @@ -356,26 +330,7 @@ - - - - 0 - 0 - - - - - 100 - 0 - - - - Install Expired - - - - - + 0 @@ -389,7 +344,7 @@ - Install Normally + Uninstall @@ -487,7 +442,7 @@ - System Notify + SystemNotify @@ -504,6 +459,11 @@ + + + 9 + + 5 @@ -530,6 +490,11 @@ + + + 9 + + 5 @@ -571,15 +536,12 @@ - + - <a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">Virtual-Key Codes</a> - - - true + <html><head/><body><p><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes"><span style=" text-decoration: underline; color:#0000ff;">Virtual-Key Codes</span></a></p></body></html> @@ -607,7 +569,7 @@ - 1 + 0 @@ -1047,11 +1009,7 @@ - - - false - - +