So guess now we'll be taking a look at this contraflow instructions, contraflow means controlling the
program's flow.
So how we can control the program through changing the instruction point?
Well, I have already said that we cannot change the AP very normal instructions.
That means we cannot change the system very by simply say more to subtract or multiplication, etc.
But there are some instructions that can change the P value.
OK, now let's take a look at that.
Those instructions and these are divided into two types.
Those are unconditional dump and conditional jumps.
So unconditional dumpings, the program flow dumps from a particular point to another point, whatever
the condition may be.
OK, let's check the syntax and the syntax dump space address.
So whenever this instruction has been executed and the program jumps to this address directly, so the
instructions in between the next address and this address will not get executed.
That's why this is called conditional, because we are not taking any condition before the jump and
we are definitely performing a jump to this address.
That's why this is called unconditional.
You now, before we want you see there are conditions, we need to take a look at the Arizona instruction
called COMPAR Instruction.
So this instruction takes to values and compares each of them.
So compare Ebix commonly.
So it takes the Ebix values and the value and then compares the board to the values.
But it does not show the result, but it affects the extended flaks like in 04, Exane Flag four, etc..
So based on those flags, these conditional jumps takes place.
Actually, this company instruction subtracts both of these teachers, but both of these are different
values and then sets the extended fact values based on those extended flag values, these conditional
dump's takes place.
Now, let's take a look at this.
Are these conditional jumps first one is greater than jump greater then.
So after this operation, Ebix, where say Ebix contains 50.
So the next construction will be letting this dump is greater than to the address.
So Fifi's obviously greater than can be.
So the Democrats then will get a ticket and the jumps take place and in the same way jump if greater
than or equal to.
And jump, jump, start, so let's say Ebix contains the value and then I will shoot and then Contee
then the next injection, if we write Jampolis then put this to any address.
Since this dump takes place, if you will, its contents value 30 cents, that is not less than guaranteed,
then this dump will not take place and program continue get normally in a similar way, jump less than
equal, generally stands for less than are equal to.
And finally, James jump is equal if sponte the exact value of this right upfront wanted 2010 only the
jumps takes place.
So these are the basic jumps you need to know.
There are so many dumps based on the external facts.
You you can check on Google that jump jump jumps injection table.
These dumps are very important in the expectation perspective when in the Buffalo first, sometimes
application will take the jump E.S.P Xcode as a backwater, then these jumps comes handy.
OK, guys, that's all some expectation concept now we're going to want to you and let's take a look
at some examples of this now.
Let me create a new file.
Now I'm reading the Groberg, Scott.
Now, I am that in the section.
Now, let's start our chat function.
Now, what I'm going to do is I'm going to move your camera.
30.
More e-books, karma, Condee.
No, what I am going to do is I will say jump blue and so there is no simple label or function in our
assembly code.
No, we are going to create a temp.
This is the temp label and.
OK, actually, right.
OK, let's say some normal instructions, easy cover 50.
Politics, karma, and so whenever my program is executing this court, this is the unconditional jump
that means the program jumps to this level directly.
Now, let's write one instruction after this dump instruction that is moving X comma 40 to show you
guys that year while you will study, because this jump radically changes the education properties level
and this instruction will not get executed.
Now, let's show this.
While not somebody with an awesome.
Down the street with Ali.
Since we're not printing any output, I will be opening likely died during delivery worker.
Now, let me start with the breakpoint at the start function, since we know that there is a short function.
Now let's run our program.
So we are moving the money value, which is OK, one value that is in hexadecimal, so e X contains
one value.
Now we are placing the Dirac's one quarter into e-books, so I'll give an absolutely fine.
Yes, contents one, e-books, contents one.
For now, the instruction takes place.
Jump to this address, which is them.
Now, as you can see, there is a little arrow mark here, arrow pointing to that level.
Now you can see the next section is what we direct onto.
That is we we have we are trying to modify it again, but it won't get more difficult because we are
jumping to the stamp.
So this instruction is kepel.
If they're on this, you can see the exact content still funny.
So this an you see now, this temporary contains some coal, which most an area that is not very much
important.
Now let's cut our program.
Now let's see the conditional jumps.
No, I'm going to compare your ex on.
Thirty six eggs, condensed day, and we are also comparing with 30, it will be equal value.
Now I'm going to jump you.
We call.
Now, let's.
OK, at the same time, we will move to another jumper here to show you are conditional jumps in the
singular program.
I mean, at a time no issues content 50 is a compare you see with.
Hundred since six is going to be less than a hundred.
Now, if I said jump for less, then to test.
Then our program for now that the court at the test level gets a DeCoutere.
Now, let's stop right there, a town called.
OK, guys, now what we have done is we are taking the exit party, so this is so dump president takes
place to the top and bottom.
The core of the template will get a bit more comfy.
And then we are comparing you six hundred since he is less than 100.
This dump takes place and this section will not get executed.
Now, let's see all of this inaudible good.
Now, I'm pushing the break point at the start.
Now, let's run the program.
Now we are moving the value for money in politics and one foot into e-books, just like previous matter,
previous example?
No, we are comparing year with one year since EGS also contains only.
Now the flag is set, you can see the flag here because this combat operation subtracts these values
and checks since these two areas are same, the same production business, the Gedo and the producer,
so difficult districts, this takes the flag.
And you can see there is a Aramark.
Again, it tells us that our jump is successful.
So this more direction did not get executed.
Now we're going to try to do that easy.
It's so easy to do.
That's fine.
No, we are comparing it to 64.
Shin, 64, is greater than the 32 dumpy president, so this is the reason that why don't pay for this
done and the dumped program jumps to this test function global.
And as you can see, politics come out here did not get executed because it contains zero, that means
the jump has successfully taken.
No, we can see the normal Shankaracharya if we can run this program, as it would normally.
So that's all you need to know about the basic jumps.
Yes, I hope we have understood.