|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Biribahiba How do I cheat? Reputation: 0
Joined: 09 Jan 2011 Posts: 8
|
Posted: Sun Oct 02, 2011 11:44 am Post subject: Not Responding |
|
|
Good afternoon guys '-'
Well, today, I was trying (still am) to hack a new game that my friend showed me.
Ok, I found the addresses, the pointers and everything, however, everytime I freeze the value, the games crash.
Any Idea why or how to solve it? I'm 100% sure that the pointers are correct.
Thanks guys. |
|
Back to top |
|
|
Geri Moderator Reputation: 111
Joined: 05 Feb 2010 Posts: 5636
|
Posted: Sun Oct 02, 2011 12:14 pm Post subject: |
|
|
Is it a single player game? If not, you may be detected. _________________
|
|
Back to top |
|
|
Biribahiba How do I cheat? Reputation: 0
Joined: 09 Jan 2011 Posts: 8
|
Posted: Sun Oct 02, 2011 12:37 pm Post subject: |
|
|
yeah, single player |
|
Back to top |
|
|
Geri Moderator Reputation: 111
Joined: 05 Feb 2010 Posts: 5636
|
Posted: Sun Oct 02, 2011 1:13 pm Post subject: |
|
|
Post the name of the game and maybe someone will be familiar with it. _________________
|
|
Back to top |
|
|
Biribahiba How do I cheat? Reputation: 0
Joined: 09 Jan 2011 Posts: 8
|
Posted: Sun Oct 02, 2011 6:56 pm Post subject: |
|
|
Ok, solve it by using delphi to write the values..
But now I have another problem when I try to write on float values..
Code: |
var
Address := $0018CC28;
NewValue := strtoint(sedit1.text);
Data := 4;
begin
if GetID(process,Pid) then begin
Pidhandle := OpenProcess(PROCESS_ALL_ACCESS,False,Pid);
If WriteProcessMemory(Pidhandle, Pointer(Psingle(Pdword(Address)^+$68C)), psingle(@NewValue), Data, Written) then begin
showmessage('OK')
end
else begin
showmessage('ERROR') ;
closehandle(Pidhandle) |
it just gives 'error' message..
could someone help please?
>.< |
|
Back to top |
|
|
unknown_k Expert Cheater Reputation: 5
Joined: 24 May 2011 Posts: 211
|
Posted: Mon Oct 03, 2011 3:09 am Post subject: |
|
|
This might work. (with FPC + Lazarus, no clue about Delphi)
If there's any syntax error or you have better solution let me know.
Code: | var
GameWnd: HWND=0;
GamePID: Integer=0;
GameHandle: Integer=0;
OriginalProtectionMode: Integer=0;
BaseAddress: Integer=$0018CC28;
CheatAddress: Integer=$0;
NewValue: Single=999.0;
NewValueTypeSize: Integer;
begin
GameWnd := FindWindow(Nil, 'YourTargetGameTitle');
if GameWnd <> 0 then begin
GetWindowThreadProcessId(GameWnd, @GamePID);
GameHandle := OpenProcess(PROCESS_ALL_ACCESS, False, GamePID);
ReadProcessMemory(GameHandle, Pointer(BaseAddress), @CheatAddress, 4, Nil);
CheatAddress += $068C;
NewValueTypeSize := SizeOf(Single);
VirtualProtectEx(GameHandle, Pointer(CheatAddress), NewValueTypeSize, PROCESS_VM_OPERATION+PROCESS_VM_WRITE, @OriginalProtectionMode);
WriteProcessMemory(GameHandle, Pointer(CheatAddress), @NewValue, NewValueTypeSize, Nil);
VirtualProtectEx(GameHandle, Pointer(CheatAddress), NewValueTypeSize, OriginalProtectionMode, Nil);
end
else
ShowMessage('Start the game!');
end; |
|
|
Back to top |
|
|
Biribahiba How do I cheat? Reputation: 0
Joined: 09 Jan 2011 Posts: 8
|
Posted: Mon Oct 03, 2011 12:41 pm Post subject: |
|
|
haha, yeah, it had a few mistakes, but no problem.
the code is like this:
Code: | var
GameWnd: HWND;
GamePID: Integer;
GameHandle: Integer;
OriginalProtectionMode: Integer;
BaseAddress: Integer;
CheatAddress: Integer;
NewValue: Single;
NewValueTypeSize,Data: Integer;
begin
GameWnd:=0;
GamePID:=0;
GameHandle:=0;
OriginalProtectionMode:=0;
BaseAddress:= $0018CC28;
CheatAddress:= $0;
NewValue:=999.0;
GameWnd := FindWindow(Nil, 'YourTargetGameTitle');
if GameWnd <> 0 then begin
GetWindowThreadProcessId(GameWnd, @GamePID);
GameHandle := OpenProcess(PROCESS_ALL_ACCESS, False, GamePID);
CheatAddress := $068C;
NewValueTypeSize := SizeOf(Single);
ReadProcessMemory(GameHandle, Pointer(BaseAddress), @CheatAddress, 4, Nil);
VirtualProtectEx(GameHandle, Pointer(CheatAddress), NewValueTypeSize, PROCESS_VM_OPERATION+PROCESS_VM_WRITE, @OriginalProtectionMode);
WriteProcessMemory(GameHandle, Pointer(CheatAddress), @NewValue, NewValueTypeSize, Nil);
VirtualProtectEx(GameHandle, Pointer(CheatAddress), NewValueTypeSize, OriginalProtectionMode, Nil);
end
else
ShowMessage('Start the game!');
end; |
when i compile, it shows the following message:
"Types of actual and formal var parameters must be identical"
how do i solve this? |
|
Back to top |
|
|
unknown_k Expert Cheater Reputation: 5
Joined: 24 May 2011 Posts: 211
|
Posted: Mon Oct 03, 2011 9:16 pm Post subject: |
|
|
Biribahiba wrote: | haha, yeah, it had a few mistakes, but no problem.
...
when i compile, it shows the following message:
"Types of actual and formal var parameters must be identical"
how do i solve this? |
Maybe you didn't read the whole. I don't know about Delphi. It worked under FPC+Lazarus.
And actually I doubt that but initialize var in the first place isn't possible? in Delphi?
As I worried, you did it wrong in here. It's C operator. So the code should be
either this
Code: | CheatAddress += $068C; |
or this
Code: | CheatAddress := CheatAddress + $068C; |
not this
Code: | CheatAddress := $068C; |
Maybe this also not possible in Delphi?
So this is not correct code at all.
Code: | CheatAddress := $068C;
NewValueTypeSize := SizeOf(Single);
ReadProcessMemory(GameHandle, Pointer(BaseAddress), @CheatAddress, 4, Nil); |
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|