delphi修改exe指定地址的内容
项目 Project1.exe
------------------
program Project1;
uses
<wbr> Forms,Windows, Messages,SysUtils,<br><wbr> Unit1 in 'Unit1.pas' {Form1};</wbr></wbr>
{$R *.res}
begin
<wbr> Application.Initialize;<br><wbr>// Application.Title := 'TestOD';<br><wbr>
MessageBox(Application.Handle,pchar(inttostr(Application.Handle)),pchar('hello1'),0);<br><wbr>
MessageBox(Application.Handle,pchar('abc1'),pchar('hello1'),0);<br><wbr> Application.Run;<br><wbr> Application.Terminate;<br><wbr> Application.CreateForm(TForm1, Form1);</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
end.
===================================
项目 Project2.exe
------------------
unit Unit2;
interface
uses
<wbr> Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,<br><wbr> Dialogs, StdCtrls,Tlhelp32;</wbr></wbr>
type
<wbr> TForm1 = class(TForm)<br><wbr><wbr><wbr> Button1:
TButton;<br><wbr><wbr><wbr> Button2:
TButton;<br><wbr><wbr><wbr> ListBox1:
TListBox;<br><wbr><wbr><wbr> procedure
Button1Click(Sender: TObject);<br><wbr><wbr><wbr> procedure
Button2Click(Sender: TObject);<br><wbr> private<br><wbr><wbr><wbr> { Private
declarations }<br><wbr> public<br><wbr><wbr><wbr> { Public
declarations }<br><wbr> end;<br><wbr> function FindProcessID(s:string):integer;<br>
var<br><wbr> Form1: TForm1;<br><wbr><wbr><wbr> NewSpeed :
array[0..2] of byte =($71,$7A,$66); //qzf</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
<wbr>Gameh:HWND;<br><wbr>GamePid:DWORD;<br><wbr>Gamehprocess: THandle;<br><wbr>WriteByte:DWORD;<wbr><wbr><wbr>
//实际写入字节数</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
begin
<wbr> //获取游戏窗口句柄<br><wbr> //Gameh:=findwindow(nil,'xxxx');<br><wbr> //gameh := 1048984;<br><wbr><wbr><wbr>
//获取进程ID<br>
//<wbr> GetWindowThreadprocessID<wbr>(Gameh,GamePid);<br><wbr> GamePid := FindProcessID('Project1.exe');<br><wbr> //获取进程句柄<br><wbr><wbr>
gamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);<br><wbr> //44CB9C 通过OD分析的地址,进而修改了它的内容<br><wbr>
Writeprocessmemory(gamehProcess,Pointer($44CB9C)<wbr>
,@NewSpeed[0],3,<wbr> WriteByte);<br><wbr> //result:=Writebyte;<br><wbr> showmessage('修改成功!');<br>
end;<br>
function FindProcessID(s:string):integer;<br>
var<br>
found,find:boolean;<br>
FSnapshotHandle:tHANDLE;<br>
lppe:TProcessEntry32;<br>
begin<br>
FSnapshotHandle := CreateToolhelp32Snapshot<wbr>(TH32CS_SNAPPROCESS, 0);
//CreateToolhelp32Snapshot<wbr>函数得到进程快照<br>
Find:=False;<br>
lppe.dwSize := Sizeof(lppe); //初始化<br>
found := Process32First(FSnapshotHandle, lppe); //Process32First
得到一个系统快照里第一个进程的信息<br>
while found do<br><wbr><wbr><wbr> begin<br><wbr><wbr><wbr> if
LowerCase(ExtractFileName(lppe.szExeFile))=LowerCase(s) then<br><wbr><wbr><wbr><wbr><wbr>
begin<br><wbr><wbr><wbr><wbr><wbr>
Result:=lppe.th32ProcessID; //找到进程返回ID<br><wbr><wbr><wbr><wbr><wbr>
find:=true;<br><wbr><wbr><wbr><wbr><wbr>
CloseHandle(FSnapshotHandle);<br><wbr><wbr><wbr><wbr><wbr>
exit;<br><wbr><wbr><wbr><wbr><wbr>
end;<br><wbr><wbr><wbr><wbr><wbr>
found := Process32Next(FSnapshotHandle, lppe);<br><wbr><wbr><wbr> end;<br>
CloseHandle(FSnapshotHandle);<br>
if find=False then<br>
Result:=0; //找不到进程返回0<br>
end;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
procedure TForm1.Button2Click(Sender: TObject);
var<wbr><wbr><br><wbr> ProcessName : string;
//进程名<wbr><wbr><br><wbr> ProcessID<wbr> : integer;
//进程表示符<wbr><wbr><br><wbr> i :
integer;<wbr><wbr><wbr><br><wbr>
ContinueLoop:BOOL;<wbr><wbr><wbr><br><wbr> FSnapshotHandle:THandle; //进程快照句柄<br><wbr> FProcessEntry32:TProcessEntry32;
//进程入口的结构体信息<wbr><wbr><br>
begin<wbr><wbr><br><wbr>
FSnapshotHandle:=CreateToolhelp32Snapshot<wbr>(TH32CS_SNAPPROCESS,0);
//创建一个进程快照<wbr><wbr><br><wbr>
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);<wbr><wbr><wbr><br><wbr>
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
//得到系统中第一个进程<br><wbr> //循环例举<br><wbr> while ContinueLoop<wbr>
do<wbr><wbr><br><wbr> begin<br><wbr><wbr><wbr> ProcessName
:= FProcessEntry32.szExeFile;<br><wbr><wbr><wbr> ProcessID :=
FProcessEntry32.th32ProcessID;<br><wbr><wbr><wbr>
Listbox1.Items.add('应用程序名 :'+ProcessName +'#进程ID:'+
inttostr(ProcessID));<br><wbr><wbr><wbr>
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);<wbr><wbr><wbr><br><wbr>
end;<wbr><wbr><wbr><br>
end;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
end.
相关推荐
2024-2030全球与中国低脂凝乳奶酪市场现状及未来发展趋势
毕业设计:vue+springboot乌鲁木齐南山冰雪旅游服务网站(源码 + 数据库 + 说明文档) 2 开发工具及技术 2 2.1 B/S结构的介绍 2 2.2 JSP及SpringBoot技术的介绍 2 2.3 HTML及Vue技术的介绍 2 2.4 MYSQL数据库的介绍 3 2.5 开发环境的介绍 3 3 需求分析 4 3.1 可行性分析 4 3.2 功能需求分析 4 3.3 非功能需求分析 4 4 总体设计 6 4.1 系统总体结构设计 6 4.2 系统的数据库设计 6 5 系统功能实现 6 5.1 注册用户 6 5.2 管理员用户 6 6 系统测试 6 6.1 测试目的 6 6.2 测试内容 6 6.3 测试总结 6
c
华为数字化转型实践28个精华问答.docx
2024年全球二极管阵列光谱仪行业总体规模、主要企业国内外市场占有率及排名
基于51单片机的温度检测调节系统 由STC89C51单片机+液晶1602显示+DS18B20温度传感器+继电器+报警模块构成 具体功能: 1、采用DS18B20温度传感器测温并用LCD1602显示; 2、按键为设置按键、加键和减键。可设置上下限温度控制范围; 3、当温度超过设定的上或下限时,相应的指示灯亮,同时相应的继电器吸合,继电器可以驱动负载工作; 4、温度测量范围0到99.9摄氏度,精度为0.1摄氏度。
2024年中国高量子效率传感器行业研究报告
基于C++14语法的任务链.zip
企业级业务架构设计方法论qy.pptx
liba2ps1-4.15.5-2.2.x86_64
本项目仅限用于学习研究 使用方法 安装依赖 pip install -r requirements.txt 修改main.py中要查询的域名 运行 main.py 即可 备注 官网反爬策略较为玄学,请勿疯狂请求 运行结果为原始响应,如有需要请自行解析
智慧社区解决方案介绍qy.pptx
2024年中国伊维菌素片剂行业研究报告
YOLOv8模型,在目标检测、目标分割、关键点检测上,通过单张图片推理和多张图片同时推理,即:单张推理与批量推理。在不使用循环的情况下将多张图片的结果给推理出来。
libAvogadro1-1.98.1-2.1.aarch64
索尼储能模块 控制器用户手册
本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR进程状态,确保其在预设时间内成功启动。本脚本提供了灵活的配置和错误处理机制,为Java应用的运维管理带来了便捷与可靠性。
基于 pyqt5-yolov8实现打电话、玩手识别系统,包括图片识别,视频识别,视频流识别。包括数据集,完整部署代码,代码使用说明。详细:https://blog.csdn.net/qq_34717531/article/details/138312075。 系统提供两种方式获取视频输入:本地视频文件、实时视频流(rtsp、rtmp等)。对于打电话和玩手机的识别,我采用了一种手机检测和pose姿态结合的识别方式,有效识别出打电话和玩手机,并且防止了手机误检测,手机放在一边误检测问题。对应视频/视频流检测,我们设置了过滤机制,以避免数据库的频繁写入的问题。还设计了优秀的历史记录栏,可以放入检测到的问题图片缩略图,并且点击记录栏,可以弹出标注好信息的图片。该系统利用先进的深度学习技术和图形用户界面设计,为用户提供了一个高效且直观的行为监测工具。实验结果表明,系统能够在多种环境下准确地识别打电话和玩手机的行为,显示出优异的实时性能和较低的误报率。
基于嵌入式