 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
Junlee How do I cheat?
Reputation: 0
Joined: 08 Dec 2008 Posts: 2
|
Posted: Fri Mar 19, 2010 6:49 pm Post subject: Getting application address |
|
|
well i thought I had my problem fixed, but a new on came up. This is probably a very simple question to answer, but I cannot figure it out, so here goes.
I have a multilevel pointer found using the pointer scanner, however the highest address it gives looks like this:
Game.exe+005AB190
My question is, how do i find the address of Game.exe? When I try to read from just 005AB190 alone, it fails. I am writing a script in AutoIt to read from this pointer, however I cannot figure out how to read the address of the process Game.exe, and I can't use MemoryRead(Game.exe+005AB190, $hwnd)
Thanks
|
|
| Back to top |
|
 |
zile Advanced Cheater
Reputation: 0
Joined: 11 Jul 2009 Posts: 75
|
Posted: Sat Mar 20, 2010 4:54 am Post subject: |
|
|
you can find it using MHS, by typing Game.exe at the expression evaluator box after attaching, or using CE... i forgot how lol, or to get address of Game.exe using c++, there is a function called GetProcAddress, not sure about AutoIT
so, first use MHS, attach, and type Game.exe at Expression Evaluator, it should give an address below. That is the base address for Game.exe, to get the pointer right away, type in "Game.exe+005AB190" in Expression Evaluator, that is the static address storing the address you want (pointer). So copy this static address and..
MemoryRead(-paste-, $hwnd)
and that should be it.
*the base of game.exe is usually 0x00400000, but it might be different for yours.*
|
|
| Back to top |
|
 |
Guy Expert Cheater
Reputation: 0
Joined: 30 May 2009 Posts: 187
|
Posted: Sat Mar 20, 2010 10:24 am Post subject: |
|
|
If you're on Vista or 7, the base will often be relocated, therefore, it should be done at runtime, like so:
| Code: |
GetModuleHandle("Game.exe") + 0x005AB190
|
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 472
Joined: 09 May 2003 Posts: 25890 Location: The netherlands
|
Posted: Sat Mar 20, 2010 12:24 pm Post subject: |
|
|
In cheat engine you find it by just going to any address, or in the address field and just type game.exe , or game.exe+5ab190
anyhow, if it's not a dll but a separate process, then use toolhelp32snapshot to get a modulelist and find the module base there
And seeing autoit, no idea how that handles that. But you can pretty much assume the base address of the .exe is always the same, unless the game explicitly has set in it's header to have a different base and you're running vista or later
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
Junlee How do I cheat?
Reputation: 0
Joined: 08 Dec 2008 Posts: 2
|
Posted: Sat Mar 20, 2010 8:53 pm Post subject: |
|
|
Thanks for all the replies. I've decided that I am going to go ahead and try to write the bot in C++ rather than Autoit now (first time trying anything like this in C++, will be a learning experience), so it should be a lot more reliable and efficient . I will give all of your solutions a try, I believe that it is always good to know multiple solutions to a problem, so thanks again.
Also, sort of an off topic question but since I am new to making hacks using C++, I figure I might as well ask the experts. Would it be in my best interest to learn windows API programming in C++? Currently I only know how to make object oriented console apps. Would it also be good to learn some assembly for this type of a program? I have never personally used assembly (except when trying some Ollydb reversing tutorials), but I've heard that it can be more efficient than actual C code for some procedures.
Thanks again.
EDIT:
| Quote: | If you're on Vista or 7, the base will often be relocated, therefore, it should be done at runtime, like so:
Code:
GetModuleHandle("Game.exe") + 0x005AB190 |
That doesn't work because Game.exe isn't loaded into my executable, so it has no address that can be found using GetModuleHandle(). I found out that I had to use Module32First() to find it.
|
|
| 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
|
|