如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。' ?. m) n4 C/ b8 W8 H, @- }
不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。. x8 q+ f! t( S# L( ]: M
9 A z+ w }3 o& @0 A1 b/ ?, q, J如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
8 z9 K4 i2 [% E& z6 e9 g- ?# }/ t9 o0 G( o1 c* E
xp下我没有试过。
+ ?. l" k1 Z% Y1 Q4 k' t! }
1 l9 ^/ {# n- @0 d) y- p0 ]5 O3 F: \2 r
! @; I2 O( [6 }% u) T
+ \8 |" J% _- x4 T
0 V. l5 f$ }; L0 j
* d' X" n* [# H$ @$ @% O[此贴子已经被作者于2003-5-15 11:57:51编辑过] ; D) z0 \# b. q6 k3 E! S8 |
|