All right, guys, welcome to the final chapter.
This will be all about runtime manipulation.
And now we finally have a look into the maybe most amazing framework out there regarding to this topic.
This framework is free to end, free to it's you will see why it's that amazing in just a few sections
free that is available for many platforms.
So you can use this on Android, iOS, Linux, Windows and maybe more.
I'm not sure about this one, but the developer keeps pushing this further and further, which is also
pretty amazing.
All right.
We have already seen freedom in our certificate pinning approach.
So within the framework objection, which is based on freedom, we could simply perpetuate the whole
certificate pinning of this application.
Okay.
So here we have our components, we've got the smartphone, we've got the client, which is the laptop,
and we also got the Java virtual machine each MDM.
This Java virtual machine is managing the whole Java code.
And for example, if you write an application our app in Java, then all this code, these classes,
methods, instance variables, these will be on hold in the JVM.
The JVM is running on your smartphone, so your Android device has this Java virtual machine and stores
all the application code in there.
Now, if you're using a class in our application, for example, the activity class or the integer class,
the string class, then all these classes getting loaded from this Java virtual machine.
So this is a very, very important factor on our smartphone.
And this is now the amazing part with freedom.
And freedom is hooking into this JVM and we can perform any runtime manipulation we like so we can dynamically
change the code in there, which is it's freaking amazing.
So you will see this in a moment.
And for now, let's see what we need for freedom.
So free.
The way we are using it consists of two components.
We've got the server and this one over here.
This is running on the smartphone and we also got the client which is running on the declined in our
case, the laptop.
These two components you can think of this right now as the backup.
So if you are playing around with CDB, you also have from CDB server, that's one running on the smartphone
and we've got the CDB client which connects to the server.
So the server needs to be installed on the smartphone.
But this is just the binary.
The amazing part with Rita is that we are not requiring root privileges, so it makes it a lot easier
and we start by having root privileges, but we will learn later on how we can use freedom without having
root privileges.
But that's that's an step later on right now.
Okay.
Back to this topic over here.
So we've got our server running on the smartphone and we've got the client.
Okay.
So now is the question, how can we communicate with these instances?
And there are two possibilities out there.
One of them is JavaScript and one of them is Python.
And normally, yes, I would definitely prefer Python, but the back end system of Rita has been also
written in JavaScript.
Therefore, I like to stick to the JavaScript approach and we will do this in this course over here.
Do not worry about this.
I'm not in JavaScript expert and you do not need to have essential JavaScript skills.
I will.
I will provide you everything you need to know.
Alrighty.
Okay.
So now we know how the client and the server are being connected and the back end of the freedom looks
as follows.
The server is now hooking into the process we are providing in the client and this one over here, and
this one is done also on a JavaScript approach as already mentioned.
I guess now it's quick changes and before it has been the V8 engine.
But this might also change in the future because this framework, even after five or six years, it's
being heavily further developed, which is the most amazing part of this framework over here.
Okay, so now the server is hooking into the Java virtual machine and this is the point where all our
code is so the server can now modify or change the code at the runtime.
This is now the memory holding this code and we can change this in memory, which is freaking amazing.
And so we get access to those classes, methods, instance, fields, variables, whatever we like over
here we can also change base functionalities like for example, the random generator in this smartphone
over here, at least for our applications, which is I mean, yeah, okay, stop with the hype.
We will find this out in a moment.
All right.
So that's the debate structure, Rita, in a nutshell, on a very high level.
All right.
So that's all for the quick introduction regarding to freedom.
And the next one, we will start installing this framework and then we will also see our first scripts.
We are going to write in Frida and therefore I'm looking forward to see you there.