| View previous topic :: View next topic |
| Author |
Message |
GreatUnknown Cheater
Reputation: 0
Joined: 19 Oct 2014 Posts: 47
|
Posted: Wed Apr 08, 2015 6:28 am Post subject: How to use AOBScan AA to do more than nop? |
|
|
So I want to give 100 points say and lock it (locking it is optional) but I don't know how in AOBScan and AA. This is what I have so far:
| Code: | [ENABLE]
aobscanmodule(MaxSL,Fahrenheit.exe,89 45 00)
alloc(LucasS,100)
label(LucasSReturn)
registersymbol(LucasS)
// hack goes here
[DISABLE]
MaxSL:
db 89 45 00
unregistersymbol(MaxSL) |
|
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Wed Apr 08, 2015 7:19 am Post subject: |
|
|
Why don't you use the build-in AOB AA Template?
Mark the address you want to do the injection, press CTRL+A and then go to Template->AOB-Injection.
|
|
| Back to top |
|
 |
GreatUnknown Cheater
Reputation: 0
Joined: 19 Oct 2014 Posts: 47
|
Posted: Wed Apr 08, 2015 9:03 am Post subject: |
|
|
| Does it have to jump somewhere?
|
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Wed Apr 08, 2015 9:15 am Post subject: |
|
|
| Use the template and then post the script here, please. That way it's easier to see what you want to do ...
|
|
| Back to top |
|
 |
Fresco Grandmaster Cheater
Reputation: 4
Joined: 07 Nov 2010 Posts: 600
|
Posted: Wed Apr 08, 2015 10:25 am Post subject: |
|
|
| Code: | [ENABLE]
aobscanmodule(MaxSL,Fahrenheit.exe,89 45 00)
alloc(LucasS,100)
label(LucasSReturn)
registersymbol(LucasS)
LucasS:
// hack goes here
jmp LucasSReturn
/*added*/
MaxSL:
jmp LucasS
nop
nop
LucasSReturn:
// etc... write as many nops as needed to fully nop one full instruction / opcode after the jump to LucasS
[DISABLE]
dealloc(LucasS)
unregistersymbol(MaxSL)
MaxSL:
db 89 45 00 // only 3 bytes are not enough you need at least 5 (the jmp instruction has 5 bytes)
//also enough bytes to fully restore the the one full instruction the you previously nopped |
| hhhuut wrote: | | Use the template and then post the script here, please. That way it's easier to see what you want to do ... |
Totally agree!!!
If you need help, just post a snippet of code
The script above will not work for you, you need to modify it to suit Fahrenheit.exe module
_________________
... Fresco |
|
| Back to top |
|
 |
GreatUnknown Cheater
Reputation: 0
Joined: 19 Oct 2014 Posts: 47
|
Posted: Wed Apr 08, 2015 6:28 pm Post subject: |
|
|
Well I simply want to make it so this AOB is 100 for the player mental state.
Like this
| Code: |
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
mov [ebp+00],50
originalcode:
//mov [ebp+00],eax
//pop ebp
//pop ebx
exit:
jmp returnhere
"Fahrenheit.exe"+15C0D3:
jmp newmem
returnhere:
|
Of course this keeps crashing the game but that's the general idea, to modify a value to 100 say using an AOB module scan.
|
|
| Back to top |
|
 |
Zanzer I post too much
Reputation: 126
Joined: 09 Jun 2013 Posts: 3278
|
Posted: Wed Apr 08, 2015 7:08 pm Post subject: |
|
|
Do not comment out more than you need to.
Those POP's are required. That is why you're crashing.
And as they said, use the AOB Injection template. NOT Code Injection.
|
|
| Back to top |
|
 |
