利用未文档化API:RtlGetNtVersionNumbers 获取系统版本号
问题一:Windows SDK 8.1版本中的VersionHelper.h文件当中没有IsWindows10ORGreater,所以当你用IsWindows8Point1ORGreater判断出版本信息是Windows8.1以上的版本后,你就无法区分它到底是Win8.1还是Win10.
问题二:使用GetVersionEx这个API配合结构体OSVERSIONINFOEX这个方法获取版本信息,那么Win8以上的系统不论是Win8.1还是Win10都会被判定为主版本号为6,次版本号为2(即Win8的版本号)。
参考:
http://blog.csdn.net/pjl1119/article/details/8556693
和MSDN相关API说明。
那么如何区分Win8.1和Win10?
使用如下未文档化API:
RtlGetNtVersionNumbers。
参考:
http://blog.csdn.net/magictong/article/details/40753519
使用方法如下:
int main()
{
HMODULE hm;
if (hm = LoadLibrary("ntdll.dll"))
{
DWORD i = , j = , p = ;
typedef void (WINAPI *getver)(DWORD*, DWORD*, DWORD*);
getver gv;
gv = (getver)GetProcAddress(hm, "RtlGetNtVersionNumbers");
if (gv)
{
gv(&i, &j, &p);
printf("Major is %d\nMinor is %d\nOptional Build is %d\n", i, j, p); } FreeLibrary(hm);
}
system("pause");
return ;
}
Windows7下返回结果:
aaarticlea/png;base64,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" alt="" />
Windows8.1下返回结果:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQEAAAA9CAIAAAAiQUvIAAAEJElEQVR4nO2cS3qcMBCEuaaPkKvlFFpmkcP4CFn4s8NI6lK1HqCh6/9YYI2ofqAagyE5Pv/80qYt8nbcnoE2bfdu/z3w9/eHNm0BtxcPHEIE5OyBlFJK6eej7EeMa7KXKeLpmwkJiSdReuBrlXhXzOYe0OoXJlUPnLk7wQk8phCxBNIDwBXVj/DgQa9LK67LpfKAQFTvB8AytdZTaZjq/MwD5NK0REA+5eGuiCIQ5D1xcxm5PAA8VqWc6VrNXs+IWDAeYNaQywPeJJmg5OHygMh5Rw9417Q8IBDea6GD80Y6gQcxqaBPqiO0iMLIc2J9v4onMPiuhL5fxduj94VEdFzvC931fT8eV7+vhInrfaE39YDuWwQiwvtCZx5ZlBhi5H0h4BY8/6DXokufQR4QOa73haprmt8//+hawWRcRkQGEDkj98TdHrA8ZtHMhEc2EDm3eMCbpHVUh5o8IHLe0QNAv3m4PCBy+t6dTnpfSDwGPScW0ZEHRHTkARGd0gMTr5vXXX+7ru+tmwryQD7uuP4sQJ7V8WZzso+q80GfvfOtPJeQeeAnKh8eTFtdgyvJZNy+d+jza6VPfxBQbDVisznZcmT2Gf1ZbRxl8P+ZuzTXgeh9HuiIe29DyhxG1uh55EoPXN1D178nrvai7NFRaxwYt0SATpZhk2rrwfnwxgUlgHy89XYAaiyDlnOs8Sn6fHvX4no+gPdLJgpWx/lmpVfIuGQyfEPm6qQaTX0w05vPFH1+fBWbewC3g+9RNUSzEEufrMuVVcfhI+KgIdm4dQpwqoy+K7eF7OyBZiC+QeCUdOiTdbmyYsZ5muV4TygouZmAV7+7n52QfxdqpsisIe85aPaCb1AzZ5c+WZcrqxEdIDulzxM1Z+UzE/L5QHql+hGYn5WUzQc1nydbOs02gcle/eZ4WYIrJbKiPnGgj+Nmn07U78tnMuRz4ouyEeJ6GA9cakohLkbvC4no4H9Tf3d2awlSJk/Qblh/FzpidOSCGnfrIcgnwhmvIA8srXG3Hu6WzxYwHjhfM2RNtC6cvOMW1fnplXJ+uY/1rf1B/VSA6yKlmuNMUCYfPLnaBG9dW1D1ACj7/JHVC+8+A6njDeGqZUSfqYURGewzDkcW2xF3a8DvgTPpm6NYN2ey+ZYOn15VnzzHTCyQfLMuXh8MdosAHbI/zUBefdC3rXF5gBlkJpANGjzHruVFHtitP10E6JD9aQby6jO17MgsD6zoV59OOoH1LakV+lf2AehX86kGmhu3WR05ecl86/lAVcXqGn8IkGoWUO4cdq+ZEFkm5T4Q6SuhHPSKMDq4P00dps94Gl+Xlc+l8x/5nNjVow31xaU8yQMdX0Jb6Yt7eJIHhOhBHhDRkQdEdOQBER15QERHHhDRkQdEdOQBER15QERHHhDB+QdfEGVmvdevRgAAAABJRU5ErkJggg==" alt="" />
Windows10下返回结果:
aaarticlea/png;base64,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" alt="" />
这样我们即使不是用WindowsSDK10,也能区分开Win8.1和Win10了。
其他方法:
http://blog.csdn.net/k1988/article/details/47614529
其中这篇文章分析了很多方法:
http://blog.csdn.net/magictong/article/details/40753519
利用未文档化API:RtlGetNtVersionNumbers 获取系统版本号的更多相关文章
- 利用未文档化API:RtlAdjustPrivilege 提权实现自动关机
这里主要是利用NTDLL.dll中未文档化的API: RtlAdjustPrivilege 来实现提权.自动关机的功能. RtlAdjustPrivilege定义如下: NTSTATUS RtlAdj ...
- NTDLL未文档化函数RtlGetNtVersionNumbers获取操作系统版本
作为新手,对获取操作系统版本号好奇过,因为曾经假象过一个场景:自己的程序在windows xp环境下编译,在windows 2003, windows 7,windows 8是否需要提权或者兼容处理, ...
- 使用 Swagger 文档化和定义 RESTful API
大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API——REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...
- 使用.NET 6开发TodoList应用(27)——实现API的Swagger文档化
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在日常开发中,我们需要给前端提供文档化的API接口定义,甚至需要模拟架设一个fake服务用来调试接口字段.或者对于后端开发人员 ...
- 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码
在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...
- Effective Java 第三版——74. 文档化每个方法抛出的所有异常
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- sphinx-python文档化
概述 下文讲述使用sphinx自动生成reStructuredText python API文档的简单过程. 配置流程 安装依赖 $ pip install sphinx blurb python-d ...
- 在线文档转换API word,excel,ppt等在线文件转pdf、png
在线文档转换API提供word,excel,ppt等在线文件转pdf.png等,文档:https://www.juhe.cn/docs/api/id/259 接口地址:http://v.juhe.cn ...
- tbls ci 友好的数据库文档化工具
tbls 是用golang 编写的数据库文档化工具,当前支持的数据库有pg.mysql.bigquery 此工具同时提供了变更对比.lint 校验,生成是markdown格式的 简单使用 安装 mac ...
随机推荐
- 关于解决“No matching provisioning profiles found”问题-ios
xcode7之后真机调试就可以不需要调试证书了,但其中也会遇到一些问题令人挠头搔耳.记录下来是给自己提供方便,也为初遇到此问题的人提供解答,利人利己的事情我做! 上图: 图一 本人有一种视警号为e ...
- UIAlertAction 弹出对话框9.0后有点变化
ios 9.0后再用以前的UIAlertAction 已经不行了 被弃用了 改用这种方法了 UIAlertController *alertController = [UIAlertControlle ...
- ORA-39070
背景介绍: 项目以前建立的库,表空间文件文件比较多,问了一下dba,了解到表空间建立很多没有带来优惠(都在一块磁盘上),效率也不会提高:现在要进行新库的迁移(目前使用的是asm磁盘组rac集群),正好 ...
- MySQL Administrator的简单操作
A.创建数据库 1.运行MySQL Administrator服务器,如下图. 2.点击"Catalogs",下面出现已有的数据库,右击已有的数据库,选择“Create New S ...
- Python 常见的内置模块
datetime datetime是python处理日期和时间的标准库 获取当前日期和时间 我们先看看如何获取当前的日期和时间: >>> from datetime import d ...
- 为Android系统的Application Frameworks层增加硬件访问服务
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行.今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两 个系统上有着丰富多彩的各种应用软件.因此,软件和硬件的关 ...
- 轻松学会文本处理工具之二 linux sed命令
sed命令的语法格式: sed的命令格式: sed [option] 'sed command'filename sed的脚本格式:sed [option] -f 'sed script'fil ...
- kloxo面板教程-折腾了一天
------------------------------------------------------------------------------- 前一晚安装了掉线,不得不重新来,有点慢, ...
- Chapter 2 Open Book——1
The next day was better… and worse. 明天会更好也会更坏. It was better because it wasn't raining yet, though t ...
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world ...