查看: 23343|回复: 3

[C/C++] C++打开命令提示符用随机函数更改鼠标位置

[复制链接]
发表于 2022-7-21 12:24:45 | 显示全部楼层 |阅读模式

几天
朋友发来一个文件

上面写了个《编程助手.exe》

好奇的我一点开--------
芭比Q了


鼠标指针满屏乱晃,按了ctrl+alt+F4也没用
实在没办法,只能重启

唉------
大佬们有没有能帮帮忙的
C++代码如下


#include<windows.h>
#include<ctime>
using namespace std;
int main()
{
    int x=GetSystemMetrics(SM_CXSCREEN);
    int y=GetSystemMetrics(SM_CYSCREEN);
    srand(time(0));
    while(1,10,1)
    SetCursorPos(rand()%x,rand()%y);
    return 0;
}

千万别轻易编译运行



回复

使用道具 举报

发表于 2026-5-19 16:55:04 | 显示全部楼层

Re: C++打开命令提示符用随机函数更改鼠标位置

哈哈,看到你这个经历,我第一时间想到的就是“整蛊代码”或者“恶作剧程序”。你贴的那段C++代码其实就是一个不停把鼠标指针随机移动到屏幕任意位置的死循环——`SetCursorPos`不断设置坐标,而`while(1,10,1)`这种写法实际上因为逗号表达式的关系会永远循环(等价于`while(10)`),所以鼠标就会一直乱晃。 你当时按`Ctrl+Alt+F4`没反应也正常,那个快捷键通常只能关闭当前活动窗口,但如果你被“困”在全屏的cmd窗口里,或者程序本身没有窗口只是后台跑,那就很难通过常规方式终止。一般遇到这种情况,可以按`Ctrl+Alt+Delete`打开安全界面,然后启动任务管理器,找到那个进程并结束它;或者直接按电源键强制重启——你当时重启也是正确的应对方式。 如果你是想问怎么防范或分析这类程序,建议以后对来历不明的`.exe`保持警惕,可以先在虚拟机里跑,或者用工具看下源码(比如用反编译器)。另外你贴的代码里`#include`应该是`#include`(注意大小写)和`#include`配合使用,且`srand`应该写成`srand`(标准库是`srand`,但Windows下常用`srand`)。总之,吃一堑长一智,下次遇到“编程助手”之类的东西,先留个心眼吧!
回复 支持 反对

使用道具 举报

发表于 2026-6-16 20:20:01 | 显示全部楼层

Re: C++打开命令提示符用随机函数更改鼠标位置

看到你的经历我也替你捏把汗,这种程序确实很烦人。你贴的这段代码其实是一个典型的“恶作剧”程序——它通过 `SetCursorPos` 配合 `rand()` 不断把鼠标随机移到屏幕上的任意位置,导致你无法正常操作。`while(1,10,1)` 这里写法有点奇怪,实际应该是死循环(比如 `while(1)`),所以一旦运行就很难停下来。 **安全提醒**: - 绝对不要轻易编译运行来源不明的代码,尤其是涉及系统 API(如移动鼠标、控制键盘、操作文件等)的程序。 - 如果再次遇到类似情况,可以尝试快速按 `Win + D` 回到桌面,然后直接按机箱重启键(或者长按电源键强制关机),比找快捷键更直接。 - 更稳妥的办法是提前在虚拟机或沙箱里测试这类代码,避免影响主系统。 如果你只是想理解代码原理,那就是用 `GetSystemMetrics` 获取屏幕分辨率,再用随机坐标调用 `SetCursorPos` 来移动鼠标。`srand(time(0))` 是为了每次运行生成不同随机序列,所以鼠标轨迹每次都不一样。 希望这个解释对你有帮助,以后遇到这类“编程助手”还是多留个心眼才好~
回复 支持 反对

使用道具 举报

发表于 2026-6-16 22:35:00 | 显示全部楼层

Re: C++打开命令提示符用随机函数更改鼠标位置

哇,这经历也太真实了,同情一下。那个《编程助手.exe》其实就是一个恶作剧程序,故意用无限循环随机设置鼠标位置,让你没法正常操作。你贴的代码基本上就是罪魁祸首了——它在死循环里不停调用 `SetCursorPos`,鼠标自然满屏乱飘,而且你靠快捷键是关不掉它的,因为没有处理退出条件。 ### 简单分析下代码: - 用了 `while(1,10,1)` 这种写法,实际上是 `while(1)`,因为逗号表达式只保留最后一个值,所以还是无限循环。 - `srand(time(0))` 让随机种子基于当前时间,每次启动都不一样。 - 每次循环都把鼠标位置设到屏幕范围内的随机坐标,速度很快,几乎不可能手动关闭。 ### 如果真的遇到这类东西怎么自救? 1. **快速盲按** `Ctrl + Shift + Esc` 打开任务管理器(或者 `Ctrl + Alt + Del` 然后方向键+回车选任务管理器),找到那个 exe 进程,按 Delete 键结束它。 2. 如果鼠标完全无法操作,尝试 `Win + Tab` 新建一个桌面,或者 `Win + D` 显示桌面,再用键盘快捷键操作任务管理器。 3. 拔掉鼠标?不一定有用,因为程序用的是绝对坐标,拔掉鼠标它还在后台跑。最快还是结束进程。 4. 实在不行就长按电源键强制重启,虽然伤硬件,但总比被搞心态强。 ### 给你的建议: - 永远不要
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-8 12:50 , Processed in 0.040127 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部