GreatUnknown Cheater
Reputation: 0
Joined: 19 Oct 2014 Posts: 47
|
Posted: Thu Apr 09, 2015 1:08 pm Post subject: |
|
|
Sorry my mistake
| Code: |
{ Game : Fahrenheit.exe
Version:
Date : 2015-04-09
Author : Admin
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJECT,Fahrenheit.exe,89 45 00 5D 5B 59 C3 8B 04) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
mov [ebp+00],50
pop ebp
pop ebx
code:
mov [ebp+00],eax
pop ebp
pop ebx
jmp return
INJECT:
jmp code
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 89 45 00 5D 5B
unregistersymbol(INJECT)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Fahrenheit.exe"+15C0D3
"Fahrenheit.exe"+15C0B6: 3B 0C C5 98 88 95 00 - cmp ecx,[eax*8+Fahrenheit.exe+558898]
"Fahrenheit.exe"+15C0BD: 75 08 - jne Fahrenheit.exe+15C0C7
"Fahrenheit.exe"+15C0BF: 81 FA 30 02 00 00 - cmp edx,00000230
"Fahrenheit.exe"+15C0C5: 75 7B - jne Fahrenheit.exe+15C142
"Fahrenheit.exe"+15C0C7: 83 C0 01 - add eax,01
"Fahrenheit.exe"+15C0CA: 83 F8 16 - cmp eax,16
"Fahrenheit.exe"+15C0CD: 72 E7 - jb Fahrenheit.exe+15C0B6
"Fahrenheit.exe"+15C0CF: 8B 03 - mov eax,[ebx]
"Fahrenheit.exe"+15C0D1: 5F - pop edi
"Fahrenheit.exe"+15C0D2: 5E - pop esi
// ---------- INJECTING HERE ----------
"Fahrenheit.exe"+15C0D3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0D6: 5D - pop ebp
"Fahrenheit.exe"+15C0D7: 5B - pop ebx
// ---------- DONE INJECTING ----------
"Fahrenheit.exe"+15C0D8: 59 - pop ecx
"Fahrenheit.exe"+15C0D9: C3 - ret
"Fahrenheit.exe"+15C0DA: 8B 04 C5 4C 89 95 00 - mov eax,[eax*8+Fahrenheit.exe+55894C]
"Fahrenheit.exe"+15C0E1: 5F - pop edi
"Fahrenheit.exe"+15C0E2: 5E - pop esi
"Fahrenheit.exe"+15C0E3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0E6: 5D - pop ebp
"Fahrenheit.exe"+15C0E7: 5B - pop ebx
"Fahrenheit.exe"+15C0E8: 59 - pop ecx
"Fahrenheit.exe"+15C0E9: C3 - ret
}
|
This doesn't modify anything but it does not crash tried commenting out both pop functions as well
|
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Thu Apr 09, 2015 1:42 pm Post subject: |
|
|
Never comment out some pop opcodes because this will mess up the stack and it's very likely that the game will crash ...
As for your current script you'd pop the two registers two time which also messes up the stack ... Try it like this:
| Code: | { Game : Fahrenheit.exe
Version:
Date : 2015-04-09
Author : Admin
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJECT,Fahrenheit.exe,89 45 00 5D 5B 59 C3 8B 04) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
mov [ebp+00],50
code:
mov [ebp+00],eax
pop ebp
pop ebx
jmp return
INJECT:
jmp newmem
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 89 45 00 5D 5B
unregistersymbol(INJECT)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Fahrenheit.exe"+15C0D3
"Fahrenheit.exe"+15C0B6: 3B 0C C5 98 88 95 00 - cmp ecx,[eax*8+Fahrenheit.exe+558898]
"Fahrenheit.exe"+15C0BD: 75 08 - jne Fahrenheit.exe+15C0C7
"Fahrenheit.exe"+15C0BF: 81 FA 30 02 00 00 - cmp edx,00000230
"Fahrenheit.exe"+15C0C5: 75 7B - jne Fahrenheit.exe+15C142
"Fahrenheit.exe"+15C0C7: 83 C0 01 - add eax,01
"Fahrenheit.exe"+15C0CA: 83 F8 16 - cmp eax,16
"Fahrenheit.exe"+15C0CD: 72 E7 - jb Fahrenheit.exe+15C0B6
"Fahrenheit.exe"+15C0CF: 8B 03 - mov eax,[ebx]
"Fahrenheit.exe"+15C0D1: 5F - pop edi
"Fahrenheit.exe"+15C0D2: 5E - pop esi
// ---------- INJECTING HERE ----------
"Fahrenheit.exe"+15C0D3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0D6: 5D - pop ebp
"Fahrenheit.exe"+15C0D7: 5B - pop ebx
// ---------- DONE INJECTING ----------
"Fahrenheit.exe"+15C0D8: 59 - pop ecx
"Fahrenheit.exe"+15C0D9: C3 - ret
"Fahrenheit.exe"+15C0DA: 8B 04 C5 4C 89 95 00 - mov eax,[eax*8+Fahrenheit.exe+55894C]
"Fahrenheit.exe"+15C0E1: 5F - pop edi
"Fahrenheit.exe"+15C0E2: 5E - pop esi
"Fahrenheit.exe"+15C0E3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0E6: 5D - pop ebp
"Fahrenheit.exe"+15C0E7: 5B - pop ebx
"Fahrenheit.exe"+15C0E8: 59 - pop ecx
"Fahrenheit.exe"+15C0E9: C3 - ret
} |
|
|
| Back to top |
|
 |
