利用未文档化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,iVBORw0KGgoAAAANSUhEUgAAAREAAABJCAIAAACVXIX3AAAHFElEQVR4nO2dy4GrMAxFXUZ6oBVKoYusKIQ+0kXKeW/Bz5IlWzJ4Qsg9qxkCwji6tgwSCY/n+x8AwEyAZgBwER7PdwAA2IFmAPABzQDg46Bm+vH1eo39Wa0hdMP0ek1D18Q4ALU8nu/Z8zfndLnqN2imGyahkf34WoAsgYvH8x26YZqmaXEd8s/XM48Gw8g0Ew0S3TA1Uz24JatmhmGchi6EbhiHfog0s4/Hu2fNI3e6nX20b++GaRq67bOiIncr3JvJqUuu3g3T2C/XEO/bj3ETumHCXAPsbJrp+nEaum4YZ9+eXWx1uhBYALex7xuY98X/LJ4+/2v2UWJb2WKCaSb+d9UgZhpg5fF8r8NuP07jOA6d5pl0dF6I9+XH7QdQmYiGBGTNVLh3qpl91pviMQKAMotm1hBmic82H2JRWF4zXAtkvqrwSvEoPWzTEeaZF7vrAc0AK7FmNtYNhunBPs+cpJn4Q6tNphl2KNYzwMXj+U5dc3X22Nf6sTjPUO+L1z8NNOOxye8BkLYlHwKQJasZ+hSD3E5bEeYWIZBzaoZFhC85UjTMDVFr9Ft/EAxwcTR3xrqeB+AuHNMMHgiC36NGM/JzSwB+A+Q1A+ADmgHABzQDgA+DZj5Vx4L6GXBJDPUz360Z1MmAk7l3/QzqZMD55OtnlITI+bH+NoInk9JV6mdQJwMakK+fmUkyX2bHTfMvL1Y/gzoZ0AJL/YyomX3DNppfrX4GdTKgBYX6mRCCXTNXq59BnQxoQbZ+ZuGceebv62dQJwNaUKgFCCHYNXO9+hnUyYDzyWomV8ciaSZcrX4GdTLgfJA7A4APaAYAH9AMAD6gGQB8QDMA+IBmAPDRQDMNawdqXqJZdxLaftN5PSlBeLj6xayacb8XQ/eQ5j5hftpT8TwnZNpfOO8lNJMpF9p7I/oofgOccgTZLNvXX1FcbE/aoWI7r8Tj+WZJJsYUkw++2MylGZLYfGx2OkkzDdmTnti3KF+9moe+bRjHkSlAtN9Jr4vMtUf5XaDvqHJa8s3k/DK5TiZ5Sp9m3OfrXsjLLJU6HPF3b3j7SiQvxi3lMeRjMPG85FWdJc2cVBdkgecxSU2jXzy9vOV4dSDgerNcetTNa1Jw8k7gTw87Biy5M3tuMh0ptMsT89Ok8Uyrw9k6dTmRsLqommfkl7EnV6LZFzvqFTfU9oUfrQsywd61PQ/qXNlRmEi7efuS1Isil27QjJTuJ/6WltTOa/F4vtOrUYoCeGKZVTNqvnPBd7XtlesZbUSt10zPA5cjmjlVNFQB9FdP5V8WUTLSMzMUD/1yri7/4JegGb2d16E4z5ygGbWuRvddfVEp2FdJYjOxNKFaM7nuMTcr3miPzLKhXHKTgbWMvcJ+Ppz+mY3q8jcx5LjAEBtm2nktojrNje1S0gi3PCskO1bMMzQMPDbPSO1vohnjvZNS+49OOZKDpjPLNiSyyWKu1+XLVb4GzV9nukrS9pfmmZpB6I9J39XE3tWiTZUZF8mvZzT7bPiLYvHT55noBMLtVHtsFpmcHe0EzRxb28gxUFLLFDWaRnDSLQ429Bcukmo+v790D0Bq58VYn8+IdS/aeiD5VKxvIYeo9uXxPr6tL70GxxbG0P3lBwpj3xXt6+fdPsndYlLao9mvd5R0hkgbmnmwooRPbF0k2NesqO1JPii181Jk8wAa3M4B4NuBZgDwAc0A4AN5zQD4gGYA8AHNAODjNzVz1adlH6H8lBIQ9loA4Wb5bfkDzVxNlh+sd7obm2bIo9u7ywaaAfWkmmHJjJPyuzFKAZ6WPOiuD5HqZ+Z2JvU2St5U3jgtmZGedUvVCxb7ydP+JP3KNZ+LGRSyHbl/Mu1REkOVfs7m6Sn+cEeKmtl7gSUqxQlhcmHKjvdBTyfXzxD/jmwSL7acixQIsbx44brc9oM8rid2iu4l52tpdrT+0doTmUs0o/WzqBnNH+6JHJvJI/jWSbT/WadKHXYoWZfmO6v5abKrZEz2SaPU6/LaT2wlBpVdykZydgrzgEszWr65klOr9NstEe4BsIgqvXxhspfyOoWyKnNIwk5RrnuJZg5DbLAGEkKdh3JdPvu8dfKmonMpO1TUIzXVTNYfbogQm0UYvzSJI1OOMr0ZfMLo0v36y27Z2izhELNkTplnlPDt4vPM7anSjClmPbC20epncj4xO9g0maICOkQWSkgq7AfZ38m2cimKOsBodnL9k1k+mTWj1h1VrWHmyd5+WOv9zdRpRgnntDoQf32IXj+jasazaIoPnRuX3klKOty7KItMFeqIjFaU0hTaz4X+yXxfdLtsJ46wyZyb6TeNq2jmpaAecKM8gNZrz9uvbX+U39WM6dbthe2DT/GLmlnDglZzQGv74LP8omYA+FOgGQB8QDMA+IBmAPABzQDgA5oBwAc0A4CL//P3BEhbfI75AAAAAElFTkSuQmCC" 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 ...
随机推荐
- ubuntu下的ssh工具gstm
(转自:http://www.nenew.net/ubuntu-ssh-gstm.html) 首先安装: sudo apt-get install gstm 就可以安装,当然你也可以到http://s ...
- 行列转换之静态、动态、PIVOT方法
/* 标题:普通行列转换(version 2.0) 作者:爱新觉罗.毓华 时间:2008-03-09 地点:广东深圳 说明:普通行列转换(version 1.0)仅针对sql server 2000 ...
- css3动画 9步
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- IE8“开发人员工具”使用详解上(各级菜单详解)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各 ...
- java中replace()和replaceAll()区别
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharS ...
- javaweb学习总结——Filter高级开发
在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...
- scala map
map 返回元组 下面是如果不存在key 报错 a.(2) 下面两种方式 不同的写法. 如果存在 Some(2) 不存在 None a get 2 a.get(2) getOrElse 如果不存在 回 ...
- 理解 php 中& 引用
php中引用&的真正理解-变量引用.函数引用.对象引用 php的引用(就是在变量或者函数.对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没 ...
- git分支--branch
分支创建: $ git branch testing 显示分支: $ git branch iss53 * master testing 如果需要查看每一个分支的最后一次提交 $ git branch ...
- CSU 1004并查集
试题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1004 题目分析: 讲述的主要是是否可以通过公交直接到达自己的目的地,如果最后将问题转换为 ...