本来想删除日志文件,但是执行错目录了,把代码删了
.py .pyc 都没了,但是进程还在运行着,求助各位大佬能恢复吗?
1
skydiver 2021-01-06 20:18:37 +08:00
进程开着应该文件还没删吧,可以看看进程打开的文件
|
3
westoy 2021-01-06 20:24:41 +08:00 4
python 转 opcode 之后原文件的 fd 就释放了, 走 proc 路子应该是恢复不了的
得 debugfs + dd 或者用 photorec 之类的程序恢复 |
5
xxxy 2021-01-06 21:49:53 +08:00
能不能把内存 dump 出来再逆向?
|
6
lululau 2021-01-06 21:53:59 +08:00
既然 lsof 没有这个文件,那说的“进程还在”是哪个进程还在?难不成说的是执行这个 Python 脚本的进程还在吗。。。
|
7
fox0001 2021-01-06 22:43:32 +08:00
论版本控制的重要性
|
8
black11black 2021-01-06 22:51:27 +08:00 via Android
大概是 G 了,能这么搞的话操作系统的安全性我觉得非常堪忧,linux 上有无数 py 写的运维软件,如果随便一个什么第三方都能提取。。。只能说以后做好备份。。
|
9
CEBBCAT 2021-01-07 00:54:18 +08:00 via Android
@black11black 为什么不能 dump 出来呢? root 不可以访问内存吗?我觉得你的回复有点无从根据:“…大概率…我觉得…如果随便一个…只能说”,我想你的这个回复除了搅乱思路之外不能起到正面的帮助
https://serverfault.com/questions/173999/dump-a-linux-processs-memory-to-file |
10
CEBBCAT 2021-01-07 00:58:14 +08:00 via Android
@black11black 可能你的出发点是好的,想尽一份自己的力量,看起来你尝试从经验上来回答这个问题,但是好像你没有遇到过相关的问题。
我个人建议另一条方向:去搜索这个问题吧 假如说是自己遇到了这个问题,要如何借助搜索引擎或者书籍的力量呢? |
12
black11black 2021-01-07 04:30:48 +08:00 1
@CEBBCAT 逻辑堪忧啊兄弟,你钻研的精神我挺认可的,但是阅读理解能力和逻辑能力还需要加强。我从来也没说过 root 不能访问内存,也不知道你从哪句看出来的,显然楼主这篇内容是讨论提取源码,也不知道你看到提取两个字以后怎么联想到不能提取内存,想象力很丰富,显然 root 通过调用可以跨进程提取内存。
我的逻辑很简单,linux 中大多数通过 python 完成的运维软件,如果随便拿到 root 就会导致源码泄露,会引起包含但不限于密钥泄露、商业代码泄露等在内的各种问题,而 linux 运行依赖庞杂到靠人脑无法管理的程度,限制全部可信(全部可信意思是不存在恶意风险)是不现实的。既然长久以来未听说过类似新闻,那就是不行。 |
13
irytu 2021-01-07 04:44:40 +08:00 via iPhone
进程地址空间里面存的指令和数据 假设你能 dump 拿到它们 你还得逆向吧?
|
14
iamwho 2021-01-07 05:41:39 +08:00
|
15
black11black 2021-01-07 06:22:44 +08:00
@iamwho 你可能借助开源工具,管理你的核心密钥,以及部署需要保护源码的服务等等。
|
16
Cooky 2021-01-07 07:34:22 +08:00 via Android
赶快把磁盘镜像 dump 出来,用恢复软件找
|
17
xjx0524 OP |
18
lean 2021-01-07 10:10:31 +08:00 via Android
/proc/进程 id/ 下看下里面的文件内容,记得可以恢复,忘记具体哪个文件了
|
19
xjx0524 OP @CEBBCAT
@black11black @Cooky 感谢所有回复的各位提供的思路。 文件删除发生在前天,昨天晚上才发现,机器有多人使用和大量的磁盘读写。 内存 dump 比较浪费精力,可能也确实拿不到源码。 这个教训只能自己接受了。。。 |
20
keepeye 2021-01-07 10:17:02 +08:00
呃呃呃 难道源码只存在服务器上?平时咋开发呢
|
21
Hackerl 2021-01-07 11:03:49 +08:00
内存搜索: grep 'source keyword' /proc/$(pid)/map_files -r
|
22
raaaaaar 2021-01-07 11:08:05 +08:00 via Android
这就是个纠正你开发流程的好机会,好好思考为什么会出现这样的问题,下次再出现怎么办。
而且我也想问,你的代码就只在服务器上吗?难不成你开发都是 ssh 到服务器上么。。 |
24
xjx0524 OP |
25
zhuangjia 2021-01-07 11:33:51 +08:00
学到了:论版本控制的重要性
即便是自己用的脚本,也要做好版本控制 |
26
bbbb 2021-01-07 11:56:48 +08:00 via iPhone
确实版本控制的重要性,有备份就不慌
|
27
xuboying 2021-01-07 12:11:32 +08:00
gcore 那个 python 进程,然后 strings core 文件?
|
29
xuboying 2021-01-08 12:44:16 +08:00
如果出现异常能看到少量信息
|
32
xuboying 2021-01-08 12:45:42 +08:00
|