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 


How can I compare / filter out address from breakpoint

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
mordax
Expert Cheater
Reputation: 1

Joined: 16 Apr 2010
Posts: 121

PostPosted: Tue Feb 13, 2018 5:08 pm    Post subject: How can I compare / filter out address from breakpoint Reply with quote

I couldn't think of a better title so here goes

here's what i usually do in games to find something like ammo
- find the ammo address (simple inc / dec)
- right click > find out what writes to it (or accesses)
- use up some ammo and see what pops up

at this point i need a unique opcode that only accesses the ammo and nothing else, so what i do

- in the new opcodes window (the following opcodes accessed xxxxxx)
- I right click > check if found opcodes also access other addresses

at this point. 99% of games always have 1 opcode that accesses only ammo, while some access 2 - 8+.

so i use the one that accesses only ammo and i'm on my happy way, but today i came across with a game where all found opcodes access more than just 1 address.

How can I compare / filter out just the ammo? for example in some games if opcode accesses like 8+ addresses, then modifying that opcode would also give ammo to all the AI in the game, which I don't obviously want.

my scrip looks like this

Code:
[ENABLE]
aobscanmodule(ammo,game.exe,F3 41 2F 10 9B)
alloc(newmem,$100,"game.exe"+34666)

label(return)
alloc(_findammo,4)
registersymbol(_findammo)

newmem:
push rax
mov rax,_findammo
mov [rax],r14
pop rax

  movss xmm1,[r14+00000124]
  jmp return

ammo:
  jmp newmem
  nop
  nop
  nop
  nop
return:
registersymbol(ammo)

[DISABLE]

ammo:
  db F3 41 2F 10 9B
unregistersymbol(_findammo)
unregistersymbol(ammo)
dealloc(newmem)


and then all I do is enable the scrip and add address into my cheat list as a pointer.
base is _findammo and then offset 124
then once I shoot, address will display my current ammo and i can freeze it or add more and so on.

but if same opcode accesses all the AI ammo too, then it wont find my ammo but starts bouncing in between all the found ones.

Please only reply if you know what i'm talking about. if you have never used this method, don't bother to understand it.
I just need a way to add a compare into my script so that it only finds the player ammo. any ideas?

please only step by step examples. i'm not that good with coding. it took me long time to understand even this far.
i was told you can use dissect structure, that i should put player ammo and AI ammo addresses in there to compare. I know this, but how do i make my script compare those differences?
Back to top
View user's profile Send private message
OldCheatEngineUser
Whateven rank
Reputation: 20

Joined: 01 Feb 2016
Posts: 1587

PostPosted: Wed Feb 14, 2018 12:01 am    Post subject: Reply with quote

this means you havent completed tutorial step 9, anyway you can add and compare all addresses in dissect data / structures or spider structure. (or even registers which i prefer)
_________________
About Me;
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
Jul 26, 2020
STN wrote:
i am a sweetheart.
Back to top
View user's profile Send private message Visit poster's website
sjl002
Master Cheater
Reputation: 0

Joined: 31 Aug 2013
Posts: 305

PostPosted: Wed Feb 14, 2018 12:32 am    Post subject: Reply with quote

Yes.For finding compare address the best way is data structures and structure spider.
but if you want find script that helping to you for compare use from break point(break and trace).
you can find some tutorial in youtube. GameHackLab [RU] that they have best tutorial for compare.
this(name) is a one of the best tutorial from them:
20. Еще один метод отделения игрока от врага на общих инструкциях. Very Happy
Back to top
View user's profile Send private message
TheyCallMeTim13
Wiki Contributor
Reputation: 50

Joined: 24 Feb 2017
Posts: 976
Location: Pluto

PostPosted: Wed Feb 14, 2018 12:49 am    Post subject: Reply with quote

Like @OldCheatEngineUser said step 9 of the CE tutorial is a good place to start. But you can check the registries to see if there is some kind of ID, say like EAX is always 1 for you. Or you can use the "Dissect Data/Structure" tool or the "Structure Spider" just do multiple scan with the spider tool. Then you can use conditional breakpoints to see if you get what you want then just do similar compares in the script.

The other option I tend to use is find some opcode that only fires for the player and fires constantly (so like opcode for displaying on screen), this will give you a good pointer to use on the table and to compare to in the decreasing opcode.

_________________
Back to top
View user's profile Send private message Visit poster's website
mordax
Expert Cheater
Reputation: 1

Joined: 16 Apr 2010
Posts: 121

PostPosted: Tue Feb 20, 2018 12:44 am    Post subject: Reply with quote

sorry but none of this helps at all. it means absolutely nothing to me. how do i put any of that into a script? i know how to compare in dissect data, but how do i include this in a script?

it sounds like none of you actually knows either, please full examples only as i dont know how to write that into a script.

same with registers, so what if one of them is different, how do i include that into a script?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking 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