#include"StdAfx.h"
#include<windows.h>
DWORD g_arList[1024];
int g_nListCnt=0;
HANDLE g_hProcess;
BOOL CompareAPage(DWORD dwBaseAddr,DWORD dwValue){
BYTE arBytes[4096];
if(!::ReadProcessMemory(g_hProcess,(LPVOID)dwBaseAddr,arBytes,4096,NULL))
return FALSE;
DWORD* pwd;
for(int i=0;i<(int)1024*4-3;i++){
pwd=(DWORD*)&arBytes[i];
if(pwd[0]==dwValue){
if(g_nListCnt>1024)
return FALSE;
g_arList[g_nListCnt++]=dwBaseAddr+i;
}
}
return TRUE;
}
BOOL FindFirst(DWORD dwValue){
const DWORD dwOneGB=1024*1024*1024;
const DWORD dwOnePage=4*1024;
if(g_hProcess==NULL)
return FALSE;
DWORD dwBase;
OSVERSIONINFO vi={sizeof(vi)};
::GetVersionEx(&vi);
if(vi.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS)
dwBase=4*1024*1024;
else
dwBase=640*1024;
for(;dwBase<2*dwOneGB;dwBase+=dwOnePage)
CompareAPage(dwBase,dwValue);
return TRUE;
}
BOOL FindNext(DWORD dwValue){
int i=0;
int nOrgCnt=g_nListCnt;
g_nListCnt=0;
BOOL bRet=FALSE;
DWORD dwReadValue;
for(i=0;i<nOrgCnt;i++){
if(::ReadProcessMemory(g_hProcess,(LPVOID)g_arList[i],&dwReadValue,sizeof(DWORD),NULL)){
if(dwReadValue==dwValue){
g_arList[g_nListCnt++]=g_arList[i];
bRet=TRUE;
}
}
}
return TRUE;
}
BOOL WriteMemory(DWORD dwAddr,DWORD dwValue){
return ::WriteProcessMemory(g_hProcess,(LPVOID)dwAddr,&dwValue,sizeof(DWORD),NULL);
}
void ShowList(){
for(int i=0;i<g_nListCnt;i++)
printf("%081X/n",g_arList[i]);
}
int main(int argc,char* argv[])
{
//启动进程
char szFileName[30];
printf("The exe_file name is:");
scanf("%s",szFileName);
STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi;
::CreateProcess(NULL,szFileName,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
//关闭线程句柄,只用到进程句柄
::CloseHandle(pi.hThread);
g_hProcess=pi.hProcess;
//输入要修改的值
int iVal;
printf("Input val= ");
scanf("%d",&iVal);
FindFirst(iVal);
ShowList();
printf("g_nListCnt= %d/n//////////////////////////n/n",g_nListCnt);
while(g_nListCnt>1){
printf("Input val=");
scanf("%d",&iVal);
FindNext(iVal);
ShowList();
if(g_nListCnt==0)
printf("Not any address in g_nList!/n");
printf("g_nListCnt= %d/n//////////////////////////////n/n",g_nListCnt);
}
printf("iVal= %d/n",iVal);
printf("New Value= ");
scanf("%d",&iVal);
WriteMemory(g_arList[0],iVal);
::CloseHandle(g_hProcess);
printf("Operation Successful!/n/n");
return 0;
}
相关推荐
CE内存查找修改器
CE 修改器 用来修改与查找内存。中文加强版。单机游戏可直接改内存无敌。
windows平台下的进程内存修改
介绍如何实现windows平台下修改其他进程的地址空间
内存查看工具
内存专家, 内存检测工具大全,一款用以检测系统内存型号的检测工具,功能强大,操作简洁。为你提供清晰直观的内存型号规格信息,还能查看制造商,获取制造商的相关支持文档。能够对你的内存,随机存储器的规格进行一目了然的描述。
windows 查看和修改内存
windows 查看和修改内存查看内存1.使用JDK工具查看2.使用JDK命令行工具查看3.以服务方式查看修改内存设置1.使用tomcat提供的gui工具来设置内存参数 查看内存 1.使用JDK工具查看 1.1工具路径 {javajdk安装目录}/bin/jvisualvm.exe 1.2打开工具 双击需查看的虚拟机后点击监视 1.3查看内存大小 Ps:程序显示的单位为字节,可除两次1024转成MB单位显示 最大:代表程序最大可以从操作系统中获取的内存数量 大小:代表程序启动的时候从操作系统中获取的内存数
内存查询修改器
内存查询修改 , 可修改游戏内存
Java外挂开发之内存修改程序(含源码)类似CE
欢迎下载研究交流,使用步骤:打开进程->输入搜索的数据->开始搜索->改变游戏中的数据->搜索变化->内存修改! 解压后,包含三个文件: 第一个文件是源码,直接用Eclipse导入即可,导入后记得修改Build Path 第二个是打包好的JAR,如果电脑安装了Java就可以直接运行 第三个是打包好的EXE安装包,可以在没有Java环境的电脑上运行
32位/64位WINDOWS驱动之-突破进程保护跨进程读写内存
类别:值 控件类型: EDIT 名称: m_targetPID 变量类型: UINT32。以上就是突破进程保护跨进程读写内存的全部内容了。加一个控制码和驱动层对应。
【自动驾驶】控制算法(十)深度解析车辆纵向控制 | Carsim 油门刹车标定表的制作...
写在前面: ???? 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。???? ???? 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 ????感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~文章目录引言一、油门标定原理1.1 油门与速度、加速度的关系1.2 油门控制曲面模型的构建二、油门标定表的制作流程...
Windows破解&逆向-CrackMe_1实例(使用OpenProcess修改内存中的值)
这里开发了一个CrackMe实例,源码打包下载如下: https://github.com/fengfanchen/Qt/tree/master/CrackMe_1 程序是这个样子的: 程序从10s开始倒计时: 到0s后提示Game over 这里的倒计时的数在代码中是这样体现的: resource,并且为static,进程在计算机中有4个空间,一个是代码区负责逻辑相关的功能,一个是常量区,如HelloWord字符串都在那里面资源文件等,静态区,就这些静态资源和全局变量了。耳环.
QT串口通信控制LED上位机开发教程
串口通信是嵌入式系统与PC端交互的基础技术,通过UART协议实现设备间的数据传输。QT框架提供了跨平台的串口编程支持,结合其GUI模块可以快速开发上位机控制程序。在工业自动化和物联网领域,这种上下位机架构广泛应用于设备监控和控制场景。本案例展示了如何使用QT的SerialPort模块实现LED控制功能,包含串口参数配置、指令发送等核心功能实现,为嵌入式GUI开发提供实践参考。
向量乘法器设计
同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...
Windows核心编程_修改其它进程里的内存值+示例:修改游戏分数
最近一直忙于Opencv图像处理方面的学习,以及工作,没有更新C/C++专栏方面的博客了,所以今天就给大家写个应用层方面的编程代码,可用于参考学习,本篇博客将运用WindowsSDK库所提供的API来编写一个修改其他进程里变量值的程序。在开始实际编写代码之前,先给大家介绍一下所需函数:OpenProcess、VirtualProtectEx、ReadProcessMemory、WriteProce...
Win10管理员权限的‘暗门’:从mmc.exe被阻止,聊聊UAC与自动提权那些事儿
本文深入解析Windows 10中UAC(用户账户控制)与自动提权机制,探讨mmc.exe被阻止的深层原因及解决方案。从UAC工作原理到自动提权机制,再到具体诊断与修复步骤,帮助用户理解并解决权限管理问题,同时平衡安全性与便利性。
制作自己的修改器.
1OptionExplicit2PrivateDeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLong3PrivateDeclareFunctionGetWindowTh...
别再折腾端口了!Kali Nethunter Kex 图形化桌面连接失败的真正原因与一键修复(附Termux命令)
本文深入分析了Kali Nethunter Kex图形化桌面连接失败的真正原因,包括端口配置变更、依赖缺失和权限问题,并提供了一键修复方案和Termux命令。通过详细的诊断步骤和优化配置,帮助用户快速恢复Kex功能,提升移动安全测试效率。
单片机OTA升级:Bootloader如何多重校验保障APP完整性?
本文详细介绍了单片机OTA升级中Bootloader如何通过CRC校验、数字签名、版本比对和存储位置检查等多重校验机制保障APP完整性。CRC校验作为快速检测数据完整性的核心手段,结合其他安全措施有效防止设备变砖和安全漏洞,确保远程升级的可靠性。
读写另一EXE的内存
procedure TfrmMain.tmrChangeServerNameTimer(Sender: TObject); function GetProcessID(FileName: string = ''): TProcessEntry32; var Ret: BOOL; s: string; FSnapshotHandle: THandle; FProces...
TGAT Python:图神经网络中的动态图算法
其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。
粗读《编程高手箴言》
源地址:我的技术博客 http://linger.devhub.com/blog/category/book/ 某次在图书馆无意中看到《编程高手箴言》这本书,作者是梁肇新,豪杰超级解霸的开发者。这本书吸引我的原因除了作者外,还有就是里面的内容很广泛,对底层的研究很多。于是我借回去看了。之前由于准备期末考试,所以木有时间,后来第三学期无聊并且借书的期限快到了,就准备随便翻翻。其实这书的内容对我
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
Windows内存修改初篇
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> BOOL FindFirst(DWORD dwValue);//对目标进程空间进行查找 BOOL FindNext(DWORD dwValue);//对目标空间进行2,3,4。。查找 //查找数据的地址列表 DWORD g...
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
直接修改内存数据
下面是修改进程的某片地址的数据: #include #include #include #include #define NAME "mspaint.exx" //要修改的进程名 void read() { HANDLE hpro = NULL; PROCESSENTRY32 pe32 = { 0 }; pe32.dwSize = sizeof(pe32); HANDLE hpr
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
进程内存修改器
一、原理 设计一个名为MemChange的应用程序,让它修改Test.exe进程里面的内容。 每个进程占用的内存空间是离散的,所以要访问进程内存种的一个值,就需要遍历整个64K---2G的地址空间。 难点1.MemChange如何访问Test的进程空间 解决方案:MemChange程序中使用CreateProcess把Test.exe拉起来,这样MemChange就可以访问Test.exe...
4184



被折叠的 条评论
为什么被折叠?



