V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fdghjk
V2EX  ›  Windows

怎么阻止 Windows 关机?或者拦截关机指令?

  •  
  •   fdghjk · 115 天前 · 4635 次点击
    这是一个创建于 115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近买了一台移动云电脑挂机用,但是有个限制,24 小时就会自动关机。

    除非你用移动他们家的客户端连接一次,就不会关机,每次连接一次之后,时间就会重置到 24 小时,也就是每天都要连一次,很麻烦!!!

    我本来想用自己挂自己,也就是在云电脑里面装个移动客户端,自己连接自己,就一直挂着,但是移动他们的软件做的垃圾的一笔,又大又卡的要死,严重影响性能,而且这样不够优雅。而且我实际测试,两三天之后移动云电脑的软件会自动掉线,要你重新登录

    现在想到 2 个方案:

    1.在 Windows 系统中拦截关机指令,只要接到关机命令就抛弃(俺不会)

    2.抓移动云电脑 app 的登录接口,定时访问一次(俺也不会)


    大佬们有没有好的方案或者折腾过的 能直接用的最好 谢谢!!!

    59 条回复    2024-01-09 19:24:59 +08:00
    goodryb
        1
    goodryb  
       115 天前
    云电脑你在 guestos (也就是你登录的这个系统)里面拦截没啥用,所以方案 1 基本可以放弃

    客户端看看有么有手机版的,随时连一下也方便
    haimall
        2
    haimall  
       115 天前
    你俩都不会,只能手动连了。
    cat9life
        3
    cat9life  
       115 天前
    方案 2 ,抓包看一下他家客户端有啥特征
    fdghjk
        4
    fdghjk  
    OP
       115 天前
    @goodryb 我重装系统了 现在我是管理员 这样可以吧
    mrl1996
        5
    mrl1996  
       115 天前
    lz ,你的是贵州 11 元/月的吗
    fdghjk
        6
    fdghjk  
    OP
       115 天前
    @fdghjk 我重装成了 win11 目前用向日葵链接了,官方客户端无法操控鼠标,因为系统里面没有那个官方自带的软件了,但是貌似它还是会强制关机,挺烦的就
    fdghjk
        7
    fdghjk  
    OP
       115 天前
    @mrl1996
    Tumblr
        8
    Tumblr  
       115 天前
    看上去这个关机的行为是 host 层面的,而不是 guest 层面的,所以你折腾 VM 意义不太大。
    要么用 API 去触发重置(但是你不会),要么用他们家的客户端每天连接一次(目前看来可行性最大)。
    mrl1996
        9
    mrl1996  
       115 天前
    @fdghjk 你试试在 os 安一个他家的客户端,长期链接,然后你要用的话在用向日葵链接
    goodryb
        10
    goodryb  
       115 天前
    @fdghjk #4 就像你在电脑上面装了个虚拟机,虚拟机里面安装了一个 windows , 你现在使用的就是虚拟机里面的 windows , 不管虚拟机的系统里怎么设置, 虚拟机外面都是可以强制重启或者关闭这个 windows 。
    yolee599
        11
    yolee599  
       115 天前
    你买的不是裸金属主机吧,大概率是一个虚拟机,虚拟机的关机相当于直接拔插头,你做什么都没用
    flyqie
        12
    flyqie  
       115 天前 via Android
    一个正常的开发都不会把休眠做在 guest ,host 做休眠是基本操作。
    drymonfidelia
        13
    drymonfidelia  
       115 天前
    @goodryb
    @Tumblr 是软关机,闲鱼有卖移动云专用禁止关机驱动程序,安装上就不会关机了
    csdreamdong
        14
    csdreamdong  
       115 天前
    第一个太难了。无解啊。
    相当于人家要拔你电源线。。你拦不住啊。
    laminux29
        15
    laminux29  
       115 天前
    移动云电脑 24 小时会关机,这是设计 bug ,要不提工单要他们解决,要不就退款换一家,没必要自己去和他们搞技术对抗。电信也有云电脑,淘宝上的便宜挂机云电脑就更多了。
    fdghjk
        16
    fdghjk  
    OP
       115 天前
    @laminux29 关键是他家便宜呀 不然我换其他的了 他家一百一年 8c16g 还送你 1300g 硬盘
    0312birdzhang
        17
    0312birdzhang  
       115 天前
    把关机.exe 删了( doge
    0o0O0o0O0o
        18
    0o0O0o0O0o  
       115 天前 via iPhone
    如果登录不需要二次验证,用那些自动化脚本写个小工具,定时在云电脑里面登录它的客户端,应该可以吧?我感觉比你想到的第一种方案靠谱,比第二种方案简单。
    fdghjk
        19
    fdghjk  
    OP
       115 天前
    @0o0O0o0O0o 不想用移动的 app 做的跟狗屎一样 真的
    Puteulanus
        20
    Puteulanus  
       115 天前
    @fdghjk 官网没找到这么便宜的,有链接吗,还是活动机型
    0o0O0o0O0o
        21
    0o0O0o0O0o  
       115 天前 via iPhone
    @fdghjk #19 自动化,连完就关,还跑在云电脑自身里面,你又不知道啊
    0o0O0o0O0o
        22
    0o0O0o0O0o  
       115 天前 via iPhone   ❤️ 1
    @Puteulanus #20 闲鱼能搜到
    fdghjk
        23
    fdghjk  
    OP
       115 天前
    @drymonfidelia 大佬 哪有卖 发一下
    fdghjk
        24
    fdghjk  
    OP
       115 天前
    @goodryb #1
    @cat9life
    @Tumblr
    @yolee599
    @flyqie
    @csdreamdong
    @0312birdzhang
    @0o0O0o0O0o #18
    @Puteulanus
    @0o0O0o0O0o #22


    @haimall
    @drymonfidelia

    大佬们 看一下 这个是什么原理

    [闲鱼] https://m.tb.cn/h.5Nm5qZZ?tk=JIinWgVmgho CZ0001 「快来捡漏 [移动云云电脑永不关机软件] 」
    点击链接直接打开
    fdghjk
        25
    fdghjk  
    OP
       115 天前
    大佬们 看一下 这个是什么原理

    [闲鱼] https://m.tb.cn/h.5Nm5qZZ?tk=JIinWgVmgho CZ0001 「快来捡漏 [移动云云电脑永不关机软件] 」
    点击链接直接打开

    ----

    @goodryb #1
    @cat9life
    @Tumblr
    @yolee599
    @flyqie
    @csdreamdong
    @0312birdzhang
    @0o0O0o0O0o #18
    @Puteulanus
    @0o0O0o0O0o #22


    @haimall
    @drymonfidelia
    aogg
        26
    aogg  
       115 天前
    移动云电脑

    啥来的,链接发下,用的人多了就有方案了
    drymonfidelia
        27
    drymonfidelia  
       115 天前
    @fdghjk 我买过一个研究过了,是做了个驱动拦截
    flyqie
        28
    flyqie  
       115 天前 via Android
    @drymonfidelia #27

    没有几次休眠失败之后强关的逻辑吗。。
    lujiaxing
        29
    lujiaxing  
       115 天前
    隔 0.5 秒执行一次 shutdown -a
    fdghjk
        30
    fdghjk  
    OP
       115 天前
    @aogg 咸鱼搜索 移动云电脑
    fdghjk
        31
    fdghjk  
    OP
       115 天前
    @drymonfidelia #27 把官方的那个自带的驱动修改了吗
    fdghjk
        32
    fdghjk  
    OP
       115 天前
    @lujiaxing 卧槽 这个思路有点牛逼奥
    fdghjk
        33
    fdghjk  
    OP
       115 天前
    @lujiaxing 会浪费性能吗 这样搞
    drymonfidelia
        34
    drymonfidelia  
       115 天前
    @lujiaxing 你这种没用 shutdown -a 只能取消 shutdown 计划的延时关机 你 1 秒执行 1000 次都拦截不了关机
    @fdghjk 是写了个驱动拦截 host 发的关机事件(类似按一下电源键) 不是改移动云的驱动
    @flyqie 没有
    wk333
        35
    wk333  
       115 天前
    @fdghjk #16 这么便宜
    cheng6563
        36
    cheng6563  
       115 天前
    以前去网吧白嫖就是开个阻止关机然后把万象干掉
    0o0O0o0O0o
        37
    0o0O0o0O0o  
       115 天前
    https://www.google.com/search?q=%E7%A7%BB%E5%8A%A8%E4%BA%91%E7%94%B5%E8%84%91+dd

    看搜索到的结果,有些款可以用 https://github.com/bin456789/reinstall 这些脚本 dd 成 Linux ,再安装自己喜欢的发行版,然后用 zerotier 等工具组网或者内网穿透。按照 #34 说的既然没有强制关机的逻辑,那这种就会一直在线,而且作为服务器 Linux 比 Windows 也更实用
    fdghjk
        38
    fdghjk  
    OP
       115 天前
    @0o0O0o0O0o #37 试了依旧会关机
    cheng6563
        39
    cheng6563  
       115 天前
    @goodryb 虚拟机为了防止丢失数据,一般也会等待操作系统响应关机后才“断电的”。除非真的设置了强制断电。
    nothingistrue
        40
    nothingistrue  
       115 天前
    放弃吧,用别人的东西要遵守别人的规则,尤其是现在这种规则是完全技术上可以支撑的情况下。
    0o0O0o0O0o
        41
    0o0O0o0O0o  
       115 天前
    @fdghjk #38 你确定是 dd 不是套娃么?要是 dd 成 Linux 都会关机,那我觉得 #34 的方案对你也无效,#29 的就更不可能了。那还是逆向它的接口或者试试 #18
    nothingistrue
        42
    nothingistrue  
       115 天前
    @cheng6563 #39 虚拟机关机有两种选择,一种是「关机」,是发送关机信号交给虚拟机操作系统去处理关机,一种是「强制关机」,对应的就是强制断电。
    balabalabiubiu
        43
    balabalabiubiu  
       115 天前
    主动重启系统,会不会重置 24 小时的限制呢
    haikea
        44
    haikea  
       115 天前
    方案 3:写个自动控制鼠标键盘的脚本,定时自动点击登录,这个目测最简单!
    flyqie
        45
    flyqie  
       115 天前 via Android
    @0o0O0o0O0o #41

    你这就有点扯了。。

    dd 是能干掉 guest 自己关自己或者发消息让 host 关自己

    驱动做拦截是干掉发过来的关机信号,防止 host 主动发信号关机。

    如果移动在发信号关机失败后选择断电这种关机模式,那么只能通过逆向出移动相关休眠逻辑才能搞定。
    flyqie
        46
    flyqie  
       115 天前 via Android
    @flyqie #45

    最后逆向逻辑指的是客户端
    0o0O0o0O0o
        47
    0o0O0o0O0o  
       115 天前
    @flyqie #45

    > 如果移动在发信号关机失败后选择断电这种关机模式,那么只能通过逆向出移动相关休眠逻辑才能搞定

    1. 移动云电脑的机制就是 24 小时没用客户端登录就关机,所以我也说要么 `逆向它的接口` 要么降低点难度写点自动化脚本在移动云电脑里跑个客户端自动化一下

    2. 注意 #34 ,他说他拦截了关机事件就可行,说明市面上确实存在一些款(移动云电脑不同的地区型号不同,嵌套虚拟化支持据说都不同,自然不排除也有不同的策略)不强制关机,要是 OP 也是这种款,dd 一下不当然也可行么?
    flyqie
        48
    flyqie  
       115 天前 via Android
    @0o0O0o0O0o #47

    我以上回复针对的是你`@fdghjk #38 你确定是 dd 不是套娃么?要是 dd 成 Linux 都会关机,那我觉得 #34 的方案对你也无效,#29 的就更不可能了。`,你就再怎么 dd 也防不了移动从 host 主动发 soft shutdown 啊。。

    你 dd 成 linux 默认也会遵循 soft shutdown 啊,除非你自己改过。
    leoSup
        49
    leoSup  
       115 天前
    @fdghjk 还能购买这个套餐吗?
    0o0O0o0O0o
        50
    0o0O0o0O0o  
       115 天前
    @flyqie #48 明白你意思了,抱歉。

    linux 上滤掉关机指令比起 #34 的写 windows 驱动太容易,我默认 OP 搜索尝试过了,所以 #41 第一反应是想 OP 是不是套娃了个 Linux VM 所以没成功
    YaakovZiv
        51
    YaakovZiv  
       114 天前
    方案一我认为无法实现,云主机的关机有两种,一个是下发系统关机指令,一个是云主机快照并断电下线。第一种目前基本没见到有用,第二种我接受运维的部分城市的云平台就是这么玩。特别是和计费挂钩的。省移动来一封邮件就能立马给停,管你是什么单位。
    laminux29
        52
    laminux29  
       114 天前
    @fdghjk

    便宜是优势,问题是 24 小时就关机,相当于可用性极差。

    优劣权衡后,还不如去买贵的稳定的。

    服务器、软件、服务等等,稳定才是第一。
    ihciah
        53
    ihciah  
       114 天前 via iPad
    TLDR:guest 不可能拦截正确实现的 host 关机指令的。

    你所设想的拦截关机指令,事实上是通过虚拟 ACPI 设备起作用的,如果是 linux ,只要干掉相应的驱动即可。但这个只是 graceful shutdown ,类似 kill 一个进程时向其发送信号(对于大多数信号,进程可以注册处理函数拦截并作 noop 处理)。
    正确的实现应当有超时强杀机制,相当于断电。
    fdghjk
        54
    fdghjk  
    OP
       114 天前
    @drymonfidelia #27 大佬 这个驱动能不能分享 能破解吗
    1una0bserver
        55
    1una0bserver  
       113 天前 via Android
    别把国企的程序员想得太专业,先开启下 Windows 的关机原因日志看看是什么原因再说。还有看看是什么虚拟化方案,我记得 qemu 的 host 关机 fallback 就是模拟 acpi 的按电源键 )
    shum02
        56
    shum02  
       112 天前
    遇到了一样的问题,有解决了戳戳我,我看也不是 24 小时,而且这玩意他 down 之后你重新连接貌似会给你换台电脑,只是给你的硬盘挂载过去了
    fdghjk
        57
    fdghjk  
    OP
       112 天前
    @1una0bserver 确实垃圾 软件做的跟屎一样 真特么的难用
    drymonfidelia
        58
    drymonfidelia  
       110 天前
    @fdghjk 隔壁论坛有人弄到了源码 base64 aHR0cHM6Ly9ob3N0bG9jLmNvbS90aHJlYWQtMTI1NDE1NC0xLTIuaHRtbA== 去掉空格
    cumcm2008
        59
    cumcm2008  
       97 天前
    建议你把帖子发到“云计算”板块,更多人能加入讨论,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3544 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:28 · PVG 19:28 · LAX 04:28 · JFK 07:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.