Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


I created a pointer game that I can't solve [SOLVED]

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Sat Feb 16, 2013 5:00 pm    Post subject: I created a pointer game that I can't solve [SOLVED] Reply with quote

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 Razz



pointers.CT
 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
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25778
Location: The netherlands

PostPosted: Sat Feb 16, 2013 5:31 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Sat Feb 16, 2013 5:42 pm    Post subject: Reply with quote

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
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Sat Feb 16, 2013 5:47 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25778
Location: The netherlands

PostPosted: Sat Feb 16, 2013 5:47 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Sat Feb 16, 2013 5:51 pm    Post subject: Reply with quote

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
View user's profile Send private message
TsTg
Master Cheater
Reputation: 5

Joined: 12 Dec 2012
Posts: 340
Location: Somewhere....

PostPosted: Sat Feb 16, 2013 6:08 pm    Post subject: This post has 1 review(s) Reply with quote

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



pointers_HACKED.CT
 Description:

Download
 Filename:  pointers_HACKED.CT
 Filesize:  198.09 KB
 Downloaded:  1211 Time(s)

Back to top
View user's profile Send private message
aikoncwd
Grandmaster Cheater
Reputation: 23

Joined: 21 Dec 2012
Posts: 591
Location: Spain (Barcelona)

PostPosted: Sat Feb 16, 2013 6:16 pm    Post subject: Reply with quote

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


Thanks!! That's what I need Very Happy

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

_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE
Back to top
View user's profile Send private message
TsTg
Master Cheater
Reputation: 5

Joined: 12 Dec 2012
Posts: 340
Location: Somewhere....

PostPosted: Sat Feb 16, 2013 6:26 pm    Post subject: Reply with quote

You're welcome, good luck Smile .
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Sat Feb 16, 2013 7:01 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites