怎么把值写入动态内存地址呀
.版本 2.支持库 spec
ReadProcessMemory (进程句柄, 7837084, 缓存区, 4, 0)
ReadProcessMemory (进程句柄, 缓存区 + 2152, 缓存区, 4, 0)
ReadProcessMemory (进程句柄, 缓存区 + 21880, 缓存区, 4, 0)
调试输出 (缓存区)
' WriteProcessMemory (,,,,)
CloseHandle (进程句柄) :D学习~~进步进步 坐等大神来解答 void CCALLDlg::OnButton1()
{
DWORD pRocessid;
TCHAR w,p,r;
// TODO: Add your control notification handler code here
HWND hWnd=::FindWindow("AskTao","");
_itot((int)hWnd,w,10);
//GetDlgItem(IDC_EDIT1)->SetWindowText(w);
m_mytext+="窗口句柄:";
m_mytext+=w;
m_mytext+="\r\n";
::GetWindowThreadProcessId(hWnd,&pRocessid);
_itot((int)pRocessid,p,10);
m_mytext+="PID:";
m_mytext+=p;
m_mytext+="\r\n";
HANDLE h = OpenProcess(PROCESS_ALL_ACCESS,false,pRocessid);
_itot((int)h,r,10);
m_mytext+="进程句柄:";
m_mytext+=r;
m_mytext+="\r\n";
UpdateData(FALSE);
LPVOID callMemorynum =VirtualAllocEx(h,NULL,0x1500,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
if(!WriteProcessMemory(h,callMemorynum,discardeditems,0x1500,NULL)){
MessageBox(_T("写内存失败!"),_T("错误信息"),MB_OK);
}
DWORD Theadid;
CreateRemoteThread(h,NULL,0,(LPTHREAD_START_ROUTINE)callMemorynum,0,0,&Theadid);
VirtualFreeEx(h,callMemorynum,1500,MEM_RELEASE);
CloseHandle(h);
}
//005EDE96 .51 PUSH ECX ;数量
//005EDE97 >8B95 F4020000 MOV EDX,DWORD PTR SS:
//005EDE9D .52 PUSH EDX ;位置
//005EDE9E .68 2CBAAE00 PUSH asktao.00AEBA2C ;ASCII "pos = %d, amount = %d"
//005EDEA3 .68 48200000 PUSH 2048
//005EDEA8 .E8 D3EF0A00 CALL asktao.0069CE80
//005EDEAD .83C4 10 ADD ESP,10
VOID discardeditems()
{
_asm
{
pushad
mov ecx,0x1
push ecx
mov edx,0x66
push edx
push 0x00AEBA2C
push 0x2048
mov esi,0x0069CE80
call esi
add esp,0x10
popad
}
}
这是问道丢掉物品远程写入函数
你可以根据这个ReadProcessMemory 这个函数读取内存 基址+偏移找到地址 直接用WriteProcessMemory写到这个地址就行了 .版本 2
.支持库 spec
ReadProcessMemory (进程句柄, 7837084, 缓存区, 4, 0)
ReadProcessMemory (进程 ...
402179187 发表于 2015-5-16 08:12 http://www.kanliuxing.com/images/common/back.gif
我也是新手,你这个问题我也遇到了,我终于琢磨出了,其实读写可以和到一起如:
ReadProcessMemory (进程句柄, 7837084, 缓存区, 4, 0)
ReadProcessMemory (进程句柄,缓冲区+2152(这个一级偏移要换成十进制),缓冲区,4,0)
WriteProcessMemory(进程句柄,缓冲区+21880(这个二级偏移也要换成十进制),缓冲区(这个缓冲区改你要写的数值100或500或99999等),4,0)
这样就可以实现了写内存,希望可以帮到你。
页:
[1]