如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。% [- ?7 `5 F! f* o' a
不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
( N6 j* ]) a6 ?; y: I; m" C* q `( [6 j
如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。. f" g6 E2 q. G- y; W' L; [4 q0 _2 |9 v
' B% z% h2 {( g( b+ ~
xp下我没有试过。
# L5 @ N6 s* O# a% T) t* b6 U! j* I& `3 l; ~* Q* |6 J0 T4 r
& B9 R+ q5 ?. s% M, ~% P
" Y+ b! C/ X# w5 R& R
3 l- W4 A# f0 i3 Q
% V, ?0 T% |3 `9 Z0 V9 t+ m/ b% N# v3 o0 D! s+ G& P' g
[此贴子已经被作者于2003-5-15 11:57:51编辑过] , t' ~0 ^. ]7 `3 j& u: d
|