如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。
( X+ u9 ^! \; b; z2 Z不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
/ x0 b3 Y* @0 q2 F
( y; o# p( \" l" @* c( C- _( A如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。6 T5 D9 m: ^( Y; e+ U1 I# z% V ~
: l9 U+ T* U0 F% [. Y2 g' S2 S
xp下我没有试过。
+ B- f# k/ N1 k4 K( T, {/ w1 x! p( @6 n' F) R: M4 w5 m# c
5 }6 c2 t* s, d8 `' _9 E( o5 o. S
* h' }5 f; Q# F5 o+ G& H
2 f( Z* S# g) _+ z* o, J) i! C- V' A
9 f+ `4 \$ q! Z/ M) M7 U
[此贴子已经被作者于2003-5-15 11:57:51编辑过]
+ @/ Q8 o8 L5 q/ f |