 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
wolfguardiann Newbie cheater
Reputation: 0
Joined: 09 Mar 2011 Posts: 13
|
Posted: Thu Mar 10, 2011 1:24 pm Post subject: |
|
|
| AhMunRa wrote: | | Code: | BOOL WINAPI ReadProcessMemory(
__in HANDLE hProcess,
__in LPCVOID lpBaseAddress,
__out LPVOID lpBuffer,
__in SIZE_T nSize,
__out SIZE_T *lpNumberOfBytesRead
);
| hProcess would be the handle of the process you are working with
lpBaseAddress is the address you are reading from your health and mana
lpBuffer is pointer to the buffer recieving
nSize is the size to read
lpNumberOfBytesRead into the buffer
So an example would be
| Code: |
HWND hwnd = FindWindow("Pinball",NULL);
if (hwnd)
{
DWORD proc_id;
GetWindowThreadProcessId(hwnd, &proc_id);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);
ReadProcessMemory(hProcess, (void *) lpAddress, buf, len, 0);
CloseHandle(hProcess);
}
|
|
got it ! , but , just for making sure, can u use the base addres i gave up there for pinball? just to make sure that, what im thinking is true , if im not abusing too much of you ? its just to see if what im thinking is true
think its the helath and mana , but use the adress of the pinball there , ull be needing health and mana , but i gave u 1 adress , so , use 1 , and when using the other , put the same but increment somethign like ( the mana adress<< not the HP )
EDIT:
look i found a example
----------------------------------------------------------------------------------------
#include<windows.h>
#include<stdio.h>
#include <conio.h>
#include <iostream> // for cout, i'd preffer cout than printf, a little bit slower but more comfortable
int main(void) {
DWORD dwID;
HWND hwnd = FindWindow("3D Pinball for Windows - Space Cadet",NULL);
HANDLE hProcess;
if (hwnd)
{
DWORD proc_id;
GetWindowThreadProcessId(hwnd, &proc_id);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);
}
if(hProcess == NULL) //it isn't opened
{
std::cout << "OPENPROCESS FAILED";
return 0; //exit program
}
while(true) //infinite loop, you can break program execution only by forcing it to terminate (Alt+F4, Ctrl+C and so on)
{
ReadProcessMemory(hProcess, (void *) 0x01020F95, &dwID, sizeof(DWORD), 0);
printf("Score: %d\n",dwID & 0x000FFFF);
Sleep(1000); //pauses current thread for 1000ms
}
CloseHandle(hProcess); //won't be executed anyway, but always good to remember about that
}
-------------------------------------------------------------------------------------
thats what ii was needing , it works but, it just show
"
Score:2
Score:2
Score:2
"
it doesnt exactly show my score , know whati m saying?
what do i do to this work perfectly?
|
|
| Back to top |
|
 |
AhMunRa Grandmaster Cheater Supreme
Reputation: 27
Joined: 06 Aug 2010 Posts: 1117
|
Posted: Thu Mar 10, 2011 8:25 pm Post subject: |
|
|
You may have the wrong address if it is returning just 2 and your score is higher and changing.
_________________
<Wiccaan> Bah that was supposed to say 'not saying its dead' lol. Fixing >.> |
|
| Back to top |
|
 |
educofu Expert Cheater
Reputation: 3
Joined: 21 Aug 2009 Posts: 171 Location: Brazil,MG,OP
|
Posted: Fri Mar 11, 2011 12:22 pm Post subject: |
|
|
or u can just use my header:
http://forum.cheatengine.org/viewtopic.php?p=5210222
made to make things easier.
_________________
"I finally started thinking outside of the box, only to find myself in a larger box." |
|
| Back to top |
|
 |
wolfguardiann Newbie cheater
Reputation: 0
Joined: 09 Mar 2011 Posts: 13
|
Posted: Fri Mar 11, 2011 4:08 pm Post subject: |
|
|
| AhMunRa wrote: | | You may have the wrong address if it is returning just 2 and your score is higher and changing. |
the address i wanna put down there almost last line is the Green adresses , right ? static addresses?
"ReadProcessMemory(hProcess, (void *) 0x01020F95, &dwID, sizeof(DWORD), 0); "
put here i mean 0x01020f95
put the GREEN address here /\?
|
|
| Back to top |
|
 |
AhMunRa Grandmaster Cheater Supreme
Reputation: 27
Joined: 06 Aug 2010 Posts: 1117
|
Posted: Fri Mar 11, 2011 4:22 pm Post subject: |
|
|
Yes that should be a static address. Does this address change when you run the application? When your score changes does this address in cheat engine change with your score? Or does the address change? If you save your CE table and close the game then reopen it is the address the same?
_________________
<Wiccaan> Bah that was supposed to say 'not saying its dead' lol. Fixing >.> |
|
| Back to top |
|
 |
wolfguardiann Newbie cheater
Reputation: 0
Joined: 09 Mar 2011 Posts: 13
|
Posted: Fri Mar 11, 2011 5:40 pm Post subject: |
|
|
| AhMunRa wrote: | | Yes that should be a static address. Does this address change when you run the application? When your score changes does this address in cheat engine change with your score? Or does the address change? If you save your CE table and close the game then reopen it is the address the same? |
sometimes yes , someimes not , it cahnger in very rare ocasion , but , when i search sometimes, it doesnt show, when i unclick the Fast scan option , it finds , when i click find out what acess this it points to the same addres, and its even green :S what odi do?
|
|
| Back to top |
|
 |
hcavolsdsadgadsg I'm a spammer
Reputation: 26
Joined: 11 Jun 2007 Posts: 5801
|
Posted: Fri Mar 11, 2011 6:04 pm Post subject: |
|
|
the dreaded pinball trainer scenario, i've seen it too many times
it's a pointer afaik, the address will change. do the pointer tutorial with CE.
|
|
| Back to top |
|
 |
wolfguardiann Newbie cheater
Reputation: 0
Joined: 09 Mar 2011 Posts: 13
|
Posted: Fri Mar 11, 2011 6:20 pm Post subject: |
|
|
| slovach wrote: | the dreaded pinball trainer scenario, i've seen it too many times
it's a pointer afaik, the address will change. do the pointer tutorial with CE. |
i did slovach , i did , i did all steps , i swear , hahaha
i just made this , using the codes there , i succesefully //modifyed the value of Minesweep, i did it succesefully, nice, im learning slowly , but im ...
Nice, but , what i want now is , instead of Changing a value like changing on CE , i want to Printf the Value on CMD , like
my score is 0 on pinball:
it was going to show there
"Score:0"
I got some points , its 2500 on Pinball score;
On CMD was needing to be shown:
"Score:2500"
and so on , to modify i did , but , to printf the adress value is harder to me... what do i do ? it only works if i find the static pointer ? or it doesnt?
|
|
| Back to top |
|
 |
AhMunRa Grandmaster Cheater Supreme
Reputation: 27
Joined: 06 Aug 2010 Posts: 1117
|
Posted: Fri Mar 11, 2011 11:05 pm Post subject: |
|
|
That example code you posted should do what you what, I think the address is just off.
_________________
<Wiccaan> Bah that was supposed to say 'not saying its dead' lol. Fixing >.> |
|
| Back to top |
|
 |
wolfguardiann Newbie cheater
Reputation: 0
Joined: 09 Mar 2011 Posts: 13
|
Posted: Sat Mar 12, 2011 11:10 am Post subject: |
|
|
| AhMunRa wrote: | | That example code you posted should do what you what, I think the address is just off. |
it isnt cuz , i found the static pointer on Ppinball , and putted it there , compiled , and still showing
Score:2
..
...
....
im start to think that the problem is on printf on the last lines.... what do u think?
|
|
| Back to top |
|
 |
hcavolsdsadgadsg I'm a spammer
Reputation: 26
Joined: 11 Jun 2007 Posts: 5801
|
Posted: Sat Mar 12, 2011 4:59 pm Post subject: |
|
|
| read the value at the static address, add the offset to that if necessary, repeat if needed, use final result, win.
|
|
| Back to top |
|
 |
wolfguardiann Newbie cheater
Reputation: 0
Joined: 09 Mar 2011 Posts: 13
|
Posted: Sat Mar 12, 2011 9:28 pm Post subject: |
|
|
im currently having problems to find static points , like , for the first time
Example in steps of what i do and the problem it self.
1-find the Score number
right now the number is 0
Scan->exact value 0
FAST SCAN ENABLED(DURING ALL THIS STEPS)
do this until u find your first address.
2.Find the address
ok i found the address
Right click -> what writes to this address.
Showed anything . <<WEIRD , ok.
right click -> What Acceses to this address.
Showed something , nice
"probable pointer ... is 0100EBAC" < 0100EBAC is an example means im "creating" this address my self on head.
3.FINAL STEP
Use the probable address to find the next address that can possible be a STATIC POINTER (GREEN ADDRESS).
click add it to the table down there.
[problem 1:]
Right click -> what Acesses this addres .
"probable pointer ... is 0100EBAC"
WHAT? iTS the same????
[/problem 1:]
ok , this is the problem im confronting , it says that its the same value , so , im like fuuuuuu..... idk what to do.
[problem 2:]
in some games , u cant even try to find the static, it stops on step 1 in wich , u type the , like , 100[an random health value]
first scan -> ....
some one shot me , my health drecreased to 95...
Scan-> 95
address 0x0111000 (yes another random address , just to make u guys understand)
ok found the address , click add to table .
Right click -> what writes to it .
[problem 2:]
"probable pointer ... is 0x0111000 "
[/problem 2:]
it points to it self , meaning , the address change POINTER every dang value change this is equal -> ull never find the pointer , sorry.
so , this is the prologue , and both problems , what do i do to solve the problems?
|
|
| Back to top |
|
 |
educofu Expert Cheater
Reputation: 3
Joined: 21 Aug 2009 Posts: 171 Location: Brazil,MG,OP
|
Posted: Mon Mar 14, 2011 1:20 pm Post subject: |
|
|
@wolfguardiann:
try to find the pointer address manualy.
if you dont know how pointers works, i recommend reading some topics about it.
manual (no debug) example:
health address = 0x00100200
1. New Scan > Value Between> 0x00100000 and 0x00100200;
2. Add the addresses found to the list;
3. Open Calculator in HEX mode for easier offset finding. example:
3-1. You found the address 0x004B52C23 with value 0x001001CA;
3-2. 0x00100200 - 0x001001CA = 0x36;
3-3. 0x36 is the offset for address 0x004B52C23 to point to 0x00100200;
3-4. Change 0x004B52C23 to "pointer" and add the offset 0x36;
4. Do that for all addresses found.
you will find pointers with the offset up to +0x200
if you think the offset is less than 0x200, than the pointer address will be between the address found.
if its a multi level pointer, do the same steps for each pointer address.
i usually use this method for games with debugging protection to find pointers, but since DarkByte released the pointer scan it got useless.
good luck!
--
also, i really recommend using my header to create C++ trainers.
_________________
"I finally started thinking outside of the box, only to find myself in a larger box." |
|
| 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
|
|