吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4514|回复: 0
收起左侧

[其他转载] 转 delphi内存补丁

[复制链接]
hixiaosheng 发表于 2010-2-5 18:03
 
interface  
uses  
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   
Dialogs;   
type  
TForm1 = class(TForm)   
procedure FormCreate(Sender: TObject);   
private  
{ Private declarations }  
public  
{ Public declarations }  
end;   
var  
Form1: TForm1;   
implementation  
{$R *.dfm}  
var  
si:STARTUPINFO ;   
pi:PROCESS_INFORMATION ;   
NewData : array[0..1] of byte = ($90,$90);   
NewDataSize : DWORD;   
Bytesread : DWORD;   
Olddata : array[0..1] of byte;   
dir:string ;   
procedure TForm1.FormCreate(Sender: TObject);   
begin  
dir:=ExtractFileDir(Application.ExeName );   
if FileExists(dir+'\crackme1.exe') then  
begin  
ZeroMemory(@Pi,SizeOf(pi));   
FillChar (si,SizeOf(si),0);   
si.cb :=SizeOf(si);   
NewDatasize :=SizeOf(NewData ) ;   
if CreateProcess (nil,'crackme1.exe',nil,nil,False ,CREATE_SUSPENDED ,nil ,nil,si,pi)=True then  
begin  
ReadProcessMemory(pi.hProcess ,Pointer($00401586 ),@olddata,2 ,BytesRead );   
if (OldData[0]=$75) and (OldData[1]=$18) then  
begin  
WriteProcessMemory(pi.hProcess ,Pointer($00401586 ),@newdata,NewDatasize ,BytesRead );   
ResumeThread(pi.hThread );   
CloseHandle(pi.hProcess );   
CloseHandle(pi.hThread );   
end else  
MessageBox(Handle, PChar('无法打入内存补丁'), PChar('错误'),MB_ICONERROR or MB_OK);   
TerminateProcess(pi.hProcess ,0);   
CloseHandle(pi.hProcess );   
CloseHandle(pi.hThread );   
end;   
end  
else  
begin  
ShowMessage('本补丁必须与原文件放在同一目录下');   
Application.Terminate ;   
end;   
end;   
end. 

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 04:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表