Here it is, i'm bad at explaining, i hope you can understand all this, there's multiple ways to do this and more advanced with values, buttons and whatnot, but here's the easier way, that works in whatever game:
Example table:
Code: Select all
[ENABLE]
globalalloc(...,1000)
createthread(...)
label(..._ptr_end)
label(..._ptr)
registersymbol(..._ptr_end)
registersymbol(..._ptr)
[[""+...]+...]+...:
..._ptr:
...:
mov [..._ptr],...
cmp [..._ptr_end] 0
ret
..._ptr_end:
dd 1
[DISABLE]
..._ptr_end:
dd 0
unregistersymbol(..._ptr_end)
unregistersymbol(..._ptr)
My pointer used with this example table is this below:
This has 4 offsets, meaning 40,40,54,F80, so regarding this example below:
[[""+...]+...]+...:
The result will be like this below:
[[[[""+...]+...]+...]+...]+...:
Meaning 4 [[[[ added to the left and 3 ]]] to right, the 4th to right, you don't have to add another ], so if you'd have let's say 6 offsets, will be like:
[[[[[[""+...]+...]+...]+...]+...]+...]+...:
Now back to my example, i've added 4
[[[[ to left and 3
]]] to right:
Step 1:Add
"fmodex.dll"+0005AE9C in the first three
... from left
[[[[""+"fmodex.dll"+0005AE9C]+...]+...]+...]+...:
Step 2:Now add the first offset, that is
40, like this:
[[[[""+"fmodex.dll"+0005AE9C]+40]+...]+...]+...:
Step 3:Now add the second offset, that is
40, like this:
[[[[""+"fmodex.dll"+0005AE9C]+40]+40]+...]+...:
Step 4:Now add the third offset, that is
54, like this:
[[[[""+"fmodex.dll"+0005AE9C]+40]+40]+54]+...:
Step 5:Now add the fourth offset, that is
F80, like this:
[[[[""+"fmodex.dll"+0005AE9C]+40]+40]+54]+F80:
Now in the script, on :
mov [..._ptr],...
Add the value, let's say
9999, will be:
mov [..._ptr],9999
If you have some integer or float or simple, just add:
mov [..._ptr],270F (270F=9999 in hex)
mov [..._ptr],9999
mov [..._ptr],(int)9999
mov [..._ptr],(float)9999
In my case it's on
float.
Now replace the rest of all those
... with a name, in this example these offsets are for health, we'll rename all
... with
HP, so having added all from up, the result will be like:
Code: Select all
[ENABLE]
globalalloc(HP,1000)
createthread(HP)
label(HP_ptr_end)
label(HP_ptr)
registersymbol(HP_ptr_end)
registersymbol(HP_ptr)
[[[[""+"fmodex.dll"+0005AE9C]+40]+40]+54]+F80:
HP_ptr:
HP:
mov [HP_ptr],(float)9999
cmp [HP_ptr_end] 0
ret
HP_ptr_end:
dd 1
[DISABLE]
HP_ptr_end:
dd 0
unregistersymbol(HP_ptr_end)
unregistersymbol(HP_ptr)
Alternate to
cmp [..._ptr_end] 0
is
push #100
call sleep
Now this result we'll paste in a script and we'll
assign it to the table and then activate it, in my example the health by default is
200 on float, then:
STEP A
- while the script is activated, on
Add address Manually, in
CE, press it, on address you add
HP_ptr, from
registersymbol(HP_ptr), i mean the name is
HP_ptr, then on type select
float, in this example is
float (
if on you is on 4 bytes or 2 bytes, you select those instead), then press
OK, and you'll see something appear, then drag that into the script.
The result is this below:
STEP B
- now with that script enabled, the second step is getting back to that
Add address Manually and add also the return, meaning from
registersymbol(HP_ptr_end), just add
HP_ptr_end and select it as
4 bytes, it will auto-add
1.
So this last
HP_ptr_end is to be able to disable after injection,
meaning if the script is not enabled this will be 0, if will be enabled, will be 1.
So at the end you either keep only the script, there's no need no need for hp_ptr and hp_ptr_end..or keep them all, your choice!
This is the final result below, only that selected is needed, the others (hp_ptr ..add the value manually or if you'll freeze it will block it) + (hp_ptr_end well will deactivate it)..well, you get it!
So, that's it..practice and practice and you'll make it!Also in unity when you activate mono, that's injection, there's no deactivation, in other game is...you can activate/deactivate with pointers or like this with this script, you can have multiple scripts having multiple ways, you know!
I don't know now, i've tried to write in easy terms so you can understand, i don't know how to say it other way!