通过WriteProcessMemory改写进程的内存

以PROCESS_ALL_ACCESS权限打开进程以后既可以使用ReadProcessMemory读取程序内存,也可以使用WriteProcessMemory改写程序的内存,这也是一些内存补丁使用的招数,以下是程序的实现代码

Code

程序的功能是改写名为button.exe程序中内存地址为0x0040505d的值为97,即ASCII值的a,此处内存的原内容为ASCII值的m

被修改的程序实现代码如下:

Code

这个程序的功能是在窗口上建立两个button,点击任何一个button都会弹出一个对话框,输出button回调函数的wParam、lParam参数的值,外加一段字符串“mess”,我们要修改的就是字符串“mess”的第一个字符“m”为“a”。

将两端代码编译以后先打开button程序,点击窗口上的任意一个按钮,应该弹出如下的对话框:

此时打开改写内存的程序,然后再点击button程序窗口上的按钮,弹出的窗口就变成了下图:

字符串mess成功地修改为aess!

posted @ 2009-10-21 18:21  认真做人,认真做事  阅读(17410)  评论(5编辑  收藏  举报