首页
社区
课程
招聘
[旧帖] 360粉碎机疑问 0.00雪花
发表于: 2011-6-21 20:57 10461

[旧帖] 360粉碎机疑问 0.00雪花

2011-6-21 20:57
10461
发现一个问题,用360粉碎文件功能粉碎文件后,文件确实被删除了,但是进程却还存在,而且进程一样可以正常工作,为什么呢?是不是文件运行了就将自己全部放入内存?这样文件被删除了一样可以工作?但是如果文件很大呢,也要全部进入内存么?应该不是这样吧?求解谢谢了
,同时,文件被360粉碎后,因为进程还存在而且还正常工作,那么该如何恢复自己呢?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (22)
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
首先 我怀疑360 能粉粹 正在执行的程序的 源文件(没安360,无法测试)
文件执行被 载入 内存,也只是部分数据,不是全部数据载入内存,所以无法全部还原,
如果想还原,可以去研究哈 进程内核对象
2011-6-21 22:29
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
正在执行的程序不可以被删改移动的吧??

执行程序确实是把硬盘上的程序完全加载到内存(EXE)
2011-6-23 21:14
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
哈哈,先放内存,然后删除硬盘文件,然后你重启后,内存也释放了
2011-6-24 00:39
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
5
研究下360粉碎机
2011-6-24 10:09
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
习惯用XueTr
2011-6-24 10:32
0
雪    币: 94
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你从移动介质中运行一个应用程序,然后直接拔出移动介质,程序仍然是运行的
2011-6-24 10:32
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是啊,运行中的程序应该是删不掉的,在优盘的运行的程序,然后又把优盘拔掉,也确实可以,那是属于被硬件被物理移除了,和删除不一样
2011-6-24 10:38
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
重启之后进程应该就没了
2011-6-24 21:06
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个是强制拔插,和删除不同

程序要运行肯定会加载到内存,拔掉移动介质后,加载到内存的部分可以正常运行,但是没有加载的DLL就无法运行
2011-6-24 21:19
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
你先把进程结束了   在粉碎试试
2011-7-24 08:06
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
应该是把进程需求的数据和资源放入内存,然后清除,重启系统或注销后,彻底清除。
2011-7-24 20:28
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
是释放在内存中的 硬盘中的其实已经删除
2011-7-25 14:29
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
可以看看文件自删除的东西

下面的这个
http://www.pediy.com/bbshtml/BBS4/kanxue381.htm

标 题:一篇在程序还未结束运行时就能把自身删除的文章(2千字)
发信人:WinDos2K
时 间:2002-2-7 16:02:05
详细信息:

下面的代码由Gary Nebbett写就.Gary Nebbett乃是WINDOWS NT/2000 NATIVE API REFERENCE的作者.乃NT系统一等一的高手.下面就分析一些他的这段代码.
这段代码在PROCESS没有结束前就将启动PROCESS的EXE文件删除了.
int main(int argc, char *argv[])
{
    HMODULE module = GetModuleHandle(0);
    CHAR buf[MAX_PATH];
    GetModuleFileName(module, buf, sizeof buf);
    CloseHandle(HANDLE(4));
    __asm {
        lea    eax, buf
        push    0
        push    0
        push    eax
        push    ExitProcess
        push    module
        push    DeleteFile
        push    UnmapViewOfFile
        ret
    }
    return 0;
}
现在,我们先看一下堆栈中的东西

偏移 内容
24  0
20  0
16  offset buf
12  address of ExitProcess
8    module
4    address of DeleteFile
0    address of UnmapViewOfFile

调用RET返回到了UnmapViewOfFile,也就是栈里的偏移0所指的地方.当进入UnmapViewOfFile的流程时,栈里见到的是返回地址DeleteFile和HMODUL module.也就是说调用完毕后返回到了DeleteFile的入口地址.当返回到DeleteFile时,看到了ExitProcess的地址,也就是返回地址.和参数EAX,而EAX则是buffer.buffer存的是EXE的文件名.由GetModuleFileName(module, buf, sizeof buf)返回得到.执行了DeleteFile后,就返回到了ExitProcess的函数入口.并且参数为0而返回地址也是0.0是个非法地址.如果返回到地址0则会出错.而调用ExitProcess则应该不会返回.
这段代码的精妙之处在于:
1.如果有文件的HANDLE打开,文件删除就会失败,所以,CloseHandle(HANDLE(4));是十分巧妙的一手.HANDLE4是OS的硬编码,对应于EXE的IMAGE.在缺省情况下,OS假定没有任何调用会关闭IMAGE SECTION的HANDLE,而现在,该HANDLE被关闭了.删除文件就解除了文件对应的一个句柄.
2.由于UnmapViewOfFile解除了另外一个对应IMAGE的HANDLE,而且解除了IMAGE在内存的映射.所以,后面的任何代码都不可以引用IMAGE映射地址内的任何代码.否则就OS会报错.而现在的代码在UnmapViewOfFile后则刚好没有引用到任何IMAGE内的代码.
3.在ExitProcess之前,EXE文件就被删除了.也就是说,进程尚在,而主线程所在的EXE文件已经没了.(WINNT/9X都保护这些被映射到内存的WIN32 IMAGE不被删除.)

Gary Nebbett果然是WIN系列平台的顶尖高手之一.能写出如此代码.独辟蹊径啊:)
2011-7-25 14:38
0
雪    币: 156
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是因为程序运行时需要页面文件吧,被映射到了C盘页面文件?建议看看操作系统相关的资料,也许有用。
http://baike.baidu.com/view/743445.htm
2011-7-25 18:42
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这程序神奇啊。
2011-7-25 18:54
0
雪    币: 119
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
用xuetr,比360的好得多
2011-7-26 08:18
0
雪    币: 2882
活跃值: (1245)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
18
用xuetr,

的作者不就是在360?
2011-7-27 12:25
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
我觉得360粉碎文件,只是一个噱头,他的真实功能其实可能也就是永久性删除,而你在运行的文件是无法删除的,所以,才会有此疑惑.
2011-7-28 18:16
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
360其实真的很局限,只是大家用的好像还真挺多的。
2011-7-30 15:23
0
雪    币: 48
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
在重启系统释放内存即可删除了....
2011-7-31 05:18
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
360的无法删除我在CMD中创建的带.文件夹,习惯用IceWord
2011-8-2 10:54
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
23
确实是好文!
2011-8-2 11:14
0
游客
登录 | 注册 方可回帖
返回
//