如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。* g# ]- I; d" Z, v: k, ~! o9 b
不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
& d- L5 ^7 S! b5 g+ v6 ]& l: `/ J7 ?8 q- B1 L
如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
: Y: z4 m% [; B9 B6 ^% [- z, `/ F/ U% _1 ]% Y3 d/ c% ?
xp下我没有试过。
; @. z2 l; ?8 R8 L, c7 ]$ u2 S5 I" P. V) ]" q3 d- p$ K- U% C7 M9 ]6 b
a% H& p. ^4 ?% V( n. \. k+ [# e0 ?& m A
9 x/ P/ w( j5 D+ U' l, @1 i! @; z8 z. ?
" e& T$ {) ^% \9 t[此贴子已经被作者于2003-5-15 11:57:51编辑过] 9 W( l5 U# r, X" ^3 j, R( h) F
|