如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。% j! O! w+ ]0 c8 N* Z- E. C+ i8 @
不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
) N# v7 e% p# T& B+ B* T
8 ?$ Y7 @' k5 H8 u如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
# W( P% y5 h D+ ]4 D3 K& S* B H1 U9 F* C
xp下我没有试过。5 }+ V B2 o, B0 \6 r
& ~ z2 N3 W8 s" g* `
; i+ Z3 D" a8 v9 g: m: s, ~
, I3 Q* }7 \, N9 M+ n
' U/ q& d* ]" v3 i# p9 r4 s
; e9 ~4 ` j+ x, ?* j1 {
% [# z- F4 W- P/ Z4 S- u[此贴子已经被作者于2003-5-15 11:57:51编辑过] 2 t( B5 O. x6 Y
|