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 


Help finding address
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 12:25 am    Post subject: Help finding address Reply with quote

I am very new to this. I am trying to find the address to where a script the game is running. The part I am trying to change is below. If I put value type to string and search for text I find nothing. The script changes it to true or false in the game.

How would I search for this address?


Map = true,
Map = False,
Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Thu Aug 04, 2016 1:40 am    Post subject: Reply with quote

did you try unicode?
Back to top
View user's profile Send private message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 11:36 am    Post subject: Reply with quote

Yes, I did.

Anything else to search for?
Back to top
View user's profile Send private message
Zanzer
I post too much
Reputation: 126

Joined: 09 Jun 2013
Posts: 3278

PostPosted: Thu Aug 04, 2016 12:06 pm    Post subject: Reply with quote

Map = true
Map =true
Map= true
Map=true

What makes you think this string is even in there?
Back to top
View user's profile Send private message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 12:37 pm    Post subject: Reply with quote

I found the address but seems it changes everytime game is started. I found it using exact valules. I figured true is 1 and false is 0 and searched them until I narrowed it down to 9. All 9 changed evertime I enabled my map. Changing them all to 0 made my map disappear!

This worked but when I restarted my game the address all had values way off of the original scan. I changed the values to 1 and 0 but did not do anything so I am guessing I would have to start my search all over everytime my game starts. How does a guy avoid this?

I tried tutorial 4 and 5 but when the debugger runs my game crashes
Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Thu Aug 04, 2016 1:08 pm    Post subject: Reply with quote

Find them again, when you find them, right click and "see what accesses this address" one of hte instructions there will always access your map, you can simply set it to use 0 or 1 depending on whether you want the map or not.
Back to top
View user's profile Send private message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 3:05 pm    Post subject: Reply with quote

I found one instruction. How do I change it?

Is it in the Show disassembler/memory viewer/comment?
Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Thu Aug 04, 2016 3:09 pm    Post subject: Reply with quote

Show in dissasembler, then Auto Assemble, then AOB Template, there are guides if you need more help.
Back to top
View user's profile Send private message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 3:32 pm    Post subject: Reply with quote

Thank you for you help cooleko. This is quickly getting over my knowledge but I feel I am close.

Below is the code. Its not simple enough for me lol

Do I simply put

Map = true after newmem: ?

alloc(newmem,2048,"Visualizer.dll"+5A4FE)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
cmp dword ptr [rcx+000000BC],00

exit:
jmp returnhere

"Visualizer.dll"+5A4FE:
jmp newmem
nop
nop
returnhere:



I also made a pointer to the address but not sure how to use the pointer. Do I change pointers value or is the pointers value a way to find the address? The pointers value does not match the value of the address its pointing to.


Last edited by taco1 on Thu Aug 04, 2016 4:06 pm; edited 1 time in total
Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Thu Aug 04, 2016 4:04 pm    Post subject: Reply with quote

You need to do the AOB Template for best success IMO (without knowing any facts)

Add to the top:

Code:
globalalloc(bMap,1)
....
newmem: //this is allocated memory, you have read,write,execute access
cmp dword ptr [bMap],00
....


In the Table, as a child to the script, add an address with the address: bMap
Set it to 0 for map, 1 for no map.

Alternatively, you could:
Code:
globalalloc(bMap,4)
....
newmem: //this is allocated memory, you have read,write,execute access
mov [bMap], rcx
cmp dword ptr [rcx+bc],00
....


In the Table, as a child to the script, add a pointer with the address: bMap and offset BC

Set it to 0 for map, 1 for no map.
Back to top
View user's profile Send private message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 7:09 pm    Post subject: Reply with quote

Now ya lost me. Maybe we should try with pointers instead of scripts. When I try to make a pointer I fail though. When I do the tutorial on pointers my value is differnt then the starting value so I think I am doing something wrong or there is multple pointers.

In the scriopt above Im not sure of the address though as it always changes. Is the address this? rcx+000000BC. I will post some pics of what I have at the moment.



