در صورت امکان سورس برنامه رو ضمیمه کنید .
با تشکر ، یا حق ...
Printable View
در صورت امکان سورس برنامه رو ضمیمه کنید .
با تشکر ، یا حق ...
من از این کد استفاده میکنم ببین بدردت میخوره ؟ اینکد برای بازی کربنه
اگه میخوای که آدرس فریز شه باید بزاریش رو تایمر
کد:if (GetAsyncKeyState(VK_F1) > 0 and (GetAsyncKeyState(VK_CONTROL) > 0 then
begin
PokeAddress := $55C7E9;
PokeValue := 5,000,000;
NumberOfBytes := 4;
Fentr := FindWindow(nil,'NFSC');
PrcID := GetWindowThreadProcessId(Fentr,@ProID);
Opnpr := OpenProcess(PROCESS_ALL_ACCESS,False,ProID);
GetMem(Buf,1);
Buf^ := Chr(PokeValue);
WriteProcessMemory(Opnpr, ptr(PokeAddress),Buf,NumberOfBytes,Wrtpr);
FreeMem(Buf);
closehandle(Opnpr);
البته منم چند تا تراینر ساختم که اگه از این تاپیک استقبال بشه سورسشونو میزارم
البته من یک سوال هم داشتم این که من میخوام مثلا مقدار پول رو تو یک بازی با استفاده از اسکرول بار کنترل کنم
نميدونم بايد چيکار کنم البته بايد مقدار اسکرول بار به هگزا دسيمال تبديل بشه که تو اين مشکل دارم
خوب هر عدد با تابع IntToHex به هگزا تبدیل می شه مشکل کجاست ؟؟؟
سورس یک ترینر رو هم ضمیمه کن !
راستی چطور آدرس مورد نظر برای تغییر مقادیر حافظه رو پیدا می کنید ؟؟
یا حق ...
با برنامه های مثل Tsearch یا ArtMoney میتونی آدرسشو پیدا کنی
فقط یک تایمر بزار تو برنامتکد:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 : TForm1;
Fentr : integer;
PrcID : integer;
ProID : integer;
Opnpr : integer;
Wrtpr : cardinal;
Buf : pchar;
NumberOfBytes : byte;
PokeValue : dword;
PokeAddress : dword;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 1;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (GetAsyncKeyState(VK_F1) > 0 and (GetAsyncKeyState(VK_CONTROL) > 0 then
begin
PokeAddress := $55C7E9;
PokeValue := $FF;
NumberOfBytes := 4;
Fentr := FindWindow(nil,'NFSC');
PrcID := GetWindowThreadProcessId(Fentr,@ProID);
Opnpr := OpenProcess(PROCESS_ALL_ACCESS,False,ProID);
GetMem(Buf,1);
Buf^ := Chr(PokeValue);
WriteProcessMemory(Opnpr, ptr(PokeAddress),Buf,NumberOfBytes,Wrtpr);
FreeMem(Buf);
closehandle(Opnpr);
end;
PokeAddress آدرسیه که میخوای روش کار کنی
PokeValue مقداریه که میخوای در آدرس قرار بدی
NumberOfBytes تعداد بایت ها
NFSC هم Process بازیه که برای کربن اینه و باید تعقیر بدیکد:Fentr := FindWindow(nil,'NFSC');