能力值:
( LV12,RANK:210 )
|
-
-
2 楼
首先获得自身句柄,然后,得到文件末尾的地址,最后WriteProcessMemory。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
运行中还能修改自身?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
文件~~~~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
文件被占用起的还可以修改!!
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
一种直接mov文件在内存中的最后位置就修改了……
至于要直接修改磁盘里的文件内容,理论上应该是先进ring0,然后直接写磁盘,不然windows不许修改吧……
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
需要补充说明,需要在ring3修改。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
lz说的到底是在内存中修改还是硬盘上修改?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
原帖我写道:
需要说清几个问题:
1. 要修改自身硬盘文件,而不是内存数据
内存修改,是很简单的。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
汗。。原来lz的帖子已经编辑过了……前几天我来看的时候还没有这句的……好吧,是我没看仔细。
直接操作磁盘?不知道,不会,撤人。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
把自身从内存中脱离。那毒虫不也是这样的吗?运行后就删除了自身
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
exe自删除简单,多年前就有经典代码了,如下。
但是,自修改还有所不同,它需要修改时或修改后,不影响自身进程的正常运行。
#include "windows.h"
int main(int argc, char *argv[])
{
char buf[MAX_PATH];
HMODULE module;
module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
CloseHandle((HANDLE)4);
__asm
{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}
|
|
|