如果要修改磁盘中的程序,而这个程序正在运行中,可以用MoveFile把这个程序移到temp目录,然后在原位复制这个程序的副本,对副本进行修改。只要重新启动系统,或者注销再登陆(看程序由谁调用),或者在内存中杀掉原来进程再重新运行,都可以使使修改后的程序生效。- [# i; p: g# `
不过对于系统文件,由于2000/XP有系统文件保护,应该先把\WINNT\system32\dllcache中的同名文件也改了,否则会自动恢复。如果系统发现文被修改,有提示要求插入系统盘,直接跳过。
/ N9 L" A8 ^1 [$ B) `/ }
3 B3 @* |- j0 ^2 M4 }! V0 V如果仅仅想对内存中的进程进行修改,用WriteProcessMemory函数就可以了。
p- E3 S- o, u0 B
~+ r3 V0 N0 fxp下我没有试过。- h0 g1 a3 F0 A3 L3 K) ~
) t6 R/ |$ V8 X1 Q& G
- H8 K4 [6 w1 o. J5 |% v0 V# K( Z2 s; }8 a5 C" c
6 O# `* p( F6 w/ ?, h5 k4 Y' K: _% j9 e6 z: X9 _1 G3 E
/ l! X$ Z t7 k! v5 O9 Y0 o5 t! {
[此贴子已经被作者于2003-5-15 11:57:51编辑过]
$ u% _6 B \* n. h. P! ?# H' s# ~2 ` |