如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。/ Y5 R) V8 s v: n& a* |0 p
不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。! p9 T0 c: }# F' t5 A: C7 v, u
( O( ~* L% w9 ?0 ~
如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
+ n u- H( P7 [- F* Q( M
4 ?. g; @0 ?- [! q+ Kxp下我没有试过。
: S& Q9 E9 b3 G- u
* N! k4 _- e/ T, R, ?( {6 Q* \/ @, K, r$ i
4 ?" \0 w- X( o7 N9 d1 M& F1 U
# T4 n: i2 {" v% K5 s/ `6 A) a2 ]& X- f9 q
8 M2 s. j, Z. {: S$ g* R1 c
[此贴子已经被作者于2003-5-15 11:57:51编辑过]
; D6 m: K8 e) W9 [4 ^6 @: L |