首页
社区
课程
招聘
[讨论]进程冻结,保存磁盘上。在需要的时候恢复进程状态
发表于: 2024-10-11 06:38 3936

[讨论]进程冻结,保存磁盘上。在需要的时候恢复进程状态

2024-10-11 06:38
3936

虚拟机可以把虚拟机当前状态冻结,并且保存在磁盘上。用的时候开机恢复 还能继续工作 环境都还在。
那么不用虚拟机的情况下。能不能把某个进程冻结了?
不知有没有大手子研究过。来讨论一下


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 3
支持
分享
最新回复 (7)
雪    币: 600
活跃值: (1992)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
类似快照的做法
2024-10-11 09:34
1
雪    币: 134
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3

可以让进程冻结休眠,但是无法保存在磁盘上再恢复,除非操作系统支持。

进程完整性不止内存数据和线程信息,更有各种资源句柄,比如原来程序打开了文件,恢复的进程如何才能继承原有文件句柄?所以,无法做到,只能SuspendThread ResumeThread所有线程让进程休眠,无法做到保存文件恢复。


可能的方式是,程序需要一直存在,但可以在休眠的时候压缩内存占用,恢复的时候再从磁盘加载内存,但无法做到进程消失再恢复。


除非写驱动去支持内核资源对接,让程序冻结退出的时候不关闭进程的内核资源,进程恢复的时候改变资源到新进程。



最后于 2024-10-11 09:53 被mb_hgrbqfun编辑 ,原因:
2024-10-11 09:45
2
雪    币: 203
活跃值: (1274)
能力值: ( LV9,RANK:195 )
在线值:
发帖
回帖
粉丝
4
像楼上说的,涉及到资源引用确实不好办。
2024-10-11 17:52
0
雪    币: 129
活跃值: (522)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
确实,如果系统不支持的话很难办。总不能写个虚拟机跑windows吧
2024-11-24 19:30
0
雪    币: 11153
活跃值: (732)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
YiW
6
短时间可以,有公司做这样的东西,用于进程在虚机之间的迁移。冻结不行,最简的一个点,tcp timeout了恢复不了
2024-11-25 07:14
0
雪    币: 71
活跃值: (458)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哈哈哈,那一个收费软件,登陆进去之后,冻结成文件,就可以给别人用啦
2025-1-7 10:17
0
雪    币: 3060
活跃值: (577)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
目前来看,微软也只是在虚拟机层面实现了透明迁移(那群人的 Hyper-V 第二代虚拟机由于 Guest OS 可以淦得比较薄,于是那群人不用担心性能问题)
个人觉得如果不用虚拟化的话,把任务跑在 JVM CLR WASM 这类字节码虚拟机里做这件事会容易很多
但如果既不想用虚拟化也不想把自己的应用搞成字节码版本的,那估计得整 Windows 用户态模拟器了,倒是有个现成的项目可以作为参考:6eaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0L8$3#2G2y4e0f1H3x3W2)9J5c8X3g2E0N6h3I4S2N6r3!0J5

毛利
2025-1-13 19:15
0
游客
登录 | 注册 方可回帖
返回