如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。
- q) U9 u! g. t: o不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
; u0 n' \3 k' M* C8 C0 `; [2 H% t1 L
如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
0 V0 z3 W4 Y/ c7 U0 d: N2 s1 x
xp下我没有试过。
8 r; c# A2 v7 h5 E" K4 m" t7 N' W5 m8 ]( d2 R) N" J z$ q7 K* G! d
; C3 y. \% [8 V- x, F$ e
! t1 H* R9 e) y) |/ b0 d0 R5 w( {) C* Y! S
* M9 ]5 r$ t5 Z. N% C. A n" A8 g
* s4 [- G9 E, L2 i
[此贴子已经被作者于2003-5-15 11:57:51编辑过] 5 h* y* Q3 g, L4 [& ^ |% {; W
|