如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。
' G- t8 V: J2 ]- t不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
3 E& G( J a6 I7 Z/ b8 @- d9 }' ]; z: H H! G0 x
如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。- E1 Z1 |$ k0 ^1 J8 G+ Z" s
8 B9 y' ~7 y" _: s0 h5 D4 O! Cxp下我没有试过。! ^3 z7 L. f z: O4 q" F
7 S* p( @6 U% T2 S1 R: D+ T
% \, G3 y3 k4 z0 @8 ^/ w$ _
* _8 D0 k* h. I6 [
* E) M) {, D2 }$ U
! [4 Z% Q7 e6 v) J8 h7 @+ i- n( J. m! d# v; W
[此贴子已经被作者于2003-5-15 11:57:51编辑过]
9 l" ]& n4 N. o! \' S |