View previous topic :: View next topic |
Author |
Message |
aikoncwd Grandmaster Cheater
Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Sat Feb 16, 2013 5:00 pm Post subject: I created a pointer game that I can't solve [SOLVED] |
|
|
Hi all
I acomplished all steps on CE Official Tutorial, so I know how to work with pointers and multi-level pointers. Well, I coded a program for myself to test my skill with Cheat Engine.
My problem is that I coded a program with pointers, so the "game" change the location of the pointer and you need to locate the real address, but I don't know how to complete my own "tutorial" (yes, this sounds stupid)
As you can see, the goal is just freeze the health at 5000 points. I can do this with the 'Change Value' button, but I can't do it if the pointer moves. Here is the link to download my program, I also attach my CE table
http://www.mediafire.com/?gowngu166029esx
----------------------
Can someone help me and try to solve my "tutorial". I need to learn
Description: |
|
 Download |
Filename: |
pointers.CT |
Filesize: |
99.17 KB |
Downloaded: |
1220 Time(s) |
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE
Last edited by aikoncwd on Sat Feb 16, 2013 6:16 pm; edited 1 time in total |
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25778 Location: The netherlands
|
Posted: Sat Feb 16, 2013 5:31 pm Post subject: |
|
|
your game is most likely too small to have lingering pointers.
Or worse, you've created your variables on the stack and never told any external dll the location of any stack element
Make sure that you have at least one global variable that points to your var
same as here: http://forum.cheatengine.org/viewtopic.php?p=5454523#5454523
_________________
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 |
|
 |
aikoncwd Grandmaster Cheater
Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Sat Feb 16, 2013 5:42 pm Post subject: |
|
|
Dark Byte wrote: | your game is most likely too small to have lingering pointers.
Or worse, you've created your variables on the stack and never told any external dll the location of any stack element
Make sure that you have at least one global variable that points to your var
same as here: http://forum.cheatengine.org/viewtopic.php?p=5454523#5454523 |
Thanks for your reply.
Well, this is coded under VB6, is not posible to work with pointers like C. I "invented" something like a pointer.
I have a array with X size (for example 100). Health value is stored in 1 random position of the array (I have a global variable with the position, so the program knows where the Health is, and can decresease, etc). When you push the 'Change Pointer + Value' button, the health is moved to another position of the array, and the position is stored at the global variable.
I know this is not a real pointer, but this is what I coded. So, how can I hack this program with CE? It is possible?
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Sat Feb 16, 2013 5:47 pm Post subject: |
|
|
Change your tutorial tool:
Define those classes
Code: | class class4
{
name
attribute1
health
attribute2
attribute3
attribute4
attribute5
};
class class3
{
name
attribute1
attribute2
attribute3
attribute4
attribute5
pointerToClass4Object
};
class class2
{
name
attribute1
pointerToClass3Object
attribute2
attribute3
attribute4
attribute5
};
class class1
{
name
attribute1
attribute2
attribute3
pointerToClass2Object
attribute4
attribute5
}; |
Class1object must be connected with class2object, Class2object with class3object, and so on.
You must have static pointer to class1object (we should have access to it with known "module+offset", i.e. "class1 * ptr;" outside main function)
And tool should work like this:
1) objects are created (and linked), static pointer points to class1object
2) "change value" and "reset value" should change class4object.health (decrease by 1 or set to 100)
3) "change pointer and value" should do this:
- temp = class4object.health
- destroy class4object, class3object, class2object, class1object, (you can destroy all of them)
- create new objects, link them. Update static pointer (so it would point to new class1object)
- class4AnotherObject.health = temp
- change health (class4AnotherObject.health)
_________________
Last edited by mgr.inz.Player on Sat Feb 16, 2013 6:03 pm; edited 2 times in total |
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25778 Location: The netherlands
|
Posted: Sat Feb 16, 2013 5:47 pm Post subject: |
|
|
you'll have to go with code injection if an array is used
Pointers without code injection do not work with array objects
_________________
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 |
|
 |
aikoncwd Grandmaster Cheater
Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Sat Feb 16, 2013 5:51 pm Post subject: |
|
|
I will try to code another "game" with this classes, your code looks more like a pointer than mine.
btw, How can I hack a program that moves the address inside a array? (like my program posted on #1)
Thank you
Quote: | you'll have to go with code injection if an array is used
Pointers without code injection do not work with array objects |
Ummmm, can someone post a working table with this example solved? I learn a lot if I can inspect a solved AA script
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
Back to top |
|
 |
TsTg Master Cheater
Reputation: 5
Joined: 12 Dec 2012 Posts: 340 Location: Somewhere....
|
|
Back to top |
|
 |
aikoncwd Grandmaster Cheater
Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Sat Feb 16, 2013 6:16 pm Post subject: |
|
|
TsTg wrote: | Here's how your app works,....
When you step on the line: mov [eax+ebx*4],edx
and pressing the 'Change Pointer+Value' pointer changes both the current pointer level for your address(eax) and the factor to muliply by 4 (ebx).
I found the pointer to both values of them, check the .CT file to understand . |
Thanks!! That's what I need
The program maybe uses 100% CPU because there is a timer that reads the value of the address and show on the programma every second. I use this to see in real-time when I'm using CE
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
Back to top |
|
 |
TsTg Master Cheater
Reputation: 5
Joined: 12 Dec 2012 Posts: 340 Location: Somewhere....
|
Posted: Sat Feb 16, 2013 6:26 pm Post subject: |
|
|
You're welcome, good luck .
|
|
Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Sat Feb 16, 2013 7:01 pm Post subject: |
|
|
There are pointers we can use:
[pointers.exe+00004010]+34 - index (it's not zero based, so we have to subtract 1)
[pointers.exe+00004010]+48 - arrayAddress
Lua code:
Code: | freezeHealth = createTimer(nil,true)
timer_setInterval(freezeHealth,10)
timer_onTimer(freezeHealth,
function ()
index = readInteger("[pointers.exe+00004010]+34") - 1
arrayAddress= readInteger("[pointers.exe+00004010]+48")
writeInteger(arrayAddress+4*index,5001)
end
) |
Disable decreasing when "change pointer and value" pressed
Code: | [ENABLE]
"pointers.exe"+27B9:
db 83 EA 00
[DISABLE]
"pointers.exe"+27B9:
db 83 EA 01 |
Disable decreasing when "change value" pressed:
Code: | [ENABLE]
"pointers.exe"+2594:
db 83 EA 00
[DISABLE]
"pointers.exe"+2594:
db 83 EA 01 |
_________________
|
|
Back to top |
|
 |
|