Computing
Reverse Engineering For Beginners
Submitted by Muie, 04-06-2019, 09:13 PM, Thread ID: 132496
Thread Closed
First of all what is reverse engineering ?
Wikipedia Says : Reverse engineering, also called back engineering, is the process by which a man-made object is deconstructed to reveal its designs, architecture, or to extract knowledge from the object; similar to scientific research, the only difference being that scientific research is about a natural phenomen.
- With time you will have your own definition for it in function of what you will do using the knowledge that you gain.
Today i will make a little example of using reverse engineering concept in IT i will start by making a little tutorial about "Fly Cheats"
What you will be capable to do at the end of this little [Knowledge Share] & [Tutorial]
- You will understand how a game works.[1]
- You will know some diferent type of databases storage.[2]
- You will know to read a little bit of data offsets.[3]
- You Will understand the basics of Assembly Low Language.[4]
Please keep in mind that i will do my best to make this tutorial as short as it is posible,and get something "Healthy" to eat because you will have to read a little bit, by the way this tutorial isn't for lazy people.
Step 1: Starting with the basic logics [1]
How is a fly cheat even posible,i don't think you seen so many cheats like this one out there?
Well let's start with the basic,a player (actor) is moving using X, Y, Z, Axis so there is a value storage,please keep in mind that this can be just float values
example : X: 10.00 Y: 20.00 Z: 12.00.
Usually this kind of data isn't stored by the server side because of his high values and his continues update (keep in mind x2 that the exemple that i give you is a little one,but a game like GTA 5 has way much higher values because the map is verry big.)
They are getting just a start value (Player Spawn) And Leave Value (Last Playe Location On Login Action)
Adding them into a SQL Databases.
Step 2: Storage Types & Databases [2]
I will try to keep it very simple most of the games today use SQL Database because they got a simple system,a lot of supporters,and a very big community of developers,sounds good no?
Well even if SQL is a little "Angel" he likes to eat when you put him on work,and what he "eats" well your server & pc resources,because he needs a lot of "energy" to do the job that you are giving to him
he is using queries that aren't to good optimized he's slow,slow means + some miliseconds / 100 queries if you will store the player ( actor) location in real time you should execute a lot of data just for 1 player,
that means that our little friend delay" is joining us,and we know that delay makes us to leave some games.
Asking yourself why there isn't any solution for this kind of stuff,well, there is a solution but human race is starting to be way to lazy to do some upgrades,especially when big bosses that want the projects to be done very fast so they can get the high amount's of money just to make waste of knowlegde.
there is a little friend called "NO SQL Database" he's like SSD way much faster,but judging that people still learn about it,games don't use it yet,so that leave us a big backdoor when we speak about player movement.
Step 3 : Gathering The Necesary Softwares For Our Little "Fly Cheat"
For this little tutorial we will start by downloading Cheat Engine,you can get it from the official website(how to do it ? http://lmgtfy.com/?q=Cheat+Engine )
Install it,and if you feel to be a good guy/girl that wants to know more follow their tutorial.
I will make this cheat using Shaiya Sekyro game, judging that i'm their web developer they accepted me to do security tests on their server or to cheat :muha:
Please keep in mind that i made this cheat as a beginners side so if you want to get a higher level of knowledge let me know.
1. Start The Cheat Engine.
2.Start The Game And Access Your Character
3. Go Back To Cheat Engine -> Press This little icon -> And Select Your Game Process .
Now judging that i don't want to write the basics in any other tutorial i will let you know some quick info about "software offsets"
after selecting your process the top of cheat engine should look something like this
4.Reading and understanding the offsets.
If you press "Memory View" A new Tab with all the game (client side) information will be shown
Looks a bit creepy right ? trust me is way much simpler than some of you think it is
Example :
add stands for add ( English word)
push means writing the value into a stack
mov move's a value
jmp jump's to an address
ebx & eax call register's
ret return
call stands for calling an address,value
pop popping means restoring whatever is on top of the stack into a register.
Now that you know the basics,on the next tutorials will be way much easier to write for example auto assembling cheats,or getting the necessary data to write an external cheat using address+offset information
Wikipedia Says : Reverse engineering, also called back engineering, is the process by which a man-made object is deconstructed to reveal its designs, architecture, or to extract knowledge from the object; similar to scientific research, the only difference being that scientific research is about a natural phenomen.
- With time you will have your own definition for it in function of what you will do using the knowledge that you gain.
Today i will make a little example of using reverse engineering concept in IT i will start by making a little tutorial about "Fly Cheats"
What you will be capable to do at the end of this little [Knowledge Share] & [Tutorial]
- You will understand how a game works.[1]
- You will know some diferent type of databases storage.[2]
- You will know to read a little bit of data offsets.[3]
- You Will understand the basics of Assembly Low Language.[4]
Please keep in mind that i will do my best to make this tutorial as short as it is posible,and get something "Healthy" to eat because you will have to read a little bit, by the way this tutorial isn't for lazy people.
Step 1: Starting with the basic logics [1]
How is a fly cheat even posible,i don't think you seen so many cheats like this one out there?
Well let's start with the basic,a player (actor) is moving using X, Y, Z, Axis so there is a value storage,please keep in mind that this can be just float values
example : X: 10.00 Y: 20.00 Z: 12.00.
Usually this kind of data isn't stored by the server side because of his high values and his continues update (keep in mind x2 that the exemple that i give you is a little one,but a game like GTA 5 has way much higher values because the map is verry big.)
They are getting just a start value (Player Spawn) And Leave Value (Last Playe Location On Login Action)
Adding them into a SQL Databases.
Step 2: Storage Types & Databases [2]
I will try to keep it very simple most of the games today use SQL Database because they got a simple system,a lot of supporters,and a very big community of developers,sounds good no?
Well even if SQL is a little "Angel" he likes to eat when you put him on work,and what he "eats" well your server & pc resources,because he needs a lot of "energy" to do the job that you are giving to him
he is using queries that aren't to good optimized he's slow,slow means + some miliseconds / 100 queries if you will store the player ( actor) location in real time you should execute a lot of data just for 1 player,
that means that our little friend delay" is joining us,and we know that delay makes us to leave some games.
Asking yourself why there isn't any solution for this kind of stuff,well, there is a solution but human race is starting to be way to lazy to do some upgrades,especially when big bosses that want the projects to be done very fast so they can get the high amount's of money just to make waste of knowlegde.
there is a little friend called "NO SQL Database" he's like SSD way much faster,but judging that people still learn about it,games don't use it yet,so that leave us a big backdoor when we speak about player movement.
Step 3 : Gathering The Necesary Softwares For Our Little "Fly Cheat"
For this little tutorial we will start by downloading Cheat Engine,you can get it from the official website(how to do it ? http://lmgtfy.com/?q=Cheat+Engine )
Install it,and if you feel to be a good guy/girl that wants to know more follow their tutorial.
I will make this cheat using Shaiya Sekyro game, judging that i'm their web developer they accepted me to do security tests on their server or to cheat :muha:
Please keep in mind that i made this cheat as a beginners side so if you want to get a higher level of knowledge let me know.
1. Start The Cheat Engine.
2.Start The Game And Access Your Character
3. Go Back To Cheat Engine -> Press This little icon -> And Select Your Game Process .
Now judging that i don't want to write the basics in any other tutorial i will let you know some quick info about "software offsets"
after selecting your process the top of cheat engine should look something like this
4.Reading and understanding the offsets.
If you press "Memory View" A new Tab with all the game (client side) information will be shown
Looks a bit creepy right ? trust me is way much simpler than some of you think it is
Example :
add stands for add ( English word)
push means writing the value into a stack
mov move's a value
jmp jump's to an address
ebx & eax call register's
ret return
call stands for calling an address,value
pop popping means restoring whatever is on top of the stack into a register.
Now that you know the basics,on the next tutorials will be way much easier to write for example auto assembling cheats,or getting the necessary data to write an external cheat using address+offset information
Starting To Build The Cheat
Judging that the game let's me know the current location it's very simple,other games don't let you know that using hotkeys,so there you will need to know about filtering,but for the moment let's keep it simple
If i press H in the game i will see something like this
Cool so i got my current location and his values,that makes the job way much easier,let's start to get the necessary values to make our little cheat:
First we will scan for X
in my case it's 577.933 what do i know right now ? the X value and i know the value type much more exactly, it's a float,so my first scan should contain this info
If i press H in the game i will see something like this
Cool so i got my current location and his values,that makes the job way much easier,let's start to get the necessary values to make our little cheat:
First we will scan for X
in my case it's 577.933 what do i know right now ? the X value and i know the value type much more exactly, it's a float,so my first scan should contain this info
Press [First Scan] And last start to see what address keeps this value
335 Results found,sounds good,but they are way to much, the red values keep changing even if i don't move so i don't need to care
about them because i'm not moving so my value is static right now
What should i do ? well it's simple i will get myself a punctual information i will change x value using player movement
335 Results found,sounds good,but they are way to much, the red values keep changing even if i don't move so i don't need to care
about them because i'm not moving so my value is static right now
What should i do ? well it's simple i will get myself a punctual information i will change x value using player movement
After i moved a little bit my X value was changed into "575.381" so now i should tell to cheat engine that
value 577.933 was changed into 575.381
how i do that ? simple i just insert the value and i tell him to do a next scan
value 577.933 was changed into 575.381
how i do that ? simple i just insert the value and i tell him to do a next scan
What's the result now ?
12 Addreses seems legit enough,how can i test to see if they are good ?
Simple if I will move my character the value will become red because they are starting to change so from static values they become dynamic.
Simple if I will move my character the value will become red because they are starting to change so from static values they become dynamic.
Now select all of them using shit+left click,
press shift,click on the first address,keep holding shift and click the last one after that release shift and click
press shift,click on the first address,keep holding shift and click the last one after that release shift and click
Your cheat engine should look like this now
Now judging that we got 3 Axis we need to have a description so we always know that address does.
Again select all of them using shift and click 2 times where on any "no description" you want change it to "X" or any name that offers you the
to edit the values keep them select and press "enter" never enter a value that's more higher then 70 same thing goes for negative.
ex: 583.0067114 + 070.00000,the server side woun't have enough time to know what to do with you so he will reset your location.
Here is a proof,my character will pass trought a door using this cheat.
[yt] https://www.youtube.com/watch?v=tik3uE_t...e=youtu.be [/yt]
Perfect so now you know how to get a value,now to test yourself do the same thing for y, z.
Now judging that we got 3 Axis we need to have a description so we always know that address does.
Again select all of them using shift and click 2 times where on any "no description" you want change it to "X" or any name that offers you the
to edit the values keep them select and press "enter" never enter a value that's more higher then 70 same thing goes for negative.
ex: 583.0067114 + 070.00000,the server side woun't have enough time to know what to do with you so he will reset your location.
Here is a proof,my character will pass trought a door using this cheat.
[yt] https://www.youtube.com/watch?v=tik3uE_t...e=youtu.be [/yt]
Perfect so now you know how to get a value,now to test yourself do the same thing for y, z.
Now to "fly" you need just Y coordinates,select all the y adreses and press space
Now what that [X] means ? it means that cheat engine will keep the inserted values into the game and not his math calculation for y calculation
double click on Y and insert a higher value,or a lower value if you want to get out of the map.
Proof video :
Fly Cheat From Scratch.
[yt] https://www.youtube.com/watch?v=pDuWJM8bR0o [/yt]
Enjoy and let me know if you want more tutorials and what you would like to see on the next ones.
Now what that [X] means ? it means that cheat engine will keep the inserted values into the game and not his math calculation for y calculation
double click on Y and insert a higher value,or a lower value if you want to get out of the map.
Proof video :
Fly Cheat From Scratch.
[yt] https://www.youtube.com/watch?v=pDuWJM8bR0o [/yt]
Enjoy and let me know if you want more tutorials and what you would like to see on the next ones.
"What is hidden can be found
What is yours can be mine"
What is yours can be mine"
Reverse Engineer | RoyalNCoders G
RE: Reverse Engineering For Beginners
21-06-2019, 01:19 AM
#2 thanks for the good information.. can you teach me everything about reverse engineering?
RE: Reverse Engineering For Beginners
08-08-2019, 12:18 PM
#3 Thank you for such a large and lovely post. Will definetely use it in my sessions.
RE: Reverse Engineering For Beginners
21-06-2019, 01:19 AMinucle Wrote: thanks for the good information.. can you teach me everything about reverse engineering?
I don't think there is anyone on this planet that know's everything about reverse engineering, but I'm more then happy to answer on any questions you have.
"What is hidden can be found
What is yours can be mine"
What is yours can be mine"
Reverse Engineer | RoyalNCoders G
RE: Reverse Engineering For Beginners
12-11-2019, 01:47 PM
#5 Well, it looks very complicated for me at first sight.
RE: Reverse Engineering For Beginners
13-11-2019, 09:43 AM
#6 This is one of the best writeups I've seen yet, I've been considering getting more in depth with this kinda thing and this has been very helpful.
RE: Reverse Engineering For Beginners
17-11-2019, 12:40 PM
#7 At first look it looks complicated just as the guy higher said.
RE: Reverse Engineering For Beginners
17-11-2019, 02:50 PM
#8 Wow..The Cheat Engine still alive...I used it back in time...And when i say back in time i say at least 7 years ago....
RE: Reverse Engineering For Beginners
17-11-2019, 04:19 PM
#9 Man, this text is really complete and detail i'll test now
Users browsing this thread: 1 Guest(s)