1 00:00:00,530 --> 00:00:02,830 Hello and welcome back. 2 00:00:02,840 --> 00:00:13,370 In this letter and I'm going to show you some of these uh points differences between greetings hero 3 00:00:13,440 --> 00:00:24,300 programs setting preferences how to view and use this assembler window pane while the entry points and 4 00:00:24,360 --> 00:00:31,190 so the basic commands to step over the program's line by line. 5 00:00:31,930 --> 00:00:34,090 OK let's get started now. 6 00:00:34,250 --> 00:00:44,180 If you go back and look at the place where you download this cracked me it is stated by the author which 7 00:00:44,190 --> 00:00:51,650 you see a programmer and that this is a very easy fly What do you mean by fly. 8 00:00:52,730 --> 00:00:56,760 Flag is a kind of password. 9 00:00:57,170 --> 00:01:04,670 You can also view it as a serial number which you're supposed to find from the program. 10 00:01:04,670 --> 00:01:08,450 Let's take a look at a program which we downloaded here. 11 00:01:08,630 --> 00:01:10,390 If you were to double click and run in 12 00:01:13,360 --> 00:01:16,020 he would just open and close. 13 00:01:16,030 --> 00:01:24,500 Very briefly so this shows that it is a command line interface program which you need to use run from 14 00:01:24,500 --> 00:01:27,320 the command from. 15 00:01:27,710 --> 00:01:32,690 So you need to open up on prom and run it. 16 00:01:32,900 --> 00:01:39,270 So that gives us he first example of the differences between GRI ends here. 17 00:01:39,320 --> 00:01:46,250 Programs great programs graphical user interface programs which are those programs. 18 00:01:46,260 --> 00:01:49,060 We have a window and the mouse. 19 00:01:49,060 --> 00:01:57,620 It can be used to click to run our two minute program CNI programs command line interface programs such 20 00:01:57,620 --> 00:01:59,280 as this. 21 00:01:59,360 --> 00:02:07,640 So when we first start to learn about software cracking we would like to keep things simple and learn 22 00:02:07,670 --> 00:02:15,380 how to create come online interface programs first and then later on we can move to the graphical user 23 00:02:15,380 --> 00:02:16,010 interface. 24 00:02:16,970 --> 00:02:24,050 So this Mexican great me is a command line interface program so to run the program we need to open the 25 00:02:24,050 --> 00:02:27,530 command line from initially how did it then. 26 00:02:27,590 --> 00:02:37,340 So you click on the bottom left corner right click on it and look for command from and then open a command 27 00:02:37,380 --> 00:02:44,650 problem and then issue navigate to this location of the uh correct me. 28 00:02:44,650 --> 00:02:53,810 So you can type C D E C colon backslash followed by this. 29 00:02:53,890 --> 00:02:58,150 You can type it out manually type this 30 00:03:02,290 --> 00:03:10,060 or an easier way is to simply type C D and then from here. 31 00:03:10,060 --> 00:03:21,860 Copy the path and here correctly base and then presenter immediately you enter the correct folder that 32 00:03:21,860 --> 00:03:24,230 contains your correct me. 33 00:03:24,480 --> 00:03:27,210 So not to run it from the command line prompt. 34 00:03:27,380 --> 00:03:38,540 First you must list the content of this directory by typing D I R and enter and you will see the name 35 00:03:38,600 --> 00:03:46,430 of your correct me which is called on Title 1 EIC not to run the program from the command line you do 36 00:03:46,430 --> 00:03:47,440 something like this. 37 00:03:47,450 --> 00:03:50,120 He would take the name of the program. 38 00:03:50,510 --> 00:03:53,560 He didn't have to spell it out in full. 39 00:03:53,570 --> 00:04:02,110 You can just type you in and press the tab key on your keyboard and you will complete the name for you. 40 00:04:02,120 --> 00:04:10,470 Now we just have to press enter to run it and you can see you can see an output see try hard. 41 00:04:10,900 --> 00:04:21,770 OK so this is why it shows you that you need to find a way to get hold of the flag. 42 00:04:21,810 --> 00:04:25,190 The zero no password or whatever you might like to call it. 43 00:04:26,450 --> 00:04:36,950 So in the among hacking circles and cracking and groups this trying to find out the sheer number or 44 00:04:37,410 --> 00:04:46,110 the password or some secret phrase is called Capture the Flag CTF in shot CTF. 45 00:04:46,250 --> 00:04:48,140 So this uh tracking 46 00:04:50,690 --> 00:04:54,760 activity is something like trying to capture the flag as well. 47 00:04:54,830 --> 00:04:58,680 So that's why this auto series is a very easy Capture the Flag. 48 00:04:59,150 --> 00:05:02,000 So at the moment this program is teasing you. 49 00:05:02,040 --> 00:05:03,290 I seem to try harder. 50 00:05:03,710 --> 00:05:07,070 So OK now I will show you how to capture the flag. 51 00:05:07,970 --> 00:05:17,240 So what we going to do is firstly analyze this program which I've shown you how to do in the previous 52 00:05:17,240 --> 00:05:27,190 lessons that used to open in view of the i.e. so in your point of view i.e. you will show you the entry 53 00:05:27,190 --> 00:05:29,810 point any emission base. 54 00:05:29,830 --> 00:05:36,370 So this is a hint to tell you where there's a program start to run and what are these numbers. 55 00:05:36,370 --> 00:05:40,120 These numbers are memory addresses KMI closes and show you. 56 00:05:40,960 --> 00:05:52,210 So now we are going to open this cracked me using the x 64 BBG so I get and drop it here and run. 57 00:05:52,650 --> 00:06:01,540 Okay so now is the moment you open this program you can see so this started by his past day and it is 58 00:06:01,630 --> 00:06:03,900 past at this entry point. 59 00:06:03,940 --> 00:06:05,300 This is not entry point very well. 60 00:06:05,330 --> 00:06:08,790 It is starting off the operating system. 61 00:06:08,790 --> 00:06:10,450 It is not yet your program. 62 00:06:10,450 --> 00:06:14,400 You haven't even enter your program yet you are in the operating system. 63 00:06:14,590 --> 00:06:15,880 So how do I know that. 64 00:06:16,240 --> 00:06:24,880 Because early on when we analyzed a program by opening of even the IEEE the IEEE showed us that the 65 00:06:24,880 --> 00:06:30,990 entry point is at this location in Mission bases at this location. 66 00:06:31,120 --> 00:06:38,480 So an image based his the address you enter your program starts but it is not the entry point to get 67 00:06:38,480 --> 00:06:39,530 the entry point. 68 00:06:39,550 --> 00:06:44,410 You must take this no which is in hexadecimal. 69 00:06:45,370 --> 00:06:50,010 Add to this number the image base and that would give you your entry point. 70 00:06:50,140 --> 00:06:56,740 So the entry point should be 0 0 4 0 1 4 He's 0. 71 00:06:56,740 --> 00:06:58,170 That is the entry point. 72 00:06:58,290 --> 00:06:58,930 Okay. 73 00:06:59,020 --> 00:07:01,560 And from here we can reach the entry point. 74 00:07:01,570 --> 00:07:02,530 I'll show you how to do it. 75 00:07:03,040 --> 00:07:12,050 But first things first we need to set some references for our access before the G so to set the preferences. 76 00:07:12,160 --> 00:07:21,570 We go to Options and top here click on preferences and we want to uncheck this the s convex or there 77 00:07:21,570 --> 00:07:25,510 is no need to know what this means because the only gets more confusing. 78 00:07:25,510 --> 00:07:28,550 But trust me you don't want to have this checked. 79 00:07:28,900 --> 00:07:35,980 So for all your tracking projects we should sure this is unchecked and normally you only have to do 80 00:07:35,980 --> 00:07:39,200 this once and even will remain unchecked. 81 00:07:39,250 --> 00:07:45,640 So yes unchained is the second thing you want to do is go to the accession. 82 00:07:45,670 --> 00:07:49,710 So this events there now would a sessions that. 83 00:07:49,960 --> 00:07:57,490 And here you are going to enter a range of exceptions and what I section say exceptions are errors that 84 00:07:57,580 --> 00:07:59,760 arise in the program. 85 00:07:59,780 --> 00:08:04,980 Now X 64 DV G is able to handle any errors that arise. 86 00:08:05,020 --> 00:08:12,840 It is a debugger after all but for cracking solver purposes we want to truly roll back to the program. 87 00:08:13,240 --> 00:08:21,280 So we are gonna tell X 64 DB g to ignore all errors so that the program will handle it and we can analyze 88 00:08:21,280 --> 00:08:22,960 his behavior better. 89 00:08:23,170 --> 00:08:27,440 So we have to add these exceptions here. 90 00:08:27,670 --> 00:08:30,580 So click on Add range no exceptions. 91 00:08:30,740 --> 00:08:38,650 Range from the numbers 0 0 0 0 0 0 0 0. 92 00:08:38,690 --> 00:08:42,230 There are eight zeros there and here. 93 00:08:42,460 --> 00:08:47,030 It FS have have have have. 94 00:08:47,110 --> 00:08:49,980 For f f f. 95 00:08:50,220 --> 00:08:52,180 It s so this. 96 00:08:52,190 --> 00:08:53,150 Okay. 97 00:08:53,210 --> 00:09:01,520 If you have these so this means that you won your SCC for debugger to ignore all these errors and truly 98 00:09:01,520 --> 00:09:06,080 back to the running program to handle it so that we can observe its behavior. 99 00:09:06,590 --> 00:09:09,620 So now just click save and we are all set. 100 00:09:10,370 --> 00:09:16,490 So now you can see the program pass and this uh operating system address. 101 00:09:16,700 --> 00:09:19,110 So let me explain to you what all this means. 102 00:09:19,280 --> 00:09:26,030 Now the first column is known as the address address in REM memory. 103 00:09:26,060 --> 00:09:37,240 The second column is your quote in binary form written has hex numbers. 104 00:09:37,310 --> 00:09:41,330 If these numbers are actually in 1 0 1 0 1 0 and so on. 105 00:09:41,360 --> 00:09:49,370 But to make the numbers shorter we put it in hexadecimal form. 106 00:09:49,550 --> 00:09:56,270 So this actually known as COP quotes on machine inputs of course. 107 00:09:56,330 --> 00:10:04,370 So for the most part we are just gonna ignore this our codes and in the third column is your interpretation 108 00:10:04,640 --> 00:10:08,360 of this of codes in human readable form. 109 00:10:08,420 --> 00:10:15,830 So this is this human rule form is what we call assembly language and that is where we get a name. 110 00:10:15,830 --> 00:10:26,000 This assembler from this program exists for the BBG is this assembler because in this assemble the machine 111 00:10:26,000 --> 00:10:30,890 code into human readable form car assembly code. 112 00:10:31,550 --> 00:10:39,880 So from code on wishing code to assembly code or assembly program. 113 00:10:39,880 --> 00:10:41,960 And this is what we are looking at. 114 00:10:42,010 --> 00:10:50,920 Most of the time because this is human readable so the tech column in the fourth column here is the 115 00:10:52,570 --> 00:10:54,250 comment column. 116 00:10:54,250 --> 00:10:58,780 The comment column sometimes is populated by strings like this. 117 00:10:58,810 --> 00:10:59,790 You can see the comment. 118 00:10:59,800 --> 00:11:05,100 These comments are inserted helpfully by existing for the BJP. 119 00:11:05,230 --> 00:11:13,120 And it makes our job much easier because the excessive for the BJP has interpreted some of the meaning 120 00:11:13,120 --> 00:11:21,530 of this symbol and show it to us here and we'll be making our use use of this quite a lot as we go along. 121 00:11:21,610 --> 00:11:27,580 Now there is one more column which I mean meta which is over here and this is something like a graph. 122 00:11:27,610 --> 00:11:36,220 So this graph here tried to map how the instructions are really jumping from one location to another. 123 00:11:36,220 --> 00:11:40,510 For example you see this instruction would jump from here to here. 124 00:11:40,510 --> 00:11:46,200 This and many of you jump GJ all these instructions that you in Jamie's to jump. 125 00:11:46,340 --> 00:11:51,410 And yeah many of them you can see here jump here and then here's another jam. 126 00:11:51,540 --> 00:11:57,740 All those things studying J means jam and I'll get I'll explain that in greater detail later. 127 00:11:57,790 --> 00:12:04,520 OK so this is how you interpret this assembly window or this assembly view. 128 00:12:04,570 --> 00:12:04,870 OK. 129 00:12:04,870 --> 00:12:11,010 So now we start whenever you start a program he always starts in the operating system here. 130 00:12:11,410 --> 00:12:19,390 And if you want to restart the program you just click on this then restart and you start all over again 131 00:12:19,790 --> 00:12:22,080 in the operating system. 132 00:12:22,150 --> 00:12:23,540 Now realign our brain system. 133 00:12:23,560 --> 00:12:30,840 We are not yet in this entry point your entry point is entry point for your. 134 00:12:30,840 --> 00:12:32,360 Correct me sir. 135 00:12:32,430 --> 00:12:35,940 So we do not one to correct the operating system. 136 00:12:35,940 --> 00:12:38,670 We want to create the correct me sir. 137 00:12:38,700 --> 00:12:44,910 So we have to go to this image address location so remember this is address. 138 00:12:44,910 --> 00:12:49,790 So we have to go to 0 4 0 0 1 4 0. 139 00:12:50,220 --> 00:12:52,160 So to go there there is a shortcut. 140 00:12:52,170 --> 00:12:54,400 Way to go to directly. 141 00:12:54,600 --> 00:13:03,680 That is by clicking this button front or pressing F nine on the key what we do the same thing. 142 00:13:03,720 --> 00:13:09,890 So you click this now or press F nine and immediately watch the address as I click on this. 143 00:13:09,990 --> 00:13:11,850 It goes straight to the entry point. 144 00:13:12,600 --> 00:13:19,980 So this entry point is supposed to be your entry point for your program. 145 00:13:19,980 --> 00:13:20,430 All right. 146 00:13:20,460 --> 00:13:25,160 4 0 1 4 3 0 OK. 147 00:13:25,200 --> 00:13:26,190 So we are correct. 148 00:13:26,820 --> 00:13:35,190 So we study the entry point for one for each zero and you can compare the IEEE take this number at this 149 00:13:35,400 --> 00:13:39,660 and you get this number for 0 1 for each 0. 150 00:13:39,690 --> 00:13:46,780 So this is how you can know where is the entry point supposed to be and to go there. 151 00:13:46,890 --> 00:13:50,450 All you need to do is restart the program. 152 00:13:50,520 --> 00:13:56,300 Take this one time and you will land on your entry point sometimes. 153 00:13:56,450 --> 00:13:59,700 This command does not show entry point here. 154 00:13:59,690 --> 00:14:02,050 So sometime this might be just be a blank. 155 00:14:02,090 --> 00:14:08,180 So if this is a blank even you want to confirm whether this is ready to go the entry point always refer 156 00:14:08,180 --> 00:14:12,060 back to the IEEE the IEEE detected. 157 00:14:12,080 --> 00:14:12,830 Easy. 158 00:14:12,910 --> 00:14:15,320 We'll show you the entry point. 159 00:14:15,440 --> 00:14:21,100 Just take this hex number add to this Can you get this entry point. 160 00:14:21,440 --> 00:14:21,700 OK. 161 00:14:21,740 --> 00:14:27,970 So that is how we launch our program into the entry point. 162 00:14:28,010 --> 00:14:28,270 All right. 163 00:14:28,280 --> 00:14:36,830 So the next thing I want to show you is how do we step through all these instructions to the step to 164 00:14:36,830 --> 00:14:37,960 the instructions. 165 00:14:38,090 --> 00:14:42,380 We will press the F A key on the keyboard. 166 00:14:42,380 --> 00:14:52,370 Or you can click this key this button which means step over so f it key is to step over F nine is to 167 00:14:52,370 --> 00:15:00,760 run what is the difference if you click f if you click this button and run or press F nine you will 168 00:15:00,770 --> 00:15:03,020 run in the program. 169 00:15:03,110 --> 00:15:08,130 That means you will go through the program without stopping and your program has terminated. 170 00:15:08,450 --> 00:15:13,400 As you can see on the top bottom left on the bottom left corner committed to debugging stop. 171 00:15:13,880 --> 00:15:17,350 So we doing 1 2 press F nine all the time. 172 00:15:17,390 --> 00:15:21,860 That's why we need press f it after pressing F nine to hit. 173 00:15:21,860 --> 00:15:22,820 How do we find. 174 00:15:23,330 --> 00:15:24,410 So let's try again. 175 00:15:24,410 --> 00:15:29,230 We start now we are starting to go to the entry point. 176 00:15:29,510 --> 00:15:30,680 What do we do. 177 00:15:30,680 --> 00:15:40,460 We press F nine on the keyboard click on this button run and we land in a two point okay. 178 00:15:40,490 --> 00:15:43,680 So now we want to step through line by line. 179 00:15:43,940 --> 00:15:54,160 We should press f 8 or this button so we keep pressing f here or we click on this but then he will move 180 00:15:54,160 --> 00:16:00,210 from one instruction to the other in sequence from top to bottom. 181 00:16:00,310 --> 00:16:05,470 Sometimes he may jump all over the place let's take a look. 182 00:16:07,060 --> 00:16:07,730 Okay. 183 00:16:07,780 --> 00:16:17,870 This call will go to this address 4 0 2 6 8 0 and an income back continue here okay. 184 00:16:17,880 --> 00:16:18,900 So you go. 185 00:16:19,030 --> 00:16:21,040 You go to the address. 186 00:16:21,240 --> 00:16:24,390 Come back here in this step. 187 00:16:24,420 --> 00:16:24,620 Call 188 00:16:29,090 --> 00:16:30,290 keep on pressing f it. 189 00:16:31,410 --> 00:16:31,810 All right. 190 00:16:31,820 --> 00:16:41,510 Have you come to our income remember I mentioned earlier all those instructions starting G jump instructions 191 00:16:41,570 --> 00:16:45,180 and there are two types of instructions that jam. 192 00:16:45,200 --> 00:16:47,560 One is conditioner. 193 00:16:47,600 --> 00:16:49,880 The idea is unconditional. 194 00:16:49,940 --> 00:16:52,720 This instruction is a condition on jam. 195 00:16:53,040 --> 00:16:56,150 This instruction GMB is unconditional and. 196 00:16:56,180 --> 00:16:57,690 What is the difference. 197 00:16:57,810 --> 00:17:03,220 Conditional income would depend on the test just above it. 198 00:17:04,360 --> 00:17:09,370 So based on the result of this test it is testing two registers. 199 00:17:09,430 --> 00:17:14,850 Here is testing something different based on the result the test. 200 00:17:14,950 --> 00:17:21,700 He would decide whether to jump or not to jump an unconditional income does not depend on any test. 201 00:17:22,090 --> 00:17:24,050 He would jump straightaway. 202 00:17:24,130 --> 00:17:26,970 That is the meaning of unconditional income. 203 00:17:27,010 --> 00:17:28,990 So now we are here. 204 00:17:29,030 --> 00:17:37,880 As you can see let's continue this step repressing f it so now it is at this point. 205 00:17:38,020 --> 00:17:40,300 And how do we know whether you were German. 206 00:17:41,020 --> 00:17:41,950 How do we know. 207 00:17:42,070 --> 00:17:46,940 We can look at this and look at the status box here and use this gem. 208 00:17:46,950 --> 00:17:48,710 He's not taken. 209 00:17:48,780 --> 00:17:57,300 That means it will not jam and another indication that he went on jammies who look at this line it is 210 00:17:57,300 --> 00:18:00,510 going to jam this line will turn red. 211 00:18:00,510 --> 00:18:03,210 This line indicates the jam. 212 00:18:03,210 --> 00:18:05,940 Look it is a long jump right to the bottom somewhere. 213 00:18:05,970 --> 00:18:08,030 But we're not going to go there now. 214 00:18:08,310 --> 00:18:11,190 So it is not going to jam all right. 215 00:18:11,370 --> 00:18:12,870 So this is confirms it as well. 216 00:18:12,870 --> 00:18:14,620 It is not going to jam. 217 00:18:14,640 --> 00:18:18,830 So if you press effort you would just go to the next line without jumping. 218 00:18:18,960 --> 00:18:19,890 Watch. 219 00:18:19,980 --> 00:18:23,380 So I press f it quickness. 220 00:18:23,550 --> 00:18:31,310 True enough he goes to the next line and the keyboard pressing f it see what happens f f f g f it. 221 00:18:31,360 --> 00:18:41,290 Okay so now you notice this line turns red meaning that this jump will be taken because this turns red. 222 00:18:41,670 --> 00:18:43,880 And then a confirmation is here. 223 00:18:43,920 --> 00:18:46,950 Germany has taken notice. 224 00:18:47,100 --> 00:18:50,050 So this is called unconditional John. 225 00:18:50,130 --> 00:18:52,680 It does not depend on any test and birth before it. 226 00:18:53,580 --> 00:18:58,670 So now this press effort and c jump and even tells you where it is going to jump to. 227 00:18:58,770 --> 00:19:08,190 It is going to jump to this location 4 0 1 2 1 6 here 4 0 1 2 1 6. 228 00:19:08,190 --> 00:19:12,660 You can see the two arrows one here and another arrow here. 229 00:19:12,660 --> 00:19:19,610 So this this column tries to draw a better graphical view of the jumps. 230 00:19:19,620 --> 00:19:27,000 Here is a simplified arrow to show you the jumps and you see you notice the arrow can be pointing down 231 00:19:27,180 --> 00:19:29,520 and some areas are pointing up. 232 00:19:29,520 --> 00:19:31,850 This means jump up habits. 233 00:19:32,040 --> 00:19:39,570 This means jump downward so did not look the direction the arrow tells you where you reach it will jump. 234 00:19:39,610 --> 00:19:45,750 Now this kind of thing jumps normally loops that give given looping for certain periods of a certain 235 00:19:45,750 --> 00:19:46,970 number of times. 236 00:19:47,190 --> 00:19:47,450 All right. 237 00:19:47,450 --> 00:19:56,330 So now you're here and you're going to jump unconditionally and this will work in front. 238 00:19:56,330 --> 00:20:00,080 Here is a name of a program which is Title 1. 239 00:20:00,660 --> 00:20:09,930 So normally the the and the FCC for DG will put your program name in front. 240 00:20:09,990 --> 00:20:15,210 Put a dot followed by the address where you will jump to case. 241 00:20:15,210 --> 00:20:22,140 Now if you press F it was going to jump all the way down to 4 0 1 2 0 1 6. 242 00:20:22,290 --> 00:20:23,160 As mentioned here. 243 00:20:23,190 --> 00:20:25,850 So let's do it now and see what happens syllogism. 244 00:20:26,410 --> 00:20:28,450 True enough so it's taken a jump. 245 00:20:28,530 --> 00:20:32,780 So now you press heavily gay and include ongoing. 246 00:20:32,860 --> 00:20:36,480 Now let's let's analyze this now. 247 00:20:36,480 --> 00:20:38,860 Press TV Okay. 248 00:20:39,040 --> 00:20:47,160 Is it going to jump or not why do you think yes I think you you will go. 249 00:20:47,170 --> 00:20:48,560 You have got it correct. 250 00:20:48,640 --> 00:20:55,820 It is not going to jump because firstly this line did not turn red. 251 00:20:55,960 --> 00:20:57,710 Now remember this is average. 252 00:20:58,360 --> 00:20:59,950 It is but he didn't turn red. 253 00:21:00,250 --> 00:21:02,510 So it is not going to jump in error. 254 00:21:02,560 --> 00:21:11,250 Another indication is over here Jim has not taken indicating that it is not going to jump all right. 255 00:21:11,260 --> 00:21:17,300 He can confirm it by pressing epic and issue move to the next line below it. 256 00:21:18,100 --> 00:21:20,630 And true enough he moved the next line below. 257 00:21:20,950 --> 00:21:27,760 Let's continue pressing Evy Evy ethically Evy now what do you think. 258 00:21:27,760 --> 00:21:32,510 Is he going to jump yes it is not going to jump. 259 00:21:32,580 --> 00:21:36,240 Why you didn't and read the line in it and read. 260 00:21:36,930 --> 00:21:40,560 And the indication here is jump is not taken. 261 00:21:40,560 --> 00:21:40,820 So. 262 00:21:40,820 --> 00:21:41,430 Press Evy 263 00:21:44,750 --> 00:21:48,240 yes this one would jump because he turned red. 264 00:21:48,710 --> 00:21:50,750 And the indication shows jump. 265 00:21:50,780 --> 00:22:02,000 He's taken so less passive he so is very is going to jump to you is going to jump to 4 0 1 4 8 1. 266 00:22:02,000 --> 00:22:11,170 So he's going to jump way below down here for 0 1 for it. 267 00:22:11,390 --> 00:22:11,650 Right. 268 00:22:11,910 --> 00:22:15,010 OK now I already move. 269 00:22:15,030 --> 00:22:17,370 Scroll down with my mouth. 270 00:22:17,370 --> 00:22:19,810 How do I go back to the last location. 271 00:22:19,860 --> 00:22:22,780 Very easy CAIB. 272 00:22:22,950 --> 00:22:28,480 Click on it and you go back to the last place where you stop. 273 00:22:28,530 --> 00:22:38,000 So EIB is call an instruction pointer to the e in front means extend that extended instruction pointer 274 00:22:38,040 --> 00:22:40,200 all the e front means extended. 275 00:22:41,370 --> 00:22:49,770 So EIB whenever you're lost I say I screw all the way down and I want to go back to my last indication 276 00:22:49,770 --> 00:22:50,790 why I. 277 00:22:51,120 --> 00:22:55,520 I just I quickly this and I go back here now and continue stepping. 278 00:22:55,710 --> 00:23:03,880 So when I press f it he will jump all the way to 4 0 1 4 1 as do it. 279 00:23:03,880 --> 00:23:05,620 See he landed here. 280 00:23:05,820 --> 00:23:11,070 So now I press f it again and continue to go like this. 281 00:23:11,070 --> 00:23:12,020 Now what is the difference. 282 00:23:12,020 --> 00:23:22,020 We didn't call and jam call also does a jump but he doesn't show you if you want to see jump you need 283 00:23:22,020 --> 00:23:29,190 to press another key but I will show you how should that to you in another lesson for now I just want 284 00:23:29,190 --> 00:23:31,340 to introduce you to jumps. 285 00:23:31,380 --> 00:23:35,850 What jumps so we do call and a lesson so no let's press f it 286 00:23:39,330 --> 00:23:39,700 OK. 287 00:23:39,730 --> 00:23:45,470 So a jump here feet again this angry job because it's Ray. 288 00:23:45,640 --> 00:23:46,900 Yes is mistaken 289 00:23:50,230 --> 00:24:03,050 call John Jim so each year so all of the assembly code is just about jumping in calling this it jumping 290 00:24:03,170 --> 00:24:06,130 calling Coco Coco. 291 00:24:08,510 --> 00:24:11,420 Jim no jump taken. 292 00:24:11,430 --> 00:24:13,710 All right fine. 293 00:24:17,030 --> 00:24:18,880 Jump OK. 294 00:24:18,910 --> 00:24:21,890 So this is going Abbott's effort. 295 00:24:22,400 --> 00:24:26,690 He even jump because the arrow didn't read. 296 00:24:28,000 --> 00:24:29,850 OK this we jump with it and red. 297 00:24:30,220 --> 00:24:32,110 And he also says jump is taken. 298 00:24:33,070 --> 00:24:33,820 So he jumps up 299 00:24:36,880 --> 00:24:37,630 hub again. 300 00:24:37,630 --> 00:24:39,070 So this is a loop. 301 00:24:39,520 --> 00:24:48,620 So it would keep looping until a sitting condition is met OK so we can keep on pressing and pressing. 302 00:24:48,640 --> 00:24:49,910 F f f it. 303 00:24:50,150 --> 00:24:53,100 And eventually he will terminate the loop. 304 00:24:55,600 --> 00:24:57,000 And where do you think it is. 305 00:25:00,360 --> 00:25:01,880 Where do you think in the loop with only 306 00:25:05,020 --> 00:25:07,280 you can give on pressing and keep trying. 307 00:25:13,770 --> 00:25:14,100 Okay. 308 00:25:14,120 --> 00:25:15,620 This is one way to make a. 309 00:25:15,750 --> 00:25:19,190 You even go out of the loop up here all right. 310 00:25:20,160 --> 00:25:21,540 So there is one we 311 00:25:25,420 --> 00:25:35,010 all we can press f it hold press area and key one hole and using it will go faster eventually you leave 312 00:25:35,010 --> 00:25:35,620 the loop. 313 00:25:35,730 --> 00:25:38,600 Once they lift a loop released the key have it. 314 00:25:38,610 --> 00:25:39,910 Now I'm holding it. 315 00:25:40,180 --> 00:25:40,810 OK. 316 00:25:40,830 --> 00:25:43,590 It has come out of the loop and now it is somewhere else. 317 00:25:43,590 --> 00:25:43,890 OK. 318 00:25:43,890 --> 00:25:54,340 So now he's over here and the jam is not taken so press ever it again and you can see he keeps on going. 319 00:25:54,360 --> 00:25:57,880 So this is how you step through the. 320 00:26:00,830 --> 00:26:09,460 OK so eventually if you keep on pressing f ed you will reach the point where the message try harder 321 00:26:09,470 --> 00:26:14,900 will be shown here but you might miss it if you press given pressing and releasing and you missed it 322 00:26:14,960 --> 00:26:17,060 sooner because of you. 323 00:26:17,060 --> 00:26:21,350 CORNISH pressing f it without releasing so it missed it. 324 00:26:21,350 --> 00:26:30,710 So in the next lesson I will show you a way in which you can boss the program using break points. 325 00:26:30,770 --> 00:26:32,840 So that's all for this video. 326 00:26:32,960 --> 00:26:34,970 How to see you in the next one. 327 00:26:34,970 --> 00:26:36,230 Thank you for watching.