| View previous topic :: View next topic |
| Author |
Message |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Thu May 10, 2007 2:31 am Post subject: to Labyrnth or some one professional |
|
|
hi
Labyrnth please help me
i want to create trainer from this script and i know im gone use cave.not use allocate memory. how i can use cave in this script?and work in the trainer?
and how i can find cave?
here is script:
| Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
registersymbol(insanity) //add "insanity" to the luserdefined symbollist
alloc(insanity,4)
018BB2FD:
mov [insanity],esi //store the base address to insanity
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
unregistersymbol(insanity)
dealloc(insanity)
018BB2FD:
fstp [esi+0000048a] |
i want to create trainer from this script that work in trainer
Labyrnth pleae help me i really need this |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Thu May 10, 2007 5:57 pm Post subject: |
|
|
Im not a pro by far. But i can help you with what you are asking because i was shown/tutored on how to do this myself by a good friend.
So following in his steps i will show others how as well.
Ok first you need to scan for a cave, The address you have is 018BB2FD.
You need to be sure you are on that address in the lower window of memory view so you can see what module you are in.
Example Image:
You see what is circled is your address, The base address of the module, and the module the address is found in.
Another Image of the sample address in both windows:
===============================================
Now you know what the base address is and what module your looking in.
You want to find a cave.
Sample Image of how to get started on looking for a cave:
===============================================
Now, Take your module base address and put it in the location circled on this image:
===============================================
Also you can use a cave of 256 or any size you want to find. 256 should be good. Place your address in the circled box and put 256 for the size and click "Start"
===============================================
Now you should get something like this:
I would choose the top one or second one, But the top one in this image is close to the base address so i would use it.
===============================================
Now double click the cave you want from the scan box, You will see the lower window pop to this cave and you can see it is empty and well large enough to hold your script. Address clicked is circled and allot of the cave is circled also.
===============================================
Now you have your caves address:
Now, here is where the base address and module come into real play.
Take the cave address and subtract the base address from it.
4002A8 - 400000 = 2A8
Now that you have 2A8 you need to use this as the caves address in your script to save you some problems.
Example:
Modulename+2A8: <--- This will equal the cave..
So what we see from my sample images the address will be:
PSP.EXE+2A8: <--- Here is my cave from the images i have shown.
This address is equal to 4002A8, But if the code shifts in the exe this could possibly not be a cave any longer and writing to that would crash the application. So using the module name + whats left from subtracting the base address gives you PSP.EXE+2A8.
Reason this is so, is because. PSP.EXE = 400000 <-- The base address
So PSP.EXE + 2A8 , is the same as 400000 + 2A8 and they will give you 4002A8.
===============================================
The above method is a great way to do scripts because you dont have to worry about the code shifting making your script/Trainer not work.
[ Yes, you just seen a semi simple how to on code shifting. ]
===============================================
Now for the script that will work in a trainer:
| Code: | [ENABLE]
label(back)
PSP.EXE+2A8: // Define the cave
mov [insanity],esi // Write to the Cave
jmp back
PSP.EXE+E028: // Original Address
jmp PSP.EXE+2A8: // Jump to the cave to do the cheat
nop
back: // Jump back into the game code
[DISABLE]
PSP.EXE+E028: // Original address
fstp [esi+0000048a] // Write original code back
|
I hope you understand what i have tried to explain to you.
Last edited by Labyrnth on Fri May 11, 2007 3:08 am; edited 1 time in total |
|
| Back to top |
|
 |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Fri May 11, 2007 1:37 am Post subject: |
|
|
thank you Labyrnth
this is very good
but when i use this script in trainer or table game is craching?
and how you convert this 018BB2FD to E028?
the game is The Suffering:Ties That Bind.
| Code: | [ENABLE]
label(back)
SufferingTTB.rfl+3A0:
mov [insanity],esi
jmp back
018BB2FD:
jmp SufferingTTB.rfl+3A0
nop
back:
[DISABLE]
018BB2FD:
fstp [esi+0000048a] |
Last edited by -DEViL- on Fri May 11, 2007 5:12 am; edited 5 times in total |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Fri May 11, 2007 3:10 am Post subject: |
|
|
What game is it?
I remember that core.exe, i think it is from a dll.
Like in raven sheild or Joint ops not to sure. |
|
| Back to top |
|
 |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Fri May 11, 2007 5:49 am Post subject: |
