b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

通过WriteProcessMemory改写进程的内存 - mengfanrong

电脑杂谈  发布时间:2016-05-17 04:04:28  来源:网络整理

你是否正在寻找关于writeprocessmemory的内容?让我把最宝贵的东西奉献给你:

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

#include <windows.h> #include <tlhelp32.h> BOOL CALLBACK EnumChildWindowProc(HWND hWnd,LPARAM lParam);//枚举记事本中的子窗体 char mess[999999]; int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) { HWND nphWnd=::FindWindow("notepad",NULL); if(nphWnd) { char temp[1024]; PROCESSENTRY32 pe32; pe32.dwSize=sizeof(pe32); HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获得进程列表的快照,第一个參数能够有其它选项,具体请參考MSDN if(hProcessSnap==INVALID_HANDLE_VALUE) { ::MessageBox(NULL,"CreateToolhelp32Snapshot error","error",MB_OK); return 0; } HANDLE hProcess; BOOL bMore=::Process32First(hProcessSnap,&pe32);//获得第一个进程的信息 while(bMore) { ::wsprintf(temp,"%s",pe32.szExeFile); if(!::strcmp(temp,"button.exe")) { hProcess=::OpenProcess(PROCESS_ALL_ACCESS,false,(DWORD)pe32.th32ProcessID); if(hProcess==NULL) { ::wsprintf(temp,"%s","打开进程失败!"); ::strcat(mess,temp); } else { ::wsprintf(temp,"%s","打开进程成功!"); ::strcat(mess,temp); //改写内存中内容 int tmp=97;//ascii:a DWORD dwNumberOfBytesRead; if(!::writeprocessmemory(hProcess,(LPVOID)0x0040505d,&tmp,1,&dwNumberOfBytesRead)) { ::wsprintf(temp,"%s","写入失败"); ::strcat(mess,temp); } else { ::wsprintf(temp,"%s","写入成功"); ::strcat(mess,temp); } } break; } bMore=::Process32Next(hProcessSnap,&pe32);//获得其它进程信息 } ::EnumChildWindows(nphWnd,EnumChildWindowProc,0);//获得记事本的edit窗体,打印进程信息 return 0; } else { ::MessageBox(NULL,"please open notepad","error",MB_OK); return 0; } } BOOL CALLBACK EnumChildWindowProc(HWND hWnd,LPARAM lParam) { char temp1[256]; if(hWnd) { ::GetClassName(hWnd,temp1,255); if(!::strcmp(temp1,"Edit"))//得到edit子窗体句柄 { ::SendMessage(hWnd,WM_SETTEXT,0,(LPARAM)mess); return 0; } } return true; }

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

被改动的程序实现代码例如以下:

#include <windows.h> #include

以上就是关于writeprocessmemory的全部内容,相信你一定会非常满意,。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-5202-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...