 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
vmv Cheater
Reputation: 0
Joined: 29 Jun 2013 Posts: 32
|
Posted: Fri Jul 05, 2013 10:04 am Post subject: |
|
|
So, i don't need to modify anything else beside the Bytes values in c++ code ?
I get this 15 bytes long : BYTE Bytes[15] = { 0xC7,0x87,0x34,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0xE8,0x25,0xDA,0x0A,0x00 };....
Changed this : mov [edi+00000334],eax to this : mov [edi+00000334],00000002, then took the code , write in the program....
But is crashing ofc
Tried with more addresses and less...nothing worked.
Changes should me made in here to ? | Code: | int newValue = MyMemory + 4;
WriteProcessMemory (hProc, (void*)MyMemory, &newValue, sizeof(newValue), NULL);
newValue = 0x25FF;
WriteProcessMemory (hProc, (void*)atkBase, &newValue, 2, NULL);
newValue = MyMemory;
WriteProcessMemory (hProc, (void*)(atkBase + 2), &newValue, 4, NULL); |
edit:
Btw, i told you before, if i try to change the original value there and put anything like jmp XXXXXXXX or jmp dword [XXXXXXXX], the game is crashing instantly.
So my first step is to copy original values on notepad, all opcodes+addresses, then go to Tools/Allocate Memory, and here i put this on the first free value : mov [edi+00000334],eax...then modify it for my needs.
Is this the right way?
|
|
| Back to top |
|
 |
vmv Cheater
Reputation: 0
Joined: 29 Jun 2013 Posts: 32
|
Posted: Mon Jul 08, 2013 9:40 am Post subject: |
|
|
Things are getting more complicated
All is working fine now and i added few new values for what i need,.
Now if i want to set a value before the code is written to memory, like cin >> value;...well it's kind of hard now with hex values and my value being inside an array :
BYTE byt[16] = { 0xC7,0x80,0xEA,0x04,0x00,0x00,0x14,0x05,0x00,0x00,0x8B,0xE5,0x5D,0xC2,0x08,0x00 };
The yellow value i need to modify it before the "WriteProcessMemory" command.
Any idea how to do that?
Thank you,
|
|
| Back to top |
|
 |
vmv Cheater
Reputation: 0
Joined: 29 Jun 2013 Posts: 32
|
Posted: Tue Jul 09, 2013 8:51 am Post subject: |
|
|
Finally,fixed
Thank you,
|
|
| Back to top |
|
 |
vmv Cheater
Reputation: 0
Joined: 29 Jun 2013 Posts: 32
|
|
| Back to top |
|
 |
TsTg Master Cheater
Reputation: 5
Joined: 12 Dec 2012 Posts: 340 Location: Somewhere....
|
Posted: Sat Jul 13, 2013 5:26 am Post subject: |
|
|
just add this to your code cave:
bytes are: B9 02 00 00 00
|
|
| Back to top |
|
 |
vmv Cheater
Reputation: 0
Joined: 29 Jun 2013 Posts: 32
|
Posted: Sat Jul 13, 2013 7:52 am Post subject: |
|
|
| TsTg wrote: | just add this to your code cave:
bytes are: B9 02 00 00 00 |
I was looking for other easy method to access that register without codecave, i mean without so many "WriteProcessMemory".
Something with _asm.
Other weird thing is that the code is activating only after i switch my weapon in game or use something that access the address.
The problem is ...i am using 2 weapons, and one of them uses low values, around 900, and when i switch on that ...i still have the higher value from the first weapon, 1200.
And my attack is very slow )
Big Edit :
Huh, i'm stuck again...i thought i can't make it alone by now...i was wrong
Can you please explain/comment what your function does exactly.... because i read this forum 1000 times and still getting stuck. Look at my code now, it's on 64bit, worked fine with only one address, but with second one it's crashes. I know i fixed the first one by luck now...
| Code: | DWORD atkBase = (DWORD)BaseAddress + 0x22E2D8; int atkSpd;
DWORD wepBase = (DWORD)BaseAddress + 0x1C4AB7; int wepSpd;
cout << "wepSpd:" << endl; cin >> wepSpd;
cout << "atkSpd:" << endl; cin >> atkSpd;
cout << "Press HOME to start the cheat" << endl;
BYTE wepByt[10] = { 0xC7,0x87,0x64,0x03,0x00,0x00,0x00,0x00,0x00,0x00 };
BYTE atkByt[30] = { 0xC7,0x83,0x1A,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x8B,0x74,0x24,0x40,
0x48,0x8B,0x6C,0x24,0x48,0x48,0x8B,0x5C,0x24,0x50,0x48,0x83,0xC4,0x58,0xC3 };
int tempW = wepSpd; for(int c=6; c<10; ++c) { wepByt[c] = (tempW & 0xFF); tempW = tempW >> 8; }
int tempA = atkSpd; for(int c=6; c<10; ++c) { atkByt[c] = (tempA & 0xFF); tempA = tempA >> 8; } // Write 8 bytes starting with 6th position
DWORD vMemory = (DWORD)VirtualAllocEx (hProc, NULL, 0x1000, MEM_COMMIT|MEM_RESERVE, 0x40); // This allocates Virtual Memory
while (1) { Sleep (1); if (GetAsyncKeyState(VK_HOME) & 1) {
//Not Working Side
WriteProcessMemory (hProc, (void*)(vMemory+ 4), &wepByt, 10, NULL);
newValue = vMemory+ 4; WriteProcessMemory (hProc, (void*)vMemory, &newValue, sizeof(newValue), NULL);
newValue = 0x25FF; WriteProcessMemory (hProc, (void*)wepBase, &newValue, 2, NULL);
newValue = vMemory; WriteProcessMemory (hProc, (void*)(wepBase+ 2), &newValue, 4, NULL);
//Working Side ...this is the first function that is working alone.
WriteProcessMemory (hProc, (void*)(vMemory+ 14), &atkByt, 30, NULL); // This modifies 30 bytes at Virtual Memory+ 14 ?! ([color=blue]can't uderstand this[/color]...)
newValue = vMemory+ 14; WriteProcessMemory (hProc, (void*)vMemory, &newValue, sizeof(newValue), NULL); // ([color=blue]can't uderstand this[/color]...)
newValue = 0x2524FF; WriteProcessMemory (hProc, (void*)atkBase, &newValue, 3, NULL); // This modifies 3 bytes on atkBase ?! ([color=blue]can't uderstand this[/color]...)
newValue = vMemory; WriteProcessMemory (hProc, (void*)(atkBase+ 3), &newValue, 4, NULL); // This modifies 4 bytes at atkBase+ 2 ?! ([color=blue]can't uderstand this[/color]...)
cout << "Cheat: ON" << endl; }
else { if (GetAsyncKeyState(VK_END) & 1) {.........
|
The Not Working Side is the new addition...i will post the picture of it.
Thank you,
| Description: |
|
| Filesize: |
18.71 KB |
| Viewed: |
4541 Time(s) |

|
|
|
| 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
|
|