如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。
2 E" D$ e9 R* x. M3 q不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
# w9 t) V- t2 v# o! o5 y/ n
3 E( \, f9 n5 A2 O: h8 ?3 ~' c1 q如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。" g9 {& h) V( B* i$ w
8 | E1 L- M4 i$ \+ L4 x( c
xp下我没有试过。8 b# G! m# j: _7 A) A0 p. V( X
7 I `* ]( c( f2 c. x) x% o" q: f- x/ T/ B
& t" j }4 ^3 _
; Y4 U Z! P( \! |( {6 @
% I+ {0 ~: J! E+ Z" O
: Y: B* n; P# L- A) { N! o" N8 {8 E( d$ F
[此贴子已经被作者于2003-5-15 11:57:51编辑过] + K# W; M+ |+ S5 {& z* |
|