| View previous topic :: View next topic |
| Author |
Message |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
|
| Back to top |
|
 |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Fri Jan 03, 2014 3:29 pm Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
|
| Back to top |
|
 |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Sat Jan 04, 2014 9:20 am Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
Posted: Sun Jan 05, 2014 1:03 am Post subject: |
|
|
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 |
|
 |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Sun Jan 05, 2014 7:56 am Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
Posted: Mon Jan 06, 2014 12:14 am Post subject: |
|
|
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 |
|
 |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Mon Jan 06, 2014 3:17 am Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
Posted: Mon Jan 06, 2014 8:06 am Post subject: |
|
|
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 |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Mon Jan 06, 2014 1:59 pm Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
Posted: Tue Jan 07, 2014 4:18 am Post subject: |
|
|
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 |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Tue Jan 07, 2014 4:06 pm Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
Posted: Wed Jan 08, 2014 6:18 am Post subject: |
|
|
Is this the same with Jnes.exe?
_________________
I know you're reading this, Hitler. |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Wed Jan 08, 2014 12:09 pm Post subject: |
|
|
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 |
|
 |
Jiehfeng Expert Cheater
Reputation: 0
Joined: 03 Jan 2014 Posts: 107
|
Posted: Thu Jan 09, 2014 11:17 am Post subject: |
|
|
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 |
|
 |
|