All right, guys, I've got my black hoodie on.
So now it's time for another challenge.
The next challenge.
We are dealing with an application that has a rooting detection enabled, and we need to bypass this
to analyze this application by identifying the device's root it.
The application goes into a secure mode and will disable the user log in.
If you want to analyze this app, we need to bypass this routing detection.
To do this, we need to reverse engineer this app and figure out how this rooting detection works.
Most of the time they work in the same pattern.
They try to identify certain binaries.
For example, the binary strange system settings.
For example, if the system partition is rewritable mounted or other texts and features.
After identifying them, there will be an update on Fleck that signals okay.
For example, through a boolean value, this device is routed or false.
This device is not routed.
Your task will be to identify and patch this track.
So the application needs to think that it's running on a non rooted device.
Even if it does run on a rooted device.
You are better prepared regarding to skills and knowledge to solve this task, which is super amazing
because this routine detection has been taken from a real world application.
I will name the author and give the credits to him in the solution video because I do not want to spoil
it right now.
But if you can solve this task right now, you can solve a real world application regarding detection.
And this is an amazing and also necessary step because if we analyze real world applications, we often
have to perform this task.
Sometimes they are pretty easy and sometimes it's really, really hard to bypass them.
But we need to consider a rooting.
Detection is not a security mechanism to block attackers, and rooting detection is a security mechanism
regarding to the client, the user that the user does not accidentally install an application on the
root device.
Sometimes developers get this wrong and thinks, okay, if I implement a rooting detection, an attacker
cannot analyze and hack my application anymore.
But a rooting detection is always a client side mechanism.
By having a client side security mechanism, an attacker can bypass and circumvent this.
Sometimes it doesn't take that much effort and time and sometimes it's really, really hard, but at
the end it will be possible.
So please keep this in mind.
Even if you implement the hardest rooting detection ever, it will be still possible to bypass it.
And even if not, an attacker can still analyze your application or hack this application without having
root privileges.
We are doing this for quite a while right now.
We are patching this Mali code and this has nothing to do with having root privileges.
You can do this on a normal smartphone also.
Therefore, just please consider a rooting detection as another protection layer, but not as the de
facto protection layer that your application cannot get hacked.
Okay.
But now let's get back to this topic.
We are installing this application and have a look into this, how it works.
Then you will have all the time that is required for you to solve this challenge, and we do it.
As always, I provide you a solution video where I give some additional hints and you can pause and
rewind this video to solve this challenge.
Even if you struggled at the beginning a little bit, this is now a real world application and it would
be very amazing if you can already solve this.
But even if not, if you are able to solve it after this video.
So if you understand how it works and if you have patched it on your own even once, then you are well
prepared for real world applications.
All right, so let's have a look.
Okay.
I've downloaded this application.
And you can find it here.
It's named a root check.
So let's install this ADB connect connector, ADB install, root check and let's get the screen.
All right.
Here we go.
We've got us root check over here.
And if you open this application.
Device is routed, secure mode is enabled.
We do not have a lock in over there, so the user is being protected for not doing the dummy things
on a router device.
With this application, it's a user protection.
It blocks you right now from accessing or analyzing this application, but maybe you can bypass this
and then the protection has gone.
So you can do this challenge in very different ways.
But one way is enough so you do not have to do it in three or four ways.
It's of course a nice practice if you do so, but having one working solution is absolutely fine for
me right now.
Also, have a look at the cheat sheet regarding two registers and boolean values, patching and also
the if statements.
These are useful hints and they can help you out on this.
Not all of them at the same time, but yeah.
Regarding to certain single steps.
All right, now, good luck on this one.
And yeah, I see you in the solution video.
Let's go.