Fresco Grandmaster Cheater
Reputation: 4
Joined: 07 Nov 2010 Posts: 600
|
Posted: Thu Apr 09, 2015 2:08 pm Post subject: |
|
|
| hhhuut wrote: | Never comment out some pop opcodes because this will mess up the stack and it's very likely that the game will crash ...
As for your current script you'd pop the two registers two time which also messes up the stack ... Try it like this:
| Code: | { Game : Fahrenheit.exe
Version:
Date : 2015-04-09
Author : Admin
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJECT,Fahrenheit.exe,89 45 00 5D 5B 59 C3 8B 04) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
mov [ebp+00],50
code:
mov [ebp+00],eax
pop ebp
pop ebx
jmp return
INJECT:
jmp newmem
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 89 45 00 5D 5B
unregistersymbol(INJECT)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Fahrenheit.exe"+15C0D3
"Fahrenheit.exe"+15C0B6: 3B 0C C5 98 88 95 00 - cmp ecx,[eax*8+Fahrenheit.exe+558898]
"Fahrenheit.exe"+15C0BD: 75 08 - jne Fahrenheit.exe+15C0C7
"Fahrenheit.exe"+15C0BF: 81 FA 30 02 00 00 - cmp edx,00000230
"Fahrenheit.exe"+15C0C5: 75 7B - jne Fahrenheit.exe+15C142
"Fahrenheit.exe"+15C0C7: 83 C0 01 - add eax,01
"Fahrenheit.exe"+15C0CA: 83 F8 16 - cmp eax,16
"Fahrenheit.exe"+15C0CD: 72 E7 - jb Fahrenheit.exe+15C0B6
"Fahrenheit.exe"+15C0CF: 8B 03 - mov eax,[ebx]
"Fahrenheit.exe"+15C0D1: 5F - pop edi
"Fahrenheit.exe"+15C0D2: 5E - pop esi
// ---------- INJECTING HERE ----------
"Fahrenheit.exe"+15C0D3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0D6: 5D - pop ebp
"Fahrenheit.exe"+15C0D7: 5B - pop ebx
// ---------- DONE INJECTING ----------
"Fahrenheit.exe"+15C0D8: 59 - pop ecx
"Fahrenheit.exe"+15C0D9: C3 - ret
"Fahrenheit.exe"+15C0DA: 8B 04 C5 4C 89 95 00 - mov eax,[eax*8+Fahrenheit.exe+55894C]
"Fahrenheit.exe"+15C0E1: 5F - pop edi
"Fahrenheit.exe"+15C0E2: 5E - pop esi
"Fahrenheit.exe"+15C0E3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0E6: 5D - pop ebp
"Fahrenheit.exe"+15C0E7: 5B - pop ebx
"Fahrenheit.exe"+15C0E8: 59 - pop ecx
"Fahrenheit.exe"+15C0E9: C3 - ret
} |
|
this makes no sense, perhaps a tiny mistake :)
| Code: | ...
newmem:
mov [ebp+00],50
code:
mov [ebp+00],eax //< this should be commented
pop ebp
pop ebx
... |
_________________
... Fresco |
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Thu Apr 09, 2015 2:10 pm Post subject: |
|
|
| Oh yeah, forgot that, sorry ^^
|
|
| Back to top |
|
 |