|
|
thank you Labyrnth
this is very good
this is my last question
but when i use this script in trainer or table game is crashing?
and how you convert this 018BB2FD to E028?
the game is The Suffering:Ties That Bind.
| Code: | [ENABLE]
label(back)
SufferingTTB.rfl+3A0:
mov [insanity],esi
jmp back
018BB2FD:
jmp SufferingTTB.rfl+3A0
nop
back:
[DISABLE]
018BB2FD:
fstp [esi+0000048a] |
and how i can use cave in this scripts?
| Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
registersymbol(insanity) //add "insanity" to the luserdefined symbollist
alloc(newmem,2048) //2kb should be enough
alloc(insanity,4)
label(returnhere)
label(originalcode)
label(exit)
018BB2FD:
jmp newmem
nop
returnhere:
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov [insanity],esi //store the base address to pointertoballs
originalcode:
fstp [esi+0000048a]
exit:
jmp returnhere
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
unregistersymbol(pointertoballs)
dealloc(newmem)
dealloc(insanity)
018BB2FD:
fstp [esi+0000048a] |
|
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Fri May 11, 2007 8:56 am Post subject: |
|
|
You need to make sure that the address you have is not changing.
018BB2FD: <-- I would use module name on this one as well.
Same as you did on SufferingTTB.rfl+3A0:
Then while you have the code in CE memory view. [ENABLE] it and look in the jump to see if it is writing what you need there, and [DISABLE] it and see if it writes what is supposed to when it is disabled. You may need to nop some extra stuff to get it to write correctly if it isn't cleaning up the left over code.
Also on the first & second script im not sure what you are trying to do?
Is "insanity" a game cheat you are trying to pass a value to?
I new that the script i posted would possibly crash the game because insanity. Now im wondering what that is.
Can you show some screenshots
| Code: |
[ENABLE]
label(back)
SufferingTTB.rfl+3A0:
mov [insanity],esi
jmp back
018BB2FD:
jmp SufferingTTB.rfl+3A0
nop
back:
[DISABLE]
018BB2FD:
fstp [esi+0000048a] |
|
|
| Back to top |
|
 |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Fri May 11, 2007 10:53 am Post subject: |
|
|
I Want to use this scripts as base pointer.
but not work in the trainer.only work in the table. |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Fri May 11, 2007 11:10 am Post subject: |
|
|
Ok man does that AA script you have work? Because this looks backwards to me. But i dont have the game so i cant test anything.
Check and be sure you calculated your code address correctly also.
| Code: |
[ENABLE]
label(back)
SufferingTTB.rfl+3A0:
mov 4,esi // <--- try that. I think it is backwards tho, cant test it :S
jmp back
SufferingTTB.rfl+1B2FD:
jmp SufferingTTB.rfl+3A0
nop
back:
[DISABLE]
SufferingTTB.rfl+1B2FD:
fstp [esi+0000048a]
|
Or This if the mov code is in the right direction:
| Code: |
[ENABLE]
label(back)
SufferingTTB.rfl+3A0:
mov 4,esi // <--- try that. I think it is backwards tho, cant test it :S
fstp [esi+0000048a]
jmp back
SufferingTTB.rfl+1B2FD:
jmp SufferingTTB.rfl+3A0
nop
back:
[DISABLE]
SufferingTTB.rfl+1B2FD:
fstp [esi+0000048a]
|
|
|
| Back to top |
|
 |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Fri May 11, 2007 3:26 pm Post subject: |
|
|
thankyou
but when i try to add it to cheat table assembler say this. |
|
| Back to top |
|
 |
appalsap Moderator
Reputation: 0
Joined: 27 Apr 2006 Posts: 6753 Location: Pakistan
|
Posted: Fri May 11, 2007 4:32 pm Post subject: |
|
|
| "mov 4, esi" means to move esi into 4. But you can't move anything into 4 since it is just a numeric constant. What you are looking to do is "mov esi, 4" |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Fri May 11, 2007 5:54 pm Post subject: |
|
|
Hehe i knew that was backwards.. Thnx appalsap.
It is a pain in da you know what to give help when you cant see the game heh.
Seeing how that aa script he posted does this as well, i think it dont work either. Not sure tho.
So do what appalsap said and see what happens. |
|
| Back to top |
|
 |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Sat May 12, 2007 1:07 am Post subject: |
|
|
thankyou
but when i use this:mov esi, 4 game is crashing? |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Sat May 12, 2007 7:21 am Post subject: |
|
|
It is hard for any of us to see why it is crashing because we cant see what or how the script is writing in the cave.
You found the cave and we dont know if you calculated the address correctly or not. If your cave is too small or some of the left over code is not nopped out you can get the crash.
Be sure the cave is large enough and test the script while looking at the memory view to see what it is writing, and if it is writing back correctly.
When it writes you should see a jump, view the address of the jump.
Then see what is written there and if it is what you wanted to be written.
Then deactivate the script and see if it writes the code back like it is supposed to.
If it isnt writing back to the original address then that could be why also. |
|
| Back to top |
|
 |
-DEViL- Expert Cheater
Reputation: 3
Joined: 21 Apr 2007 Posts: 185
|
Posted: Sun May 13, 2007 4:20 am Post subject: |
|
|
thankyou
this is my cave i want to use
when i enable this script
this code are writing
when i disable that,code come back to normal
and pointer is not working
but game is not crashing.
and when i create trainer from this scripts trainer is not work?
[/img] |
|
| Back to top |
|
 |
Labyrnth Moderator
Reputation: 10
Joined: 28 Nov 2006 Posts: 6300
|
Posted: Mon May 14, 2007 11:15 am Post subject: |
|
|
It doesnt look like it is jumping to your cave,
jmp ordinal11+3A0 <--- ? Follow this and see whats going on.
Also look in your cave, and see whats going on there. |
|
| Back to top |
|
 |
|