修改器游戏内存修改器原理

内存修改器  时间:2021-01-12  阅读:()

游戏内存修改器原理

#include "stdafx.h"

#include <windows.h>

#include <tchar.h>

DWORD g_arList[1024] ;int g_nListCnt;

HANDLE g_hProcess;

BOOL Wr iteMemory(DWORD dwAddr, DWORD dwValue) ;void ShowList(void) ;

BOOL CompareAPage(DWORD dwBaseAddr, DWORD dwValue) ;BOOL FindNext(DWORD dwValue) ;

BOOL FindFirst(DWORD dwValue) ;

BOOL FindFirst(DWORD dwValue)

{const DWORD dwOneGB = 1024 * 1024 * 1024;const DWORD dwOnePage = 4 * 1024;if (NULL == g_hProcess)

{return FALSE;

}

DWORD dwBase;

OSVERSIONINFO vi = {si zeof(vi) } ;

: :GetVersionEx(&vi) ;i f (VER_PLATFORM_WIN32_WINDOWS == vi.dwPlatformI d){dwBase = 4 * 1024 * 1024;

}else

{dwBase = 640 * 1024;

}

f or (; dwB as e < 2 * dwOne GB; dwBas e += dwOneP age)

{

CompareAPage(dwBase, dwVa lue) ;

}return TRUE;

}

BOOL CompareAPage(DWORD dwBaseAddr, DWORD dwValue)

{

BYTE arBytes[4096] ;if ( ! : :ReadProcessMemory(g_hProcess, (LPVOID)dwBaseAddr,arBytes, 4096, NULL))

{return FALSE;

}

DWORD* p dw = NUL L;int i = 0;for (i = 0; i < (int)4 * 1024 -3; i++)

{p dw = (DWO RD*)&arBy t e s[i] ;i f (pdw[0] == dwVal ue)

{if (g_nListCnt >= 1024)

{return FALSE;

}g_arList[g_nListCnt++] = dwBaseAddr + i ;

}

}return TRUE;

}void ShowList(void)

{int i;for (i = 0; i < g_nListCnt; i++)

{printf("%08lX/n", g_arList[i]) ;

}

}

BOOL FindNext(DWORD dwValue)

{int nOrgCnt = g_nListCnt;g_nListCnt = 0;

BOOL bRet = FALSE;

DWORD dwReadValue;int i;f or (i = 0; i < nOrgCnt; i++)

{if ( : :ReadProcessMemory(g_hProcess,

(LPVOID)g_arL i st[i] , &dwReadVal ue, s i ze of(DWORD) , NULL))

{i f (dwReadVal ue == dwValue)

{g_arList[g_nListCnt++] = g_arLi st[i] ;bRet = TRUE;

}

}

}return bRet;

}

BOOL Wr iteMemory(DWORD dwAddr, DWORD dwValue)

{return : :WriteProcessMemory(g_hProcess, (LPVOID)dwAddr,

&dwValue, s i z eof(DWORD) , NULL) ;

}int main(int argc, char* argv[] )

{

TCHAR szFileName[] =_T(". ./Debug/Testor0. exe") ;

STARTUPINFO s i = {s izeof(si) } ;

PROCESS_INFORMAT ION pi ;

: :CreateProcess(NULL, szFileName, NULL, NULL, FALSE,C REATE_NEW_CONSOLE, NULL, NULL, &s i, π) ;

: :CloseHandle(pi.hThread) ;g_hProcess = pi.hProcess;int iVal;printf("Input val = ") ;scanf("%d", &iVal) ;

FindFirst(iVal) ;

ShowLi s t() ;if (g_nListCnt > 1)

{printf("Input val = ") ;scanf("%d", &iVal) ;

FindNext(iVal) ;

ShowLi s t() ;

}printf("New value = ") ;scanf("%d", &iVal) ;if (WriteMemory(g_arLi st[0], iVal) )

{printf("Write data success./n") ;

}

: :Cl oseHandle(g_hProce ss) ;return 0;

}

DMIT:美国cn2 gia线路vps,高性能 AMD EPYC/不限流量(Premium Unmetered),$179.99/月起

DMIT怎么样?DMIT最近动作频繁,前几天刚刚上架了日本lite版VPS,正在酝酿上线日本高级网络VPS,又差不多在同一时间推出了美国cn2 gia线路不限流量的美国云服务器,不过价格太过昂贵。丐版只有30M带宽,月付179.99美元 !!目前,美国云服务器已经有个4个套餐,分别是,Premium(cn2 gia线路)、Lite(普通直连)、Premium Secure(带高防的cn2 gia线...

Fiberia.io:$2.9/月KVM-4GB/50GB/2TB/荷兰机房

Fiberia.io是个新站,跟ViridWeb.com同一家公司的,主要提供基于KVM架构的VPS主机,数据中心在荷兰Dronten。商家的主机价格不算贵,比如4GB内存套餐每月2.9美元起,采用SSD硬盘,1Gbps网络端口,提供IPv4+IPv6,支持PayPal付款,有7天退款承诺,感兴趣的可以试一试,年付有优惠但建议月付为宜。下面列出几款主机配置信息。CPU:1core内存:4GB硬盘:...

CloudCone,美国洛杉矶独立服务器特价优惠,美国洛杉矶MC机房,100Mbps带宽不限流量,可选G口,E3-1270 v2处理器32G内存1Gbps带宽,69美元/月

今天CloudCone发布了最新的消息,推送了几款特价独立服务器/杜甫产品,美国洛杉矶MC机房,分配100Mbps带宽不限流量,可以选择G口限制流量计划方案,存储分配的比较大,选择HDD硬盘的话2TB起,MC机房到大陆地区线路还不错,有需要美国特价独立服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2...

内存修改器为你推荐
虚拟空间租赁虚拟主机租用价格多少钱一年linux虚拟主机windows虚拟主机和linux虚拟主机有什么区别中文域名注册查询中文域名注册怎么查询美国vps租用如何选择国外vps服务器?域名备案域名怎么进行备案?重庆虚拟主机万网M3型虚拟主机怎么样?速度如何?asp虚拟主机怎样查看虚拟主机是支持ASP还是PHP程序的四川虚拟主机四川java虚拟主机,哪里比较好域名停靠“域名停靠”怎么挣钱啊?域名邮箱如何注册域名邮箱
独立ip空间 中文域名查询 buyvm 512m 表格样式 标准机柜尺寸 vip域名 外贸空间 主机管理系统 全能空间 万网空间 免费个人主页 闪讯网 xshell5注册码 亿库 碳云 百度新闻源申请 godaddy中文 木马检测 硬防 更多