Hello and welcome to the Android app, Hacking Black Bag Edition.
I'm super excited to have you here.
During this course, we will learn really complex topics like Smiley while having a lot of fun.
So we will learn Smiley by patching in mobile game to have infinity flies be invincible, invisible.
We add more than one player short and many more.
But before we can do all of this, we have to set it up first.
So I try my best to make this as exciting as possible for you.
Okay.
The question might be what requirements do I need for this course?
And the answer for this one is absolutely none.
Even if you have never, ever analyzed an Android application within this course, I will get you from
zero to be an absolutely expert in Android App Security who can easily deal with people who have many
years of experience out there.
All right.
Okay.
And even if you have already experienced, you are still perfectly fine here.
You just might want to skip certain chapters like the installation part, but I guess you will find
out which one.
All right, back to this one.
So no requirements.
Perfect.
What else do we need?
Do we need an really wise and dedicated laptop?
Let's find this out.
Okay.
If you want to hack an Android application, we need some kind of interaction with the device.
The question is now, do I need to get an read device?
The answer for this one is no.
We can also visualize the Android system in our system, so on our laptop.
But having a real device is a better user experience.
And there are also differences between testing on a real device and an emulator or virtual machine.
We will have to look into the differences in just a moment.
Okay.
If you are using a real device, how does the interaction look like?
Well, the interaction with the mobile application is then based on USB or wi fi, so we can use both.
But to be honest, I mean, there's only one solution we should choose.
And this is USB because wi fi, it's it's really not that statement.
All right.
So we simply connect our USB cable, then we perform all of our stuff and then we can start hacking
in application.
That's the theory.
We will learn more about this in the installation part.
The setup part.
Okay.
So what else can we do based on this USB connection?
Well, we can do a lot of things.
For example, we can use the Android Debug Bridge to interact with the device.
We can use the Java Debug Buyer Protocol to debug Java code.
We can use CDB to debug Native C code and we can use that and many more.
So this is by far the best setup using a dedicated device and in dedicated laptop for all these tasks.
But it's also the most expensive one in case if you do not have that much money, absolutely no problem.
We can skip having a free device.
Okay.
If you're not having a device, then we can use virtualization.
We can use, for example, the emulator which comes shipped with the Android studio.
We will learn how to set this up and use the emulator in a separate section, but you can do all of
our tasks within this emulator.
Besides this emulator, be having a third option to virtualize the Android system, and this is using
a dedicated virtual machine.
I mean, the virtual machine and the emulator are pretty similar, but we can use them in different
setups, which we are going to talk in just a moment about.
All right.
So these are our options, using any device, using an emulator and using in virtual machine.
In case if you are not having a dedicated laptop for all these testing, we might encounter a little
bit of an issue.
Right now.
It's doable, but it's not the best user experience.
So let me show you what I mean.
Okay.
We set up that I do not recommend this the following.
If you're using a laptop and we're using this laptop for other stuff, then we need to run a virtual
machine for our system.
So in this course we are using an Ubuntu system, but you can also use Kali or whatever you like.
I recommend using ubuntu because I have tested everything and it works perfectly fine on the ubuntu
system.
All right.
If we are now using an Ubuntu system, we need some kind of virtualization, for example, VMware,
VirtualBox to Aimo or other things.
These visualizations are using an hypervisor and this hypervisor is sharing resources from our real
laptop.
This one, for example.
To the virtual machine.
So these resources are now being shared between those two so far.
Absolutely no problem.
This is why we have virtualization.
But now if we are running another virtual machine in our virtual machine, so let's say our Linux VM
is now our Ubuntu system where we are installing all these tools, Android studio and many more.
And we are now starting the emulator from this virtual machine, from this Linux VM.
Then we need another hypervisor.
This hypervisor is once again sharing those resources from our already shared hypervisor with the newly
VM OC.
The explanation might be a little bit rough, so therefore let's do it once again.
Our real laptop.
This one here is now sharing the resources within a virtual machine.
And this virtual machine is sharing those resources with another virtual machine.
So this is now a nested virtualization and this is by far the worst user experience.
I have tested the setup during this course and it works.
I have used eight gigabytes of RAM and just two or four CPU cores, but to be honest, it's definitely
not recommended.
So that's the worst user experience you could have.
The better option would be using and dedicated laptop at least.
So in case if you do not have memory device, maybe you have a Linux system already running, then you
can use this system by doing this.
We are having our hypervisor once again, but now this time we shared those resources only with one
instance at a time.
So this is perfectly fine.
And if you are not having any device, this is yeah, that's the second best option.
Okay.
All right.
Now let's have a look at the differences between using an real smartphone and virtual machine or emulator.
I will summarize with the machine and emulator because these are these are the same.
All right.
So let's have a look.
Let's talk about route access, smartphone versus virtual machine or emulator on a real smartphone.
It's sometimes not possible to get root access or it requires a tremendous amount of work.
And you could also break your device.
Therefore, it's, let's say, yellow using an virtual machine or emulator, you gain directly root
access.
So that's definitely pro for virtual machine performance.
I mean, on a smartphone, this is the best performance we can encounter using a virtual machine or
emulator.
If you have enough resources, it's also perfectly fine.
Next, we have the platform support.
And here, I mean, if all these applications working on both instances on a smartphone, of course.
Yes.
And now it's getting tricky on an emulator or virtual machine.
It doesn't have to be the case.
So Android smartphone is using the ARM architecture.
This is a different one than the virtual machine or the emulator.
They are using the same as your laptop, the x86.
You could emulate the arm architecture on your laptop, but this is terrible slow.
So this is definitely not recommended.
What does this mean right now?
It could be the case if you are using an application that it does not run on virtual machine or an emulator.
It just runs on re devices because it's made for the ARM architecture.
This is not the case during this course.
This is also pretty rare happening out there.
I have encountered it, I guess five or ten times that this was the case, that I couldn't run this
application on an emulator over to a machine.
It means if you're using, for example, Native C code and you just compile those libraries for the
ARM architecture, then it does not run on your virtual machine for this course.
It's absolutely no problem.
In case if you want to start your career in Android app hacking, I really recommend using every device
because then you definitely have no issues.
All right.
Okay.
Next smartphone features, SMS, phone calls, things like this re device, of course, virtual machine
or emulator.
It depends.
So you cannot, for what, real messages or records, but you can fake them.
So they are apps out there, but you can send your own SMS or make your own phone calls.
But this could be also an advantage because you can test certain things like spamming a lot of SMS without
even paying for them.
All right.
Up to date smartphone, it depends.
So if you're using a new device right now, you should be fine for the next four years.
Absolutely no problem with in the emulator, you can choose between different devices and then you can
pick the one who has the most up to date versions.
So that's definitely in pro.
Regarding to the emulator price, I mean, and smartphone is way more expensive than an emulator over
to a machine which are free.
So therefore this point goes to the virtual machine or emulator.
Okay.
So far, this is the comparison.
I mean, both are pretty identical besides the fact that an application might not really.
Just run on an virtual machine or emulator.
Then you need to get a dedicated device in this course.
Absolutely no problem.
If you want to start your career.
I recommend getting one.
All right.
Okay.
So this means we can easily move on with the virtual machine or emulator for the whole course out there.
All right.
Let's sum this up, because, I mean, this was now a lot of stuff.
The most preferred setup is using a dedicated laptop and dedicated device.
The second most preferred setup is using a dedicated laptop and using an emulator over to a machine.
And the at least recommended setup is using a nested virtualization.
So here it will be a little bit laggy, but it also works.
These are the three options we have.
Choose whatever you like, and in case if you have questions regarding to one, then please drop me
a message underneath this video.
All right.
Okay.
So I'm looking forward to see you in the next video.