hck1.jpg
 Description:
 Filesize:  533.73 KB
 Viewed:  12914 Time(s)

hck1.jpg


Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Thu Aug 04, 2016 7:23 pm    Post subject: Reply with quote

You are 30 seconds form having a working script using the AOB template, I'd recommend you stick with that method. I'll let someone else assist you with pointers if you want to go that route.
Back to top
View user's profile Send private message
Zanzer
I post too much
Reputation: 126

Joined: 09 Jun 2013
Posts: 3278

PostPosted: Thu Aug 04, 2016 7:41 pm    Post subject: Reply with quote

Right-click that instruction and find out what addresses it accesses.
This will let you know if it is touching more than just the one address you are after.
Otherwise, you can copy the following and press CTRL-V to paste it into your table.
Code:
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Retrieve Address"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,2048,"Visualizer.dll"+5A4FE)
label(returnhere)
label(originalcode)
label(exit)
label(myvar)

newmem:
mov rax,myvar
mov [rax],rcx

originalcode:
cmp dword ptr [rcx+000000BC],00

exit:
jmp returnhere

myvar:
  dq 0

"Visualizer.dll"+5A4FE:
jmp newmem
nop
nop
returnhere:

registersymbol(myvar)

[DISABLE]
dealloc(newmem)
"Visualizer.dll"+5A4FE:
db 83 B9 BC 00 00 00 00
unregistersymbol(myvar)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"Address"</Description>
          <VariableType>4 Bytes</VariableType>
          <Address>myvar</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Back to top
View user's profile Send private message
taco1
Newbie cheater
Reputation: 0

Joined: 04 Aug 2016
Posts: 16

PostPosted: Thu Aug 04, 2016 8:33 pm    Post subject: Reply with quote

ok, Ill stick with the script method. Ill give a shot.


Ok so I tried the scipt above but it seems its not finding the address maybe? After I restarted and loaded my .ct file the script did not work. I pretty sure it worked before I restarted.

Are these the addresses?



hck2.jpg
 Description:
 Filesize:  128.34 KB
 Viewed:  12845 Time(s)

hck2.jpg


Back to top
View user's profile Send private message
cooleko
Grandmaster Cheater
Reputation: 11

Joined: 04 May 2016
Posts: 717

PostPosted: Thu Aug 04, 2016 11:56 pm    Post subject: Reply with quote

Ok, Zanzer and I are looking at this problem differently. So I wanted to clarify what it is you are actually trying to do before I assisted you further.

I think you have a value in game 0 for map, 1 for no map, that you want to know the address of without searching every time you reopen the game.

You want to be able to access this value using a pointer.

If that understanding is correct, then Zanzer's example will not provide that result (unless there is something i missed).

If my assumptions are true, you need to right click the address you found in the table and select "See what accesses this address."
I'm fairly certain that you successfully accomplished this when you identified "cmp dword ptr [rcx+000000BC],00"

You then select that address and either right click "Show in dissassembler" or select it from the button on the right of the window with the instruction highlighted.

In memory view (the dissassembler), while the instruction is highlighted, you scroll up to tolls and select auto assemble.
I'm fairly certain you accomplished this as well, because you posted the code injection template. However, I would prefer you select AOB Template as I'm not confident in the reliability of the code injection template working after a restart. This is mostly due to my preference for AOB and the advantages i perceive to be associated with it.

In the AOB template, simply add the lines of code i mention in my previous post. "globalalloc(bMap,4)" at the top with the other alloc and label instructions and "mov [bMap], rcx" and "cmp dword ptr [rcx+bc],00"
as the code.

You then go to file, assign to cheat table.

In the cheat table, you simply add a pointer "manually add address", select pointer type. In the bottom slot, put bMap, in the offset slot put BC, in type select byte

When you activate the script (and it is run once by the game) the pointer will be active with the correct address and state of the map, which you can alter at your convenience.

Zanzer pointed out that you should make sure that the instruction only accesses your one address and not others, but i tend to leave that until the user has made it far enough to see if it is a problem because it adds extra steps to an extremely simple, but new to the user, procedure.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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