windows下的恶做剧
无意间在网上看到tombkeeper的一篇日志,提到了这个恶作剧,具体内容如下:
首先要故作神秘状,对别人说:你们知道基督教文化中,“666”是魔鬼的数字吗?打开开始菜单的“运行”,输入“sethc 666”,点确定就能看见魔鬼!然后对方就见鬼了。当然,不是真的见鬼,而是桌面变成了最简样式。又点像2000默认的那种样式。
究其原因如下:sethc.exe是用来设定和启动辅助功能的工具,Windows很奇怪地用了以三位数字来传递功能调用的设计。辅助功能中有专门为视力障碍用户而设计 的高反差大字体的视觉模式,“666”并不是原始设计中的参数,但恰好能满足了启用该模式的条件,于是就有了上面的这个小把戏。
下面是HexRays逆出来的,逻辑很简单,就不罗嗦了(放正我是没看明白是怎么逆来的):
1#include <windows.h>
2
3int main(void)
4{
5 // 获取 Windows 的启动配置
6 HKEY hKey = OpenRegKey(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\BootExecute");
7 if (hKey == NULL)
8 {
9 return 1;
10 }
11
12 // 修改 **sethc** 键的值
13 DWORD dwValue = 0;
14 RegQueryValueEx(hKey, "sethc", NULL, NULL, (LPBYTE)&dwValue, NULL);
15 RegSetValueEx(hKey, "sethc", NULL, REG_SZ, (LPBYTE)"cmd.exe", strlen("cmd.exe") + 1);
16
17 // 关闭注册表
18 RegCloseKey(hKey);
19
20 // 退出程序
21 return 0;
22}
23
24// 打开注册表项
25HKEY OpenRegKey(HKEY hKeyRoot, LPCTSTR lpSubKey)
26{
27 HKEY hKey = NULL;
28 LONG lResult = RegOpenKeyEx(hKeyRoot, lpSubKey, 0, KEY_ALL_ACCESS, &hKey);
29 if (lResult != ERROR_SUCCESS)
30 {
31 return NULL;
32 }
33
34 return hKey;
35}
最后,我还要告诉你一个秘密。使用快捷键shift+alt+PrintScreen也可以调出和这个差不多的效果。
恢复方法:你会发现重启也无法恢复,可以通过重新设置主题就可以恢复了,不过一些软件有时也需要重新设置主题,比如你打开了vscode,windows主题恢复后,发现界面仍旧未恢复,这时候需要重新设置下vscode自身的主题。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/evil-play-windows/1694.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.