如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。
$ @: `: \0 x2 X+ V t8 G不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。4 e, `, b$ C8 q8 O4 O# _
( }! o/ {& Y+ }如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
/ a6 L; P$ p9 K% ~6 |% j1 ]* g5 }
xp下我没有试过。( ? A n& o- j4 K0 t
! h6 t+ W5 B4 b; d3 m; }
: a0 \( }9 h: D6 ]( m
6 C+ ^, ~( R8 J. {8 |6 D, {
- I: g. ~2 m$ Z9 e
- t* B6 k$ W* b& M1 b2 Y/ a) \. [, \0 Q7 p) j
[此贴子已经被作者于2003-5-15 11:57:51编辑过]
& I5 o% J. j8 Z2 M |