GreatUnknown Cheater
Reputation: 0
Joined: 19 Oct 2014 Posts: 47
|
Posted: Thu Apr 09, 2015 4:36 pm Post subject: |
|
|
The code seems to just mess up the in game timer to count how long you've been playing. Tried screen shotting it but it's all black, it'll say for example 04:256:256 and freezes. Mental state uneffected.
| Code: |
{ Game : Fahrenheit.exe
Version:
Date : 2015-04-09
Author : Admin
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJECT,Fahrenheit.exe,89 45 00 5D 5B 59 C3 8B 04) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
mov [ebp+00],100
code:
//mov [ebp+00],eax
pop ebp
pop ebx
jmp return
INJECT:
jmp newmem
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 89 45 00 5D 5B
unregistersymbol(INJECT)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Fahrenheit.exe"+15C0D3
"Fahrenheit.exe"+15C0B6: 3B 0C C5 98 88 95 00 - cmp ecx,[eax*8+Fahrenheit.exe+558898]
"Fahrenheit.exe"+15C0BD: 75 08 - jne Fahrenheit.exe+15C0C7
"Fahrenheit.exe"+15C0BF: 81 FA 30 02 00 00 - cmp edx,00000230
"Fahrenheit.exe"+15C0C5: 75 7B - jne Fahrenheit.exe+15C142
"Fahrenheit.exe"+15C0C7: 83 C0 01 - add eax,01
"Fahrenheit.exe"+15C0CA: 83 F8 16 - cmp eax,16
"Fahrenheit.exe"+15C0CD: 72 E7 - jb Fahrenheit.exe+15C0B6
"Fahrenheit.exe"+15C0CF: 8B 03 - mov eax,[ebx]
"Fahrenheit.exe"+15C0D1: 5F - pop edi
"Fahrenheit.exe"+15C0D2: 5E - pop esi
// ---------- INJECTING HERE ----------
"Fahrenheit.exe"+15C0D3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0D6: 5D - pop ebp
"Fahrenheit.exe"+15C0D7: 5B - pop ebx
// ---------- DONE INJECTING ----------
"Fahrenheit.exe"+15C0D8: 59 - pop ecx
"Fahrenheit.exe"+15C0D9: C3 - ret
"Fahrenheit.exe"+15C0DA: 8B 04 C5 4C 89 95 00 - mov eax,[eax*8+Fahrenheit.exe+55894C]
"Fahrenheit.exe"+15C0E1: 5F - pop edi
"Fahrenheit.exe"+15C0E2: 5E - pop esi
"Fahrenheit.exe"+15C0E3: 89 45 00 - mov [ebp+00],eax
"Fahrenheit.exe"+15C0E6: 5D - pop ebp
"Fahrenheit.exe"+15C0E7: 5B - pop ebx
"Fahrenheit.exe"+15C0E8: 59 - pop ecx
"Fahrenheit.exe"+15C0E9: C3 - ret
} |
Same code so it is weird.
|
|
| Back to top |
|
 |
hhhuut Grandmaster Cheater
Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Thu Apr 09, 2015 5:11 pm Post subject: |
|
|
Since the instruction just writes a value to the stack it's of course possible that not only your desired value but also other values (in this case obviously the timer) are accessed by the instruction you chose ...
You should check how many and what other addresses than your desired one are accessed ...
|
|
| Back to top |
|
 |
GreatUnknown Cheater
Reputation: 0
Joined: 19 Oct 2014 Posts: 47
|
Posted: Thu Apr 09, 2015 6:40 pm Post subject: |
|
|
Nothing so far, found a sub but this injection still freezes the game:
| Code: |
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
add eax,100
originalcode:
//sub eax,04
mov [eax],edx
exit:
jmp returnhere
"Fahrenheit.exe"+15190C:
jmp newmem
returnhere:
|
|
|
| Back to top |
|
 |
Fresco Grandmaster Cheater
Reputation: 4
Joined: 07 Nov 2010 Posts: 600
|
Posted: Thu Apr 09, 2015 6:52 pm Post subject: |
|
|
add edx not eax!!!
don't comment the sub eax , 4
_________________
... Fresco |
|
| Back to top |
|
 |
|