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

内存修改器  时间: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;

}

onevps:新增(支付宝+中文网站),香港/新加坡/日本等9机房,1Gbps带宽,不限流量,仅需$4/月

onevps最新消息,为了更好服务中国区用户:1、网站支付方式新增了支付宝,即将增加微信;原信用卡、PayPal方式不变;(2)可以切换简体中文版网站,在网站顶部右上角找到那个米字旗,下拉可以换中国简体版本。VPS可选机房有:中国(香港)、新加坡、日本(东京)、美国(纽约、洛杉矶)、英国(伦敦)、荷兰(阿姆斯特丹)、瑞士(苏黎世)、德国(法兰克福)、澳大利亚(悉尼)。不管你的客户在亚太区域、美洲区...

imidc:$88/月,e3-1230/16G内存/512gSSD/30M直连带宽/13个IPv4日本多IP

imidc对日本独立服务器在搞特别促销,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制流量。注意,本次促销只有一个链接,有2个不同的优惠码,你用不同的优惠码就对应着不同的配置,价格也不一样。88美元的机器,下单后默认不管就给512G SSD,要指定用HDD那就发工单,如果需要多加一个/28(13个)IPv4,每个月32美元...官方网站:https:...

青果云(59元/月)香港多线BGP云服务器 1核 1G

青果云香港CN2_GIA主机测评青果云香港多线BGP网络,接入电信CN2 GIA等优质链路,测试IP:45.251.136.1青果网络QG.NET是一家高效多云管理服务商,拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一。青果云香港CN2_GIA主机性能分享下面和大家分享下。官方网站:点击进入CPU内存系统盘数据盘宽带ip价格购买地...

内存修改器为你推荐
国内域名注册预留的国内(cn)域名申请方法vps虚拟主机VPS主机、虚拟主机和云主机 它们之间有什么区别?它们哪一个比较好?台湾主机台湾的电脑硬件比韩国,日本,美国强?手机网站空间谁有上手机网站刷空间人气的网址上海虚拟主机上海哪个域名注册和虚拟主机IDC稳定可靠,价格合适?mysql虚拟主机哪些类型的虚拟主机支持数据库?域名解析什么是域名解析?它有什么作用?中文域名中文域名是什么域名是什么什么是域名?域名是干什么用的?域名是什么你好,请问域名是指什么啊?
花生壳动态域名 xenvps 国内php空间 中国特价网 40g硬盘 免费个人空间 hktv 电信主机 shuang12 个人免费邮箱 国外网页代理 广州服务器托管 免费的加速器 web服务器 nic iptables rewrite规则 cc攻击 电脑主机响 主机声音大 更多