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 


Can't find addresses?
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
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Fri Jan 03, 2014 11:29 am    Post subject: Can't find addresses? Reply with quote

Hi, I'm new here.
I'm a beginner to Cheat Engine. And I came across a game I cannot hack. It's called Call of Bieber (I'm not a hater ok, just a normal player Razz).
I tried hacking the money value through exact value and multiplied by 8 but it didn't work. Help please? I hope to learn by fixing this. ^_^

_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
Rydian
Grandmaster Cheater Supreme
Reputation: 31

Joined: 17 Sep 2012
Posts: 1358

PostPosted: Fri Jan 03, 2014 3:29 pm    Post subject: Reply with quote

1 - Make sure you're attaching to the right process. You need to attach to flash or the process of your browser that controls the flash (not just the browser/tab in general). If you're on Firefox attach to flash, if you're on chrome hit SHIFT+Escape and then look for the process ID of flash, conver that to hex, and then attach to the chrome.exe process with that hex value.

2 - Do an unknown initial value search and then search by increased/decreased and changed/unchanged.

_________________
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Fri Jan 03, 2014 11:33 pm    Post subject: Reply with quote

Ohey Rydian, never thought you'd be in here. Razz
I think I got the right process because the speedhack works.
And I'll try the unknown initial value test. Thanks!

_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
Rydian
Grandmaster Cheater Supreme
Reputation: 31

Joined: 17 Sep 2012
Posts: 1358

PostPosted: Sat Jan 04, 2014 9:20 am    Post subject: Reply with quote

Oh hey, I didn't even look at the name. ^^;

Yeah old flash stuff just kept the value 8x, but new flash stuff tends to keep all the values as double, and can apply all sorts of changes to them, so unknown is the best search.

_________________
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Sun Jan 05, 2014 1:03 am    Post subject: Reply with quote

I just switched to another game for the time being and I found the address I need. Could I ask you about how I get the static address of it? I tried many tutorials and most don't get the type of results I get. So I got the address for Health, I choose the option find out what this address writes to, get hit, an address pops up and I double click it. But the confusing part starts there. There's a line highlighted in red, first a set of numbers, then "mov [ebp+eax+00],ebx. And a sentance saying the value of the address is probably "EAX Code". Can you tell me what should I do from there?
_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
Rydian
Grandmaster Cheater Supreme
Reputation: 31

Joined: 17 Sep 2012
Posts: 1358

PostPosted: Sun Jan 05, 2014 7:56 am    Post subject: Reply with quote

Finding static values or pointers when it comes to stuff that's run through an updated interpreter (flash, java, browser, etc.) is an exercise in futility, as any sort of change or update in the system will render it broken (especially with how often flash and such update).

If the game has a non-browser version, those are sometimes ported to something stable (like VVVVVV being ported) or at least run in their own non-updating interpreter (like The Binding of Isaac), in which case you'll have a much better time messing with them.

Nowadays, with how deep pointers go and how newer engines and scripting languages are used, it's actually recommend to just use the pointer scanner option when right-clicking something. It's sort of like doing a search for a value, except you search for and then filter out pointer paths. It can be a little annoying with how long the initial scan can take depending on how much RAM the game uses, but it's overall less work and will often find stuff you won't find using the traditional method.

_________________
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Mon Jan 06, 2014 12:14 am    Post subject: Reply with quote

Oh okay. I got the pointers through a pointer scan. ^_^
Now I'm stuck in Code Injection. The game I emulate (Ninja Gaiden NES), always crashes when I inject a code.

_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
Rydian
Grandmaster Cheater Supreme
Reputation: 31

Joined: 17 Sep 2012
Posts: 1358

PostPosted: Mon Jan 06, 2014 3:17 am    Post subject: Reply with quote

If you're using an emulator, in almost every case the code you're editing will be the emulator's. For simple address freezing, most emulators have a cheat search function, and most console games (up to the N64/PSX era or even a bit later) still used static addresses. However if you want to edit the game's code, then you'll likely have to go more basic and use an emulator that has debugging tools like CE has and make some PAR/GS codes for it.

I actually made a thread on GBATemp about this sort of thing.
http://gbatemp.net/threads/emulator-debugging-cheat-mod-creation.344894/

_________________
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Mon Jan 06, 2014 8:06 am    Post subject: Reply with quote

Thanks for the replies, I don't simply understand debugging. And I don't want to use emulator cheats, I want to learn more out of this. So if I can use CE for emulators, that would be great. So is that link a Debugging tutorial?
_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Jan 06, 2014 1:59 pm    Post subject: Reply with quote

I made a table for this game some time ago, but have since removed it.

What is it you are trying to do, exactly?
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Tue Jan 07, 2014 4:18 am    Post subject: Reply with quote

What game exactly are you talking about? Well I'm talking about another game not which I mentioned in the OP, but if you're talking about that, I just can't find the addresses. For the NES Emulator game, I want to inject a code into ninja gaiden for health to increase by 1 but it always freezes. I don't understand code injection at all, just the basics in the tutorial.exe.
_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue Jan 07, 2014 4:06 pm    Post subject: Reply with quote

1. Ninja Gaiden.
2. The game freezes because the instruction that you are using for your injection point is also accessing other addresses and you haven't properly filtered them out.
3. Don't add 1 to your health because the health will eventually decrease to 0 (at around byte 130) before it increases again - causing you to be vulnerable and die. Instead, set the value by locking it to byte 16 or something.

Using FCEUX 2.1.5 emulator, I am able to inject code for health by using the following:

Code:
[ENABLE]
alloc(newmem,248)
label(returnhere)
label(originalcode)

newmem:
cmp eax,00000065
jne originalcode
mov byte ptr [ecx+eax],#16
mov al,[ecx+eax]
ret
int 3
jmp returnhere

originalcode:
mov al,[ecx+eax]
ret
int 3
jmp returnhere

"fceux.exe"+599A:
jmp newmem
returnhere:
 
[DISABLE]
dealloc(newmem)
"fceux.exe"+599A:
mov al,[ecx+eax]
ret
int 3
//Alt: db 8A 04 01 C3 CC


EDIT:

Using AOB should allow you to inject this script with any version of FCEUX:

Code:
[ENABLE]
aobscan(AOB,8B 0D ?? ?? ?? ?? 8A ?? ?? C3 CC CC)
alloc(newmem,248)
label(returnhere)
label(originalcode)
registersymbol(AOB)

newmem:
cmp eax,00000065
jne originalcode
mov byte ptr [ecx+eax],#16
mov al,[ecx+eax]
ret
int 3
jmp returnhere

originalcode:
mov al,[ecx+eax]
ret
int 3
jmp returnhere

AOB+6:
jmp newmem
returnhere:

[DISABLE]
dealloc(newmem)
AOB+6:
db 8A 04 01 C3 CC

unregistersymbol(AOB)


Last edited by ++METHOS on Thu Jan 09, 2014 2:13 am; edited 1 time in total
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Wed Jan 08, 2014 6:18 am    Post subject: Reply with quote

Is this the same with Jnes.exe?
_________________
I know you're reading this, Hitler.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Wed Jan 08, 2014 12:09 pm    Post subject: Reply with quote

No. As Rydian explained, the game is being emulated so the code is all relative to that and will change if the emulator changes.

See below...using the latest version of Jnes; you may notice that by utilizing AOB, we can achieve the same result with very similar coding:

Code:
[ENABLE]
aobscan(AOB,8A 81 E0 28 ?? ?? 89 0D 24 A1 ?? ?? A2 C8 29 ?? ?? 84 C0)
alloc(newmem,248)
label(returnhere)
label(originalcode)
registersymbol(AOB)

newmem:
cmp ecx,00000065
jne originalcode
mov byte ptr [ecx+Jnes.exe+1528E0],#16
mov al,[ecx+Jnes.exe+1528E0]
jmp returnhere

originalcode:
mov al,[ecx+Jnes.exe+1528E0]
jmp returnhere

AOB:
jmp newmem
nop
returnhere:

[DISABLE]
dealloc(newmem)
AOB:
mov al,[ecx+Jnes.exe+1528E0]

unregistersymbol(AOB)
Back to top
View user's profile Send private message
Jiehfeng
Expert Cheater
Reputation: 0

Joined: 03 Jan 2014
Posts: 107

PostPosted: Thu Jan 09, 2014 11:17 am    Post subject: Reply with quote

Oh thanks, don't understand that whole code but it worked, but sadly I want to learn assembly. There's no full tutorial for this and it's driving me crazy :/
_________________
I know you're reading this, Hitler.
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