此代码如何用于检测 XP 操作系统
how does this code work for detecting XP OS?
int _tmain(int argc, _TCHAR* argv[])
{
UINT *ptr = (UINT*) ((((UINT)&ptr) & 0x00FF0000) | 0xfe0c);
if (*ptr) printf("higher than XPn"); // It's really amazing!!!!
else printf("XPn");
return 0;
}
我在下面的文章中发现了这个技巧:
http://spareclockcycles.org/2012/02/14/stack-necromancy-defeating-debuggers-by-raising-the-dead/
但是我不知道这个把戏背后的常识和惯例是什么。感谢您的任何评论。
我不
明白背景,但它设置了一个指向从堆栈指针计算的地址的指针(在0xFE0C处(。然后读取此地址处的值,该值为零 (XP( 或非零 (不是 XP(。
我非常怀疑这是确定这一点的可靠方法。确定 Windows 版本的正确方法是使用[GetVersion][1]
相关文章:
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- 检测 COFF 对象文件中C++内联符号
- qmake:检测目标位宽(32 位或 64 位)
- 检测本地化的 Windows XP 安装的系统语言
- 是否可以以编程方式检测 Windows XP 上特定以太网接口上的 IP 地址更改?
- 此代码如何用于检测 XP 操作系统
- 如何检测库是否使用XP兼容性(v120_xp)
- 在windows xp下检测刷新操作