如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。
+ x) l4 \% _6 S( i' P不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。' f2 l: x- G. p* `
) N- I. V- f1 [/ h- p# j% u" D如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。( @, i; s- h; ]- R: r* [1 _
* Q* u2 {( L$ s
xp下我没有试过。
- [' r: T" `; r/ S
$ W; p1 y$ d. ~) W2 C$ U+ Q
) Z0 F- |' g2 I% O% e+ I1 u: {5 s4 M, ~
r* O# A6 K# I+ N6 H
7 O+ d7 N) g1 H& Q# D
. C$ J+ x) `( R. V; C T# {[此贴子已经被作者于2003-5-15 11:57:51编辑过]
) O& y7 v; w) i$ V" g1 I: u |