Today we are going to see return statement and passing the parameter to the function. Learning outcome at the end of this session students will be able to write a C program using function with parameters and return value. Now first we see the return statement. Return statement is used to return a value to the calling function. It can be used to terminate the execution of function and returns the control to the calling function. When return is encountered in the program the execution resumes in the calling function at the point immediately following the function call. Now let us see diagrammatically how the calling function and call functions are used. Here we see three blocks, here main function, function 1 and function 2. Here the main function is the calling function and function 1 and function 2 are the called function. In main function we called the function 1 and function 2. When the function 1 is called the control passes to the function 1 and now this is the first statement. After that control passes to the function 1 the statements inside the functions are executed and when the return statement is encountered the control returns back to the calling function. Now this is the step 2. Again in the main function we call the function 2 then again the control is passed to the function 2. When the control reaches to the function 2 the statement inside the functions are executed and when the return statement is encountered the control again returns back to the calling function. Here our calling function is the main function. Now this is the step 2. Now next we see the syntax for return statement. There are two ways for how we declare the return statement in a program. First way is the simple return statement and the second way is the return with some expressions. Now first we see the simple return statement. It does not return any value to the calling function. When return encountered in the program the control is immediately passed to the calling function and it is basically used to terminate the function without returning a value. Now this is the first form of the return. The second form of the return statement is the return with some expression. It is used to terminate a function and return a value to the calling function. It returns value of the expression when a value is returned it is automatically passed to the function type. If the function type is void then it cannot return any value to the calling function. Now we see some examples of return statement. Now consider the function for multiplication of two numbers. Here the return type is integer. Function name is mul and here it takes the two parameters of type integer. In function body we first declare one variable of type integer for storing the result. Next we calculate the multiplication of two numbers and that value is stored in the p. Next this function is returning the value to the calling function. So here we use the return statement return p. It returns the value of the p which is the product of the value of x and y to the calling function. Instead of writing the two statements we can write only a single statement return x into y. Now next we see the another example of return statement. Return statement may return more than one value means function may have written more than one value. This situation occurred when the value returned is based on certain situation. Now consider this example. In this example we use the if-else statement. In if statement we specify some condition. If x then are equal to zero if it is less than zero then return the value zero otherwise return the value one. Now after that after seeing the return statement can you state whether a function can return only one value at a time, pause this video and think about it. A function can return only one value at a time. This statement is true. Now next we see the program to find the largest number using return statement. Here first we include the essential header file. After that we declare the function for the largest number. Here return type of that function is integer. Name of the function is larger and it takes the two parameters of type integer a and b. After that we declare the main function. In main function we create the three variables. We declare the three variables i, j, k, i and j for taking the two numbers from the user. So here we use the scanf statement for taking the input from user. After that we call the function larger and here we actual pass the value of i and j to the formal parameters a and b. So here i value is copied into the variable a and j value is copied into the variable b. Then control is passed to the function body. In function body we write the code for calculating the largest number. Here we use the if-else statement, here we specify the condition if a is greater than b. If the value of a greater than b then return the statement a, otherwise returns the statement b. According to your values the value is returned to the calling function and that value is stored in the k variable and we print that value using printf statement on the screen. And we close the function main. Next we see the passing the parameters to the function. Passing the function passes some value to the call function. There are two ways in which arguments or parameters can be passed to the call function, call by value and call by reference. In call by value we pass the actual value to the function and in call by reference we pass the address of that variable to the function. Suppose if we consider one example of addition we add the two numbers or we pass the value to the function. If we pass the value by calling by call by value then we directly specify the actual value and if we by using or we pass the parameter using call by reference then we pass the actual address of that variable. Now first we see the call by value. In call by value the values of the variables are passed by the calling function to the call function. If any value of the parameter in the call function has to be modified the change will be reflected only in the call function. This happens as all the changes are made on the copy of the variables and not on the actual ones. Now here we see the example how the call by value will be working. Here we first include the header file after that we declare one function sum and the written type of that function is void. It takes the one parameter n of type integer. In main function we create one local variable a and we assign the value to that variable 5 and after that we display the message the value of a before calling function and we display that value on the screen. After that we call the function sum and here we pass the actual value of a and in a that in a we store the value 5. Again we display the message the value of a after the calling function. When the function is called the control goes to that function body and that a value is copied into that formal parameter. In function body we just add the two numbers add the numbers n plus 20. Here n value is 5 because the value of a is 5 and that 5 is copied into the formal parameters n. So n plus 20 means 5 plus 20 it store in then 25 value stored in the n and we display the message value of n is called function is n and that n displays the value 25 on the screen. So before execution of the function main value in main function a value stores the 5 value and when the after the execution of function a value stores the 5 but whatever the changes done inside the formal parameters n that is not reflected to the actual parameters. So here in the a value again the 5 value is stored not the 25. Suppose in the previous sum program if we use the return statement to return the value of n to the main function then what would be the output? Pause this video and think about it. If we use the return statement in the sum program then the return type must be changed here return type is the integer. In the main function we create variable a and we assign the value 5 then here the function is written in the value. So that value must be caught must be stored in the variable a. After that we display that value on the screen. Then the control is transferred to the function body and here we calculate the sum and we store that into the n and here we use the return statement. Then when the return statement is encountered the control is passed to the calling function and it stores the value calculated in the variable a and it shows the output. Now these are the references. Thank you.


Hello everyone! Myself, Mrs. Mayuri Kangle, Assistant Professor of Mathematics from the Department of Humanities and Sciences, Valtran Institute of Technology, Soolapur. Today, we are going to see partial differentiation. The learning outcome is, at the end of this session, the students will be able to solve the examples on partial differentiation. Let us see the type 1 examples. Let z equals to f of u and u equals to phi of x, y so that z is a function of u and u itself is a function of two independent variables x and y. See here, z is a function of single variable u and u is a function of two variables x and y. In such cases, z will be a function of x and y. For example, let z equals to tan u and u equals to x square plus y square then z is equal to tan of x square plus y square where u is replaced by x square plus y square. In such case, we can see that z is a function of two variables x and y. Now, let us see the partial differentiation of type 1 examples. Let z equals to f of u and u equals to phi of x, y possesses first order partial derivatives. See here, z is a function of single variable u and u is a function of two variables x and y. In such cases, we have seen that z is a function of x and y. So, to differentiate z with respect to x and y, we have to go for partial differentiation from which we can obtain dou z by dou x and dou z by dou y. Here, z is a function of single variable u so we have to go for ordinary differentiation d by du and u is a function of two variables x and y. So, we have to go for partial differentiation dou by dou x and dou by dou y by using which we can find out the two partial derivatives dou z by dou x and dou z by dou y. To obtain dou z by dou x, we will multiply dz by du and dou u by dou x. So, we get dou z by dou x equals to dz by du into dou u by dou x. Similarly, to obtain dou z by dou y, we multiply dz by du and dou u by dou y. So, we get dou z by dou y equals to dz by du into dou u by dou y. For example, z equals to sin u and u equals to phi of x y. Then, dou z by dou x equals to dz by du into dou u by dou x. Now, z equals to sin u. So, dz by du is cos u.  Similarly, dou z by dou y equals to dz by du into dou u by dou y.  Now, let us see examples over it. First example, if z equals to e raised to u and u equals to 4x minus phi y, then find dou z by dou x and dou z by dou y. Here, z equals to e raised to u. That is, z is a function of single variable u. So, we can find dz by du equals to derivative of z with respect to u. That is, e raised to u. We will call it as equation number 1. And u is given as 4x minus phi y, which shows that u is a function of two variables x and y. So, differentiate u partially with respect to x as well as y. When we perform the partial differentiation of u with respect to x, we treat y as constant. So, the derivative of minus phi y will be 0 and the derivative of 4x gives us 4. So, dou u by dou x equals to 4 and dou u by dou y. That is, the partial differentiation of u with respect to y treating x as constant. So, the derivative of 4x will be 0 and the derivative of minus phi y with respect to y is minus 5.  We will call it as equation number 2. Now, we know that if z is a function of u and u is a function of two variables x and y, then dou z by dou x equals to dz by du into dou u by dou x and dou z by dou y equals to dz by du into dou u by dou y. Using equation 1 and 2, we will replace dz by du, dou u by dou x and dou u by dou y. So, we get dou z by dou x equals to e raised to u into 4. That is, 4 e raised to u and dou z by dou y equals to e raised to u into minus 5. That is, minus 5 e raised to u. Now, to get the solution in terms of x and y, we will put u equals to 4x minus 5y. We get dou z by dou x equals to 4 e raised to 4x minus 5y and dou z by dou y equals to minus 5 e raised to 4x minus 5y. Now, pause the video for a minute and write down the solution of this question. The question is, if z is equals to f of u and u equals to g of a, b, c, then find dou z by dou a, dou z by dou b and dou z by dou c. I hope you all have written the solution. Let us check the solution. Here, z is given as a function of single variable u and u is given as a function of 3 variables a, b, c. See here, z is a function of single variable u. So, we can find out dz by du and u is a function of 3 variables a, b and c.  Now, this z is a function of 3 variables a, b, c. So, we can find out dou z by dou a. So, dou z by dou a equals to dz by du into dou u by dou a. Similarly, dou z by dou b equals to dz by du into dou u by dou b and dou z by dou c equals to dz by du into dou u by dou c. Now, let us go for the second example. If u equals to log t and t equals to x cube plus y cube minus x square y minus x y square, then prove that x into dou u by dou x plus y into dou u by dou y equals to 3. Given that u is equals to log t, here u is a function of single variable t. So, we can get du by dt by differentiating log t with respect to t. So, du by dt equals to 1 upon t. We will call it as equation number 1 and t is equals to x cube plus y cube minus x square y minus x y square. Here, t is a function of 2 variables x and y. Differentiating this t partially with respect to x treating y as constant gives us dou t by dou x equals to differentiation of x cube is 3 x square y is treated as constant. So, the differentiation of y cube will be 0 minus x square y is there. It is a differentiation with respect to x treating y as constant will be minus 2 x y and here for minus x y square the differentiation of x is 1. So, we get minus y square only. So, dou t by dou x equals to 3 x square minus 2 x y minus y square. Now differentiating t partially with respect to y treating x as constant. So, the derivative of x cube will be 0. The differentiation of y cube is 3 y square x is treated as constant. So, minus x square remains as it is and the differentiation of y is 1.  So, we get dou t by dou y equals to 3 y square minus x square minus 2 x y. We will call it as combinedly as equation number 2. Here u is equals to f of t and t equals to g of x y. Then dou u by dou x equals to du by dt into dou t by dou x and dou u by dou y equals to du by dt into dou t by dou y. To obtain the partial differentiation of u with respect to x and y we will use the equation number 1 and 2.  Now, we have to prove that x into dou u by dou x plus y into dou u by dou y equals to 3. Now, to prove this let us consider the left hand side. So, LHS is equals to x into dou u by dou x plus y into dou u by dou y. So, we will multiply dou u by dou x by x and dou u by dou y by y. So, we get x into 1 upon t into the bracket 3 x square minus 2 x y minus y square plus y into 1 upon t into the bracket 3 y square minus x square minus 2 x y. Now, if you observe the 2 terms 1 upon t is common in both the terms. So, let us take 1 upon t common into the bracket 3 x square into x gives us 3 x cube minus x into 2 x y gives us minus 2 x square y minus x into y square gives us x y square plus this y is multiplied to the bracket. So, 3 y square minus x square y minus 2 x y square that is equals to 1 upon t into the bracket 3 x cube plus 3 y cube as it is if you see we have the 2 terms with x square y that is minus 2 x square y and 1 more minus x square y which gives us minus 3 x square y. Similarly, for the term x y square here we have minus x y square minus 2 x y square which combinedly gives us minus 3 x y square. If you observe this bracket we have 3 common in each term. So, taking 3 common which gives us 3 upon t into the bracket x cube plus y cube minus x square y minus x y square as we know that x cube plus y cube minus x square y minus x y square is t we can replace this bracket by t. So, we get 3 upon t into t here t get cancelled and we get the solution as 3 which is the required RHS the right hand side of the equation. Thank you.


A majority of adult Americans now have smart phones. Wouldn't it be great if you could control your entire household from this device? Here at CES Unveiled, the innovators are trying to do just that. The smart coffee machine. So you can set it to wake you up in the morning with a kettle or coffee ready, they're waiting for you. A lot of these basic standard ones, you can only set certain times. But say you get home from work, you know, nine o'clock in the evening because you had a late night working. The coffee can automatically then recognise when you come home and have the coffee ready and waiting for you. If you're wearing your fitness tracker, you have a bad night's sleep. The coffee machine can then recognise that and recommend a stronger coffee for the morning to give you a brighter start to your day. So our whole ethos is just making the morning smarter and a more enjoyable experience. So at Tracker, we're automating the process of finding your lost items. We're debuting at CES, our brand new Tracker Bravo. It is the thinnest item tracking device in the world. You can use the free Tracker app to find where your tracker is. You can see by the concentric rings how close or far away you are. And then you can push the button and cause your tracker to run. If you lose your phone a lot, you can push the button on your tracker and cause your phone to run even on silent mode. The Internet of Things will be a popular trend during CES. To stay connected, check back with the BU News Service daily. Reporting from Las Vegas, I'm Rachel McCuffin.


Thank you. So a machine being up for four minutes and already transferred four gigabytes of traffic. What could that be? Something screwed the network stack? Something strange with that machine? If you're on this machine, and it perhaps is not your own machine, you really, really should get suspicious at this point. That might be a honeypot. We show you how you find out and what to do about that.  Just for a... Okay. So, nearly everybody knows what a honeypot is, so I can do a very quick introduction.  A honeypot is, according to the definition by an even-in-net org people, a concept to monitor the two detectives and motives of the placard community. Basically, they want to see what you do once you've routed one of their boxes, what tools you use, what commands you use, whether you connect and what are your actions. As you can see, in the orange box, the honeypot typically consists of two main components. In the upper part, you see a hang-all. That's a transparent bridge. That means it has no IP address. It doesn't decrement the TTL of a bypassing packet. Basically, you only do data capture and data control on this device. Data capture means that you run TCP dump on this box, so you can lock every packet that's going inside and outside of your network. You also collect all data that your honeypots are producing on this box. On the other hand, you only roll just data control. That means you install Snort Inline, an intriguing prevention system on this system. Snort Inline is a modification of Snort. Basically, what it does is it filters all the outgoing traffic such as for exploits and can block them or modify them so that you, as you own one of these boxes, can't do any harm to an outgoing box. It's mainly used for legal actions so that you don't have to feel that someone who boots one of those honeypots can do some damage to another side. The other data control that's done by the Honeyworn is something like a traffic limitation. For example, they do traffic shakings, though so that you've got only perhaps 10 kW per second of output, or they do some kind of traffic restriction. Basically, only 25 TCP connections per day, for example. So apart from the Honeyworn on the downside, you see the Honeypots. The Honeypots are the main interesting part of the Honeypot, of the main Honeymat. A Honeypot is basically a tool that should be prepped, attacked, or compromised. So you just install another system. For example, a Linux box, a Windows box, as well as a PSD, whatever comes to mind. You do not very much change things on this box.  You connect those Honeypots through the Honeyworn to the Internet, and then you just watch what happens. In order to learn the tool taxive and models of the packet community, you have to do something so that you can watch the actions. For example, the TCP dump is completely useless if the intruder loop uses something like an SSH connection. You only see then the encrypted traffic, and without the appropriate key, you can't decrypt anything. So basically, you have to do other things to watch the attackers who own your Honeypots. The main tool used nowadays is Zivac. Zivac has the capabilities to monitor all activities on the Honeypot. So basically, it claims that it can lock everything. We'll show later in this talk that this claim isn't true. With the help of Zivac, the operator of the Honeypot is able to control everything that you do on one of those boxes. If you do an SSH connection to the Honeypot, you'll see everything you type. If you do something like a secure copy, he will notice everything. If you decrypt your burn ID protected binary, he'll notice the password and can also decrypt your burn ID encrypted binary. How does he do it? Basically, Zivac is a kernel module. There are variants of Zivac for Linux. It's the main, or the current implementation, only for 2.4 kernels. Then there's also an implementation for OpenBSD for Windows. It's only a huddle-and-herry implementation. We've got also fresh allows or some other operating systems implementations of Zivac. In this talk, we'll mainly cover Zivac for Linux because Linux is the main Honeypot used nowadays. So, how does Zivac work? In the first version, Zivac was based on a door.  It's one of the most known woodkits nowadays. In the current version, version 2.1.7, everything is re-implemented, and Zivac has a complete new system. What it basically does is hijacks the system called suede. So, every time one of your diagrams, or any diagram, calls weed, then Zivac does the following. It passes the data to the original system call. The result is copied into another buffer. To a buffer is added something like a Zivac header. Then everything is copied into an SKBuffer structure. The structures are handed to the driver, and the driver sends everything to the outside. The sending is done in a covered way. Because you use the SKBuffer structure, all the picker-based firewall rules won't notice that anything is going wrong. So, if Zivac is running on the box and you fire up TCP, one of these Zivac packets will not notice one of them. It basically modifies prognetic depth in order to hide its presence. It fiddles with the counters, so you can't see that Zivac is sending anything to another box. The packages that are hidden are identified by a magic number. That's a 30-bit value. They are identified by being in a UDP packet, and a special port number for UDP, basically. In order to hide Zivac, or the presence of Zivac and the host, there are some things that are currently done. For example, Zivac loads as a kernel module, and in the basic installation, it has just got one run domain consisting only of some memory values. After once, the second module is loaded. It's cleaner.o. That's also part of the other rootkit. Cleaner.o has basically only one function. It unwinds the next module in the module structure list, and then unlocks itself. So, basically, after cleaner.o is loaded, Zivac is unloaded from the module list, and so something like AliceMod won't see that there's any other package showing up. So, now we are going to demonstrate our toolkit. To give you a first impression on what we did, and then after a step by step we will install, and we will show you how everything works.  In this case, Thorsten is running it on his notebook. We have the logging server run by an evil entity too, which in this case, I'm on my notebook. And we have the attackers machine, by a good hero, in this case, me, my notebook. I'm now logged in on the honeypot, and for demonstration purposes, I'll start a web server there, which is badly vulnerable. So, this web server, basically, you can upload a binary and it executes it if you use the secret postparameter exploit. This is in simple vulnerability. You could go for more difficult ones, but for the demonstration purposes, we have this very vulnerable web server. So, now I'll work on my own machine. First, because this machine has to act as a logging server, I have the window getting the logging packet sent by the honeypot. This is this one. Thorsten will now type something on the honeypot, and as you can see, we have basically keystroke logging here. Okay. Now, I'll start an attack on the honeypot by uploading a binary to the vulnerable server. This binary is built on demand and basically contains our attack tool, which was uploaded via call to the server now, and now we are connected already to our attack server. As you might have seen, there did some logging taking place because the uploaded tool was basically a share archive extracting itself and executing the attack server, which is written in Python. Basically, if you're willing to code C or do something else dirty, you can get around that. I'm now connected with the server, with our attack server called KBS, and can execute arbitrary commands, for example, listing the root directory of the honeypot, and as you see in the lower window, there's no further logging taking place. I can get information on the machine. You might notice that now I'm still running with the new ID of the web server, nobody, 65534. I can read files on the server, as long as nobody can read them, for example, ETC PassVD, without any logging still taking place. I can upload files, and I can execute files without any further logging. In this case, I'll execute a vulnerable SUID script replaced on the server for demonstration purposes.  And now a wonder, we use the vulnerable SUID already to execute a second KBS server, now running as root. I'll demonstrate by connecting with a second client to the server, now running in a different part. And again, can execute all kinds of commands there without further logging. You might notice that now the effective user ID is zero, so this KBS server is running as root. We can read files now only readable by root, like Shadow, ETC Shadow, without any logging. And we can send special commands like the NOSPRAID command with some logging, but basically we'll get warning messages because KBS, because the Zbeck Toolkit is completely out of his mind and gets too much data and can't log anything. And now we have the nice information of a cleanup routine and we can jump there with a tool we uploaded before.  As you can see, I'm now again on the honey pot and there's no logging taking place, no keystroke logging, and if Torsten works on the honey pot no keystroke logging still. This is the Zbeck Toolkit from the corner with nearly no logging data. Okay, so much for the teaser now for the background. Who are we and why do we do that? We are both from the Laboratory for Dependable Distributed Systems at Aachen University. We have Torsten as a research student and I'm a research assistant and this laboratory is running a honey net. We wanted to see if this is really a good thing and if we can trust the data on there and for the heck of it if we can bring it down. The authors of Zbeck, just for information this is not a picture of the author of Zbeck which is a really nice guy and a smart one too but that Zbeck himself, at least at the ancient Egyptians saw them because it's an ancient Egyptian name. Claiming that even if Zbeck is being disabled one would be able to log how it is being disabled and we had our issues with it assumption and tried if we can attack it and we were able to. I think we did this demo already with the vulnerable server. So now we come to detecting Zbeck. So as you've seen in our demonstration we are basically able to detect the presence of Zbeck on the hosts. We can avoid the complete logging and we are also able to disable Zbeck once we are out on the box. So basically we are able to compromise the honey pot completely. We will now give a step-by-step introduction to how we did it and at first we wanted to talk several ways to detect Zbeck. If you think about Zbeck, Zbeck is basically a rootkit so our results can also be extended to some kind of rootkit detection. If you think about this whole task then there has come several ways into mind. At first as I explained was the honey wall. The honey wall is running in front of the complete honey net and it does some kind of data logging and data restriction. So basically you could find some ways to detect the honey wall and if you detect the honey wall then this is a strong sign that there is also a host which is Zbeck running. Detecting the honey wall is left as an exercise for you. If you need some information on this just look at one of the two fake issues. I think four or five months ago there are some hints so it's basically just a few total scripts that you have to write. As I said before, the logging takes place by putting all data that's logged by the suite into a buffer and then sending this to over the line to the logging host. So basically if we do much reading then we should be able to fill up the complete line and see some latency effects. Also, Zbeck has to fiddle with the network counters because it communicates directly with the driver. You have to adjust the drivers so that the output of fconfig and any other tools is consistent with the system. So if you take a closer look at the network traffic counters we will also probably find some signs of Zbeck. The app for Zbeck is the modification of the syscall table. Basically there are some pointers which are changed and perhaps we can detect it. With the help of cleaner.o, Zbeck also unloads itself and tries to hide itself so we should be able to find the hidden module in memory and perhaps we can do some other things in memory in order to detect Zbeck. I can now step-to-step on these five points and explain what we've did. At first we take a look at the latency. Perhaps you all know the DD command. It's a very easy tool and with the help of this command we can within perhaps 10 seconds detect that Zbeck is running on a host and we'll just show you this. The command is something like dd. As input file we take dev0 and output file devnull. So basically we copy just inside the system some from dev0 to devnull with the block size of one. And then we should see some effects. So basically Maximilian will now understand the situation. So we booted the HoneyNet because we just removed the HoneyPot software for demonstration. We installed the HoneyNet and we started SSHD. We are doing that now. Basically I shut it down SSH for purposes. So we are on DevCon Network and probably it's not secure. So, yeah. Okay, now Zbeck is running on the host. And at first you should ping... So at first we just do a ping from this machine to this machine. We've got connected through a direct connection just a cross cable and as you see we've got a latency of about 0.3 milliseconds. So now we start DD in the background and do this kind of ping again. As you see on the output there's some latency. We can't type anything. It should take a few seconds. And as you see the reply times go about a factor of 10 or something like this. We've got more than 2 milliseconds now.  So at the next step to detect the presence of Zbeck as another approach we take a look at the network traffic counters. As I said before, Zbeck just fiddles with PROC NAT Dev. It basically changes the output of the TX bar TX packets inside PROC NAT Dev and then if we compare this output to the output of fconfig then we should see also some differences. For the purpose of this we wrote some kernel module. The kernel module is basically a modification of Zbeck. I just removed a lot of lines and basically changed only two lines. And now as you can see at the TX bytes counter we've got I don't know no laser pointer. About 20.6 kilobyte We are connected to the box as an edge connection so basically we have about 2 kilobyte per second on additional TX bytes output. Now we insert into the kernel this Dev Checker basically changes the output of PROC NAT Dev back to its original values and if we now have something like the DDE command in the background we see that we've basically now 70.4 megabytes and if we forgot now we've got 22 so within a few seconds we've got more than 5 megabytes on data. If we now unload the module as always well we see these latency effects again because DDE is running in the background. So if we now amod the module from the kernel then we should see that the Neville counter goes back again. So I think the latency now went up to infinity and now it works and you see the transmit counter is now 22 megabytes and if we unload our module it goes back down to 42 kilobyte so there's something fishy with the transmit counter obviously. Okay and the third approach to detect the presence of Sivec is based on the syscall table as you already perhaps know the syscall table is just a table with every syscall and each syscall points to somewhere in the memory it's something like a function pointer nothing more. As you see on the left side we've got sysexit, sysread, syswrite, sysopen so syswrite is the one that hijack sivec if sivec loads now into memory we are depicted as this mod.12345.0 it just changes the pointer from the sysread to the other module and so we should see that the pointers from sysread syswrite and sysopen are not in the neighborhood we just wrote in a small kernel module before the loading of sivec the counters of sysread the memory locations of sysread and syswrite were very close together and after reading you see that this oh I think that's wrong the upper part should be syswrite the other sysread that's now in another memory location and so that there's something fishy going on. So sivec currently is implemented as a loadable module because seemingly setting up a honeypot has to be idiot proof and patching your kernel isn't acceptable a kernel module probably will just find it even if it's hidden and if we can find it we can start to extract the variables inside the kernel module and probably we might be even able to disable it every module in linux starts with a module header which is defined in includelinux module h and this module head starts with a struct with a size of the struct of the module header which is 96 implementations with pointers to the name of the module and to the next module so these are two pointers into kernel space and the one even has to point to another related module structure and the name pointer has to point to some ASCII string and some other pointers further down which should point into kernel space too then function pointers to the startup function and the shutdown function of the module which should point into the module space and some integers have only a very small reasonable space of values of usually 1, 2 or 3 and with all these values we can properly fingerprint memory locations which look like a module header that's not that hard because the module header and the whole module is allocated by the kernel's Vmalloc function and this function aligns all memory allocated to page boundaries so every 4k is the only position where module header can start this means we only have to check every 4k or every page for module header and Vmalloc only starts allocating Vmalloc at Vmalloc start with this kernel constant and only reserves memory for Vmalloc reserved bytes so a very simple loop about 128 bytes of megabytes of kernel memory in 4k steps helps us to check out the possible locations of a module header and we'll now shortly demonstrate that Torsten now says we don't have to at least I can show you the LSMod outputs 5 modules but if we start module hunter which was published in a recent FAQ article we see another module which is SNT PCMCA which is our kernel module in this case so if we are able to find this module with other techniques in module hunter we should be able to expect the variables Zeebeck is very sophisticated at least a little bit sophisticated in hiding its modules whenever Zeebeck is recompiled this Perl program or the fragment of a Perl program changes the location of the variables used by Zeebeck in a block of allocated memory basically Zeebeck has a huge block that's about between 512 bytes and I think 1k is the random size of this block and the variables used by Zeebeck are randomly placed in this block at every compilation so but if we start looking into this block we can use heuristics to decide or to at least guess to an educated guess which value may be which variable for example this might be an IP address but if it would be an IP address it is a multicast address which is quite unlikely that a multicast address is the address of the logging server so perhaps it's the magic value used by Zeebeck to hide its packets and full code might be a magic value another number like this is a value type here address so it might be the address of the Zeebeck logging server this might be a port number the port number using for the logging server and these short values might be parts of a MAC address just bytes sized which looks very much like a MAC address so by searching for the kernel module and then using the heuristics to get quite good results in guessing if Zeebeck is there and what are the kernel and the variable values so we have written a Python tool which passes the kernel structures at one time the most difficult part is finding the syscall table because the linux people have removed and there is the kernel symbol for the system call table because nobody needs the address of the system call table and we locate them by looking for other kernel symbols and from there tracing the address of the system call table then here the system call table is finally found this message has a typo it's not this white which is probably hijacked but this read which is hijacked which we showed a torsten showed you when the values are part as something probably wrong and then our heuristics guessing that there is a module which should be Zeebeck named soundPCMCIA and we guess at MAC fragments for example probably all these ones are not MAC fragments but I assure you that 3D, 3F, 5E and I think 7B some of them are fragments of the MAC address of this computer acting as a that computer of the honey wall the send us MAC address and this FF, FF, FF, FF, FF is actually the MAC address we use for sending out the Zeebeck logging data so while we can't get the exact variables of the Zeebeck kernel module we can reduce the space you have to try to very small one and we have a lot of possible port addresses and in fact we used port address and 2222 as a destination port address in most instances we get a lot less variables a lot less possible guesses but you know there is a demonstration effect of Murphy's law if you do a demonstration the heuristics will draw a bad day the possible IP addresses there again in this list of about 2,000 addresses this is the address of our logging server and after that is the address of the honey pot so we already again guessed the right IP address and the magic value we actually used is in this list of possible magic value at least it should be there yeah that deadbeat messed that up so how to disable Zeebeck that's a very nice and easy way the authors of Zeebeck thought it should be disabled and so they placed being good designers of kernel modules a nice little clean up function in there which does everything we need it's D hijacks the read pointer cleans nicely up everything and exits the module and if we are able to get the address of the clean up function we just call that clean up function and Zeebeck cleans up after itself and this is a way and as you might remember that we are able to locate the module header and the module header has a pointer to the clean up function so basically getting rid of Zeebeck is more or less trivial find the module header get the address of the clean up function jump in the clean up function that was a kernel jumper module we uploaded in our demonstration it just does nothing more than jump to address in the kernel and you are all set and done the obvious way if you don't think about the clean up function is reconstruct this read pointer and let it point again back to the original kernel function for doing so but the tricky part is getting the address of the original kernel function there are ways to reconstruct that from the kernel binary itself but they are tricky or you could find if you can poke into the Zeebeck module the pointer to the original read function but why do that if you can clean up if you are really crazy or if somebody decided to use Zeebeck not as a kernel module but to compile it into the kernel you just look to the actual this read function which is in there probably Torrent by Zeebeck and overwrite it at one time with the clean read function that's not that trivial because you have to get all the pointers the jumps right leading from the new read function which is untainted to the rest of the kernel but it should be possible so after we've seen some ways to detect Zeebeck and now we take a look at how to avoid logging at all so basically we have to we have some problems there are some data that the operator of the honeypot is always logging for example the network traffic we have to connect remote to the honeypot because it's not on our physical control so we have to use some kind of network and all network traffic has to flow through the honey wall so basically the operator can catch all traffic there so we can't do anything against this also Zeebeck is loaded on the box so before we can unload it the operator will see all calls to read everything we've done that via read he is able to log and he can analyze this later and there are some other data that the operator can obtain for example if we use some of our tools and then write them on disk then the operator can after he has seen that we've compromised this box then he can do some kind of forensic and reconstruct all data that we left on the disk so basically we want to find a way that we can in a limit as far as we want to keep everything in memory and not write anything to disk at all there are some syslog data that we can't control because the services are perhaps logging something and the operator will also get these values and he can analyze them so what can we do against logging for logging of the networked traffic there is an obvious way we simply use encryption whenever possible because when there is encrypted network traffic the operator can lock everything but without the appropriate key he can't decrypt anything so we have to encrypt everything and the only problem with this approach is how to deliver our initial exploit at the initial exploit if we can't use any kind of connection any kind of encryption then the operator will see this exploit and we lost our zero day so perhaps we should use something like an HTTPS connection or POP3S or something that's secure so that this connection is also encrypted and the operator can't see anything for this purpose we use in our demonstration an HTTPS server basically no one can see something with the help of TCP dump or similar tools another possible way to disable the logging of networked traffic would be if we could compromise the honey wall if we have got root on the honey wall we could erase everything or logging data but usually the honey wall is extremely secured often with gas security and similar patches and it has no RP address so it's basically a hard task to find it and to get root on this box so probably you have to find other ways with and then with the help of Zeebeck the operator can see everything what we do via read so what programs do use read nearly every program that uses some kind of interaction most programs you see use read to read some kind of configuration files or user input so we have to avoid read at all another example for avoiding read would be network programs network programs use receive to read from a socket so basically if we can use receive instead of read there's some way to avoid everything the problem is why is every program using read and why does encryption help if you have a connection from the internet to SSH daemon sure the SSH daemon is reading from a socket but the whole communication from the internet is encrypted and so is the communication over the socket it's decrypted inside the SSH daemon so even if SSH is reading from the socket that shouldn't help the operator of the honey net because it's just seeing the encrypted data the problem is SSH HD can't do anything at all it starts all the time external programs even for copying files in SSH and usually it has a bash or another shell behind it and SSH has to communicate with that shell and that is done by using a unix pipe and this unix pipe has two file descriptor at its end the SSH the end and the bash is reading the keystrokes we have that file descriptor and these are unencrypted so basically if we could marry SSH the end bash into a single program and get rid of that pipe no logging would take place so before taking a look at how we can avoid the users of reach we just take a short look at what is actually logged by Sebeck as you can see Sebeck Tungta and this is just the structure that basically consists of the Sebeck header there are some values that are logged for example the magic number the version number type number there is some information about the current time the PID, the UID the file descriptor and then the 12 first bytes of the program that's calling read and the length of the total Sebeck packet so the operator gets quite a few information about everything for example the PID and UID so he knows who is just calling read and what PID and UID it has also it sees the file descriptor but perhaps we can fiddle with the file descriptor for example we can there are the three standard file operators 0, 1 and 2 perhaps we can fiddle with them so just use the 1 for standard out or something like this and we can just play with these and it also logs the 12 bytes of the program that's calling read perhaps we can also fiddle with this for example if we rename the binary if you just copy to another location or something like this if you use a name that starts with at first 12 space characters and then the real program name or something similar so if we want to avoid read the first thought is that we should make read unreliable as we've seen in our demonstration in our second demonstration I think if we start DD in the background then we generate lots of packets then we've got some kind of denial of service again the honey wall it doesn't react to something like this so basically if we just put enough data through the read system calls we make it unreliable as we've seen in the demonstration there were some error messages about lost packets these were basically error messages made by Zeebeck because Zeebeck was unable to send some packets so we made the read by Zeebeck unreliable but basically we can't control which which information are lost so basically if we start DD in the background we are sure that some packets are lost but we don't know which packets are lost so this is an unreliable approach a better approach is that we just quit using read so we can use mmap to directly map some files into memory we just map them into memory and can then work with them as normal so basically we can nearly live without read there are some problems for example we can't use devices we can't map devices into memory we can't use Unix pipes or similar things we are just stuck with files but perhaps we can exploit this and avoid reading and avoid the read system it's very hard to monitor mmap because with mmap I'm able to just map 2 gigabytes of contents into my memory and no one wants to transfer 2 gigabytes over such a small link just to log something so how can I live without read the first thing I have to say goodbye to my shell the shell is designed to read anything from its standard in so I can't use it I need something like mentioned before directly talk to the network encrypt it and execute the command the nice thing is that the command used in Unix to execute actually a program exec does not call read at least in Linux so it doesn't use the internal call to read call but if you execute a program it might import libraries and some of those libraries are read we are read some are mapped into the memory I wasn't able to find out the system behind that but probably there is a system behind that people might guess which program you have been started by exec by seeing the libraries being imported and if the program you are executing is reading config files by seeing the config files being read we can mess with the process name we just can copy and rename the binary for example if we rename cat to sudo and then cat something which looks like a sudoer's file probably the forensic expert looking at the log file will think we were successfully executing the sudo program I think sudoer's executed by everybody by world on usually Linux systems on time and in Linux systems it's just executable by the read group I'm not so much into Linux more in free BSD so the results are read files unnoticed by mapping them into memory we can possibly execute programs unnoticed by calling exec if they don't pull into any libraries we are reading to memory since file names are not locked there's a file descriptor locked but not the name associated with the file descriptor we can give the impression of reading certain files if we have a file, create a file which looks like a password file and cat that the forensic analyst will see something which looks like a password file and probably guess that it was just the password file and it will take him some time to find out it wasn't and we can give the impression that we are executing programs which we can't execute because they are only executable by higher privileged users so we implemented all of this into the keybase tool which is proof of concept code and the nifty thing about it it's a network attack tool which is entirely written in a very high level language in Python so it's very very portable you don't have to compile it for an architecture or so as long as there's a Python interpreter on the target machine at once and if there is no Python interpreter and you are willing to move a lot of data around the network you just can bundle the program with the Python interpreter itself and push the interpreter on the target machine like you would do with a C program where you put the C code into the target machine it can do everything you can expect from shell not bash but perhaps asher something a basic shell and it's very highly dynamic the GRUG recently published a tool which had some of the same ideas in the latest frag I think it's keeping your zero days safe part two or something and he has a tool which is able to transfer binary to a target machine and execute it there without ever writing it to this basically that's what keybase is doing too but on a very different level because we were able to do different things with our high level language KBS used TCP sockets for networking but it could use anything else because it's modular designed for example if you deliver your exploit and still have an open socket or something like that you could use that on top of that TCP we implement a crypto layer the crypto layer is generating the key pair by Diffie Helman that's nothing in our case Diffie Helman is would be fall to a man in the middle attack but the honey wall up to now or the honey walls we know are only passive devices and Diffie Helman is safe against passive devices and later we use the AES for providing the crypto and the crypto layer also contains compression and random length padding to make it difficult for a forensic analyst seeing the network traffic to guess at the commands we were sending by the length of them the main problem is to get entropy for Diffie Helman because we can't read from Diff random on the honey pot that would be locked by Zabek and a forensic analyst would be able to reconstruct our whole Diffie Helman key exchange if he had that random numbers we solved this problem today by using other techniques like thread races and hashing the whole content of TMP and VA and so on that is no really high security crypto entropy but it should be enough to frustrate a forensic analysis on top of the crypto layer we have a python specific KBS layer which basically communicates by sending objects across the network the KBS layer we send multiple commands at once and the commands can work on multiple objects so for example you can send white these two dozen files read this one file and delete that ten files all in one KBS command on one KBS data packet and the asynchronous commands at the moment are not implemented but the protocol supports them because asynchronous communication basically a pain in the ass the nice thing is the KBS server when you inject it on the target machine it knows only a single command single python object you can use add command so if this server falls into the hands of a forensic analyst he will learn very little because of Diffie Helman there are no keys in the server and there is only this very simple command add command and the code for all additional and interesting commands for exploiting the honeypot are pushed into the server at one time the client is basically having the code for the advanced commands compiles them to python byte code and pushes this byte code objects over the line into the server but they only exist in RAM and if you are very unlucky they might be exist on swapspace have to keep that in mind that is very nice thing of development is a server actually because you never have to restart the server because on every connect when you use the client just all the code is pushed into the server so basically the server is reloaded the commands we have implemented are reading and writing using memory mapping so without this read and this write so overwriting a file, truncating it to zero bytes, renaming it and then deleting it direct execution via listing directories, getting system info it would be nice to implement the execution without any help of the server that would be the userland exec library but implementing them in pure python would be very difficult more information on the design of CBAG and CBAG can be found in an academic paper which should be on your CD-ROM also on your CD-ROM should be the nose break program which is able to find CBAG in memory the CBAG toolkit itself when the CD-ROM was created it was in a shape we were very afraid to give it away like this code you write in the early morning hours but under this URL you can download CBAG toolkit and you can download videos of our demonstrations showing how we use CBAG and CBAG and get rid of CBAG and so on so are there any questions? yeah the question was that we said that hijacking M-MAP would be very difficult but CBAG could hijack exec and that stuff yeah you are right so we have to avoid using CBAG as much as possible one solution would be to use userland exec which is by the guac and it's a library with executives and binary without ever using this kernels exec function that would be very hard to hijack the problem is that this is C code and we basically have to push then a binary object to the honeypot machine which works as long as it's the right linux version the current development version of CBAG uses also as a suite this exec and receives those calls but it's not yet publicly released it's in better status so no more questions? so just download it and check for honeypots


No, go. Let's see if we can fix it Stay tuned. Okay guys What I've done I pulled the number one Now you heard it firing, but I pulled the number one Coil pack out and I stuck a screwdriver on it and I scraped it right here checked it for spark It's got spark then what I did was I Pulled this line off That's your intake or plenum if you will and I've got some Flammable stuff here. It's not starting fluid. I'm using a Brake cleaner and when I put it in there screw that or spray that in there Put this line back on real quick It'll start and shut off Okay, let's tell me it's not getting any fuel now. What else I've already done. I have checked the fuel Pump relay which on this one down here into the dash Pull your kick panel off It's up under there It's self-explanatory. Just take your screws and bolts out. It'll come right out now on this one some of them are Are Mounted right up in here, but you may have to look for it now on this 2003 Tacoma the 2.4 4-cylinder it's right here That is it right there and it just it just pulls out but anyway Get your pair of needle nose pliers That broke that's all right. I've got another one And pull it out Now to check it what I did was This is actually this one is for the For the brake lights or I mean tail lights, so I Know it's good because I knew my tail lights were good. So That's no biggie. So what I'll do is I'll put the other one. I've got another I've got a spare of that I'll put it back in there when I get get done with the pump so what we're gonna have to do is we're gonna have to pull the fuel pump out of this thing and It sucks you got to drop the tank of course now a lot of guys will just lift the bed up I'm not gonna do that here. I Gotta get up high enough to get in I'm not gonna mess with that because the bed and we've got all this stuff I'd have to take all this out by that time. I can have the pump or the tank drop Now what they want you what you should always do is drain drain your fuel if you can I have no way to drain it I don't have a hose. I don't have a siphoning hose or anything like that so But up under here There's some lines you're gonna have to unhook. I will show you They're back up in there like this the line that comes from here It's up in here. I'll show it to you if I can Right there Okay, there's that and then there's two smaller lines. There's another one right there you'll have to take off but this right there is a 10 millimeter actually and I can tell this has never been changed because when they built these trucks They put all this stuff in and then Put the clamps and everything on You know they put everything on then they put the bed on so as you can see this clamp right here It's pointed up towards the bed of the truck So I know this has never been out because if someone took it out like I'm gonna do I will turn it around so it'll be instead of Instead of right there, it'll be pointing out this way same way with the other this other clamp That's right there on that small hose right there Okay, now you may you may have to take this piece of plastic off. It's no big gill or push it out of the way It's no big deal now up on the front of this tank Right here See them three bolts Those are 12 millimeter those three bolts come out back here on the back Right there. That is a 14 millimeter bolt this one right here. That'll come out But make sure you get this is a steel tank on this one So you don't have to worry about really screwing anything up Get your jack, which I've got my jack out here and we'll put it under here with a board or something Cross there and we'll take take the weight off. I don't we'll take the bolts out.  I'm supposed to go to work today the second hell 30 degrees out here land on the cold concrete, but It's for your fuel gauge you have to unhook that now once you get that all off there and make sure these are Unhooked get everything unhooked that you can reach and then once once you once you do that you can drop this tank down a little bit Okay, now I've only got one jack and no jack stand, so I can't jack this truck up very high Well, I can't jack it up at all because I'm gonna need to jack for this I do have another jack, but it doesn't work. So what I'm I'm gonna go ahead and get this all I'm losing for you and I'm gonna show you something on one of the fuel lines. It's way up in there Let me get up under here. Let's see if I can show it to you Shit Something under here Okay Here it is See this line right here That's your main line that's your pressure line you need I'll show you I don't have it yet Because she's gonna she's got somebody coming to take her to go get the pump This takes a little special tool Okay to get up in there and I'll show you how to unhook that okay once we get to that this one is just This one's just one of them ones you squeeze again. See how it was up on top you squeeze that pull it back, but this one The reason why I showed you that is that's what the other one is on the other side I showed you that little one coming from the filler tube this one won't have to come unhooked, okay? See it goes back there. It doesn't have to It doesn't have to come unhooked Now but this one will So I'll show you how to do that when she gets that tool So I'm gonna go ahead and do that stuff Like I said, I showed you You know like right here. There's another one you see these are the two lines. I was talking about Okay, they're like vent lines. All right ones ones event line And this one I'm not sure If it's a return or not, but any either way this has got to come off here Let's see if I can get you in there right there You just squeeze that with a pair of pliers slide it back take your lines off that's your filler line Okay, so I'm gonna do that and then once you get up in here. You've got wires Once that tank's down low enough you've got wires you'll have to unplug for the fuel pump too and When we get when we get there, I'm just gonna prep this and Get them bolts out and I'll go over it with you again and show you but I'll show you how to unplug them them the line or the shit the plug for the For the fuel pump itself and But you can't you it'll drop down enough so you can get up in there and get to that stuff fairly easy But if you if you got to beat the means you can a lot of guys will raise the bed up off the truck But you got to go so high. I'm not gonna do that. There's only four bolts on the bed of the truck But you got to get it high enough to where you can get up in there and work because that pump goes down in top of the tank so excuse me, so I'm gonna get on that and we'll put you guys on charger for a little bit and Then I'll get back with you when we've got everything ready, and I'll go over it with you again. So stay tuned. I'll be right back Okay, guys, we're back what I wanted to show you as you can see I got the tank drop down a little bit So I can get up in here. I told you're gonna need a tool for this This one you do not It's got a kind of built-in Tool you grab that right there and you pull that around Not all the way off. Just pulled around like that till it stops and then pull that line off And there we go and that end These are four years the same way when I got one back here. Let me show you That one right There in order to take this tank clear out. I'm gonna have to Figure out how that comes off and I'll let you know how that's done as soon as I get this out of here I'll be right back with you guys. Oh These these other little ones you can see they just got them little spring clamps. That's all they got on them just these little And you can't mix them up. I mean, there's only one way they'll go If ain't long enough, it's on the wrong one. So I'll be back with you in just a second guys hang tight okay, guys This is pretty self-explanatory, but I want to show you something That line I think I showed you just pulled around there until it stops and that'll pop off And when you go to put all these lines back on they'll just slide right back on Okay, but I wanted to show you something on there. It's kind of important Well, actually, it's really important in my book, but You got your sending unit for your gas gauge. It's on your dash Okay, it's in here as well. So when you take this out be careful Let me back you up here a little bit Be careful not to bend this right here That's your sending unit when you're on full That floats up got your full mark So if you bend that you might get a false reading either way and if you get a false reading You know it could read your your you've got a half a tank of gas when you don't so I'm gonna blow this blow this off here real good and I'll get you up here on tailgating I'll show you how to here's the pump and this is your sock. They also called a strainer and I'll show you how to change this pump out. So give me one second guys. I'll be right back Okay, guys.  Let's get a hold of that rubber Well, I guess that ain't gonna work hang on Yeah, let's get a hold of that rubber Between the rubber and that piece of metal And bend that up like that and that'll that'll pop out there now take this rubber out If you buy if you get get a whole kit like I did You have this with it that new rubber you have this new these new lines here now Let's go ahead and these this line Now listen guys What you gonna want to now The kid I got can't came with everything Okay, so Use it because Like I could probably use this line again and clamps, but this thing's got four hundred sixty thousand on it now and Or somewhere right in there fifty-five thousand whatever If it's something It's not really important that you could do at a later date. I can understand it But this you got to drop your tank and everything to get this all out of here. I recommend Replacing it all I'll be careful with your wires here You don't want to break your wires off All right Right here. You just there's a little tab right here. That's a little tab Push it down And it'll come right out locks into that little square right there now next thing we're going to do Is we're going to match our new parts up? Okay, so we've got the new sock here We'll match it up looks good so far And right there's how good I'll show you how to put this on here in just a second Now remember guys, this is for Twitter And here's all our stuff. He's got new new clamps. It's got the good clamps Okay, got a new line and it's got that new rubber piece. That's good and You know, it'll have a cap on here. I try to leave it on till I'm ready for everything else. So let's check Make sure we get the same the plus see the plus and minus There's the plus and minus on both of them make sure they're the same in the same spot Because some of these I know on some gems and forwards and stuff It'll come with you'll have to change this wire you know Because of the pump, but this one you you won't have to it comes while we got OEM equipment too, so All right.  Okay, hang on now showed you I'm gonna or I told you I'm gonna show you how to change that Your strainer, so just pop that little plastic rubber plastic thing over there There's one here You take that out. Okay, take that out. You won't need that anymore and inside this little package There is that little Tiny looks like a washer, but it's it's actually like a little tiny clamp And it is small so be careful with it I want to set this here so I don't lose it Now make sure These are the same way. It's gonna go like that guys really there's only one way to go just in case and You stick that on there just like that Now you take your little little spring deal And you just put that on there like that With the with the tabs going up towards you What I usually do is use a little socket and push it down on there, but You can use a screwdriver as well And that's all there is to that That's it will not come off Okay And that new rubber piece of course We'll set in there Just like that See it's got these little hole or these troughs in here. Just set that in there like that And there you go.   I'm gonna have to use the old one I'll show you the difference in it See this one's at these tabs and stuff This one don't so I'm gonna have to use the old one in this case. There's I have no choice Okay, and then put that in there and then push your pump back out Until it's tight It's tight up in there that will not come out make sure Make sure that's on there now you got your your clamps go ahead and tighten them down They don't have to be super super tight, but snug them up pretty good As you can see I Put that clamp on backwards They're probably wondering why I would do that right and there's a reason for it Because I wasn't paying attention when I put it on it doesn't really matter. So We get this on here and I'll be back with you in just a second Okay, guys, I want to show you something What you do is might be a good idea to hang on this because it shows it's it is full of information But this is what I was talking about right here. So it says, uh, you know This car quest fuel pump may be equipped with a new design connector Included in this kit. You will find the replacement harness connector now This one don't don't have it. Okay Because it didn't need it, but if it did need it it shows you how to Do Everything all right shows you how to change them them wires or the connector this one doesn't need it That's why I did not come with it though. It did come with These two little items here Now that's for a different application. Now this this will fit a forerunner the Tacoma What's the other one? I don't know if it'll fit a tuner But so this this is these two items if your yours don't have it you won't need them Okay, so don't be alarmed to go. Oh, no, it ain't gonna work. I got the wrong one It's just because this fuel pump like I said will fit different automobiles. Okay, and on here You know, it shows you how to test test things how to you know How to check for check your pump and your relays and all that it shows you all this so I'll probably just keep that My toolbox, you know, a refresher type thing, but I wanted to share that with you and let you know That don't don't be alarmed, you know, so but it is full of information tells you where some of the relays are I showed you where this one is so And how to take these out But so I just want to share it with you if you have them two little pieces there Don't don't be alarmed if you don't and you got these left over because or if you do get the get the new wire plug in there But yours will plug right on to it Then you won't need to change it just plug your plug into the new pump and you'll be fine. So don't don't worry about that I'm gonna get ready. I'm gonna finish my cigarette. I am gonna keep these clamps and that little hose Now the little hose I'll never use on this truck, but you never know I'm working on small engines all the time I might need a temporary hose or something might need them clamps. I will say this right in my box But I'm gonna go finish the cigarette. I'm gonna get the tank back up then and You just reverse the procedure There's nothing different about it the hardest parts getting it out and getting the lines unhooked once you get the lines unhooked You're fine. Everything plugs right back in perfect You won't need any you know won't need to do anything special to plug the lines up. So I'm gonna go ahead and put this tank in And we'll get it hooked up and bolt it back up just reverse the procedure another good idea Do what I'm doing take pictures Videotape it do what you got to do so that way, you know in case did this line run around this way or did it run around this way that way you'll know Because there's not a lot on the internet as in step-by-step So yeah, I'm gonna skip the step of putting it back in because it's just Reverse what you did to get it out of there, and then I'll be back with you and we'll see if it'll start up and run So hang tight guys All right guys I haven't put that back on you, but that's just That only takes a minute. I got the tank in got everything hooked up. It's bolted up ready to go I'll show you it ain't Hasn't been running yet as you can see maybe Temperature gauge is on cool. I haven't started it yet.  All right guys There it is. I got to get my mess cleaned up my tools cleaned up It's always the hardest part right so If you guys Or mechanically inclined, I think you can do it. It is a little time-consuming Total Total working time on this. I've probably got maybe an hour or an hour and a half ish in it all together from start to finish that's doing the test of the the the Shoot relay and all that so As you can see the Sun's in a different spot. That's because I've been having to take a break here and there Out of breath and stuff. So Let's still got six or 12 gallons of gas in it approximately So anyway guys, I think you guys can handle it if you're if you've done anything like this before It's no big deal. Just watch how things come off pay attention to it take pictures if you have to video What not? So anyway, you'll the old truck how many miles is on this thing? You know it just It's getting old Okay, it's got 450,000 on it. So That's pretty good If you heard when I gassed it up a little bit you can hear When it's cold a little like cap or a little knock type thing. I think that's in the timing chain. So We may be doing one of them Because I'm sure it's never been replaced so Anyway, once it warms up it won't make that noise So all right guys, there you go. I'm gonna get off here Get this cleaned up and I'll get this uploaded for you If you guys have any questions comment below and I'll get back to you as soon as it's humanly possible. I check my notifications quite frequently so if you have any questions get a hold of me and Ask me and we'll see if we can't take care of that together because there's not a whole lot on There is one video because I wanted to give I wanted to put some links down below some more videos that may help you But one of them pretty much is the same thing that I did. They're just like well This is what we're doing now. This is but I noticed they didn't put a new rubber hose on it And these guys are supposed to be professionals. I don't care that little hose If you did, you know, if you didn't have to take the tank out fine I could see but any any time you it comes with it put it on man I mean, it's there for a reason how they give it to you. It's new put it on so all right guys I'm gonna get off of here get my stuff cleaned up and I'll get this uploaded. I just said that. So anyway, I hope you guys like the The lunar eclipse last night the blood moon. It's pretty cool I got like an hour and five minutes, and I think monkey put it on her channel to monkey 1000 So, you know, you can like skip through if you want, you know what I mean? Just fast forward through and you'll see the different stages. It was in and stuff. So it's pretty cool All right guys. Shaber 1000 met the man legend vote for president. I Gotta get well. I'll see you guys later. Bye. Bye now


Hi you guys, Lindsay here. Welcome back to my channel, Inside to Him. So one of the most frequently asked questions I get from all of you is how in the world do I know how to pair fabrics with patterns? How do I know that this fabric is going to look good made up in this particular garment? And to be perfectly honest with you, learning that took years and a lot of trial and error with a majority of it being errors. I mean, I made some really cute dresses out of really terrible fabric for that pattern. Learning about drape and weight and just being able to envision a fabric in its 2D flat form in a 3D garment is one of those things that really elevates your sewing from beginner home sewist to someone who people are shocked to learn that you make your own clothes. And so whenever you guys ask me how I learned, I really can only tell you that I just went to as many fabric stores as I could possibly go to and I just touched a bunch of fabric. I read the end of the bolts. I just learned and memorized certain characteristics of all the fabrics that I learned to sew with. When I found a fabric that I loved and I knew how it behaved, I would sew lots of garments in that. I have, you know, four or five rayon shally maxi dresses because I found something that worked. Sounds like I'm gonna stick with this. But, you know, you kind of get tired of doing that. You want to branch out. You want to be able to mimic the kinds of clothes that you're seeing and ready to wear. How do you do that when you go to a fabric store and you're just looking at bolts and bolts and bolts of pretty stuff and you just have no idea if it's going to work. Well, today I'm going to tell you one of my best kept secrets and most loved tricks on how to learn about fabrics. And that is with a swatch subscription. So there are a few of them on the market. Today I'm going to talk to you about the one that Vogue fabrics offers. They come out with this seasonal like magazine basically. It's beautifully done on really thick card stock paper. And inside is an entire like magazine style magazine type quality layout of little croquis, little like drawings of people in actual patterns with real fabrics paired with those patterns. And because it's a swatch club, you actually get swatches of all the fabrics.  And they are just enough for you to be able to tell stretch. You'll be able to feel it and feel the texture. You can see the colors in real life. You can hold it up to your skin and see, you know, how it looks. You can hold them up to each other and see if they pair well together. And in terms of using this as an educational tool, in addition to seeing, okay, they want, they think that this fabric would look really cute as a little A line skirt. Okay, yeah, yeah, I can see that as an A line skirt. You could in theory, buy this fabric, buy this pattern, make this skirt and someone would have basically held your hand in matching a pattern with fabric pretty much foolproof. Or you can also start to use this as like an encyclopedia or as like a resource guide because with each swatch paired with its, you know, illustrated counterpart is the complete like makeup of the fabric itself. This one is 98% polyester, 2% spandex. So you can kind of learn a little bit about polyspan and what that looks like, how it drapes, how it feels. It also gives you a care instructions for each one of them as well. So there is a lot to be learned in here. And there are a variety of fabrics, which is also great. We have everything from the polyspan, you've got knits, jerseys, you've got tons of linen. What else came in this one? There's like, you know, netting type fabrics. There's seersucker and cotton. There's quilted fabrics. I mean, there are in terms of variety, there are a ton of fabrics here. So if you are trying to learn more about fabrics, these swatch programs are going to be invaluable to you. Now, if you feel like me, like you already kind of know the properties of fabrics, and you're pretty good at pairing them with patterns already, is the swatch catalog still going to be valuable to me? And in my opinion, I think that it is. I love shopping online. I think that there is just so much more variety. There's so much more, so many more options. And it also can be quite affordable as well versus shopping in store. But you don't always know what you're getting when you shop online. I mean, a lot of times I'm like, I think that would work, but I'm not really sure. And when it comes to the swatches, you really know exactly what you are going to get. I also love to use the swatches to make outfits. So this particular catalog is really great because it's broken out into like collections. And all of the collections would work really well together as like a little capsule wardrobe like this first one. It's kind of a whole navy thing happening here, navies and blues. But as you get through the catalog a little bit, you'll go into like some pinks and magentas. So you could really use this as a way to build a summer wardrobe of five to eight pieces that you know you're going to be able to pick from picked one or two of them and pair them all together. And they're all going to match and they're all going to look really good. There's no worry about the colors on the computer screen not coming through the way they are in real life because you can actually see them. And there's also just so much more variety for you to build a wardrobe that you really love and you don't feel limited just by whatever they have at Joanne, which is also really great. So Vogue sent me their summer catalog and let me kind of pick something from the catalog that I loved and wanted to make something from. So I chose this adorable little rainbow seersucker right here. And they sent me some yardage which I have right here.  So this is seersucker 100% cotton perfect perfect for summer for this hot humid weather that we have here in the southeast here in North Carolina even. And I talked about this a little bit in my sewing plans video what pattern I was going to use, what I wanted to make from it. So I am excited to sew this up this month and show you guys you know what it looks like in the end. But I also grabbed something that you know I might not normally have picked up if it weren't for the swatch catalog.   So I thought it'd be nice to have kind of like a light layer to put over the dress that I make. And if I were just browsing their website or any website I might have reached for something like linen. But when I came across this double gauze I just got a vision of kind of like an over shirt type of thing where it almost feels like one of those scarf type things but would be made into more like a shirt. And I felt like the weight and the drape of this particular double gauze would be great for that. And this all this inspiration is coming to me as I'm like touching and feeling the swatch itself. And it might not have come to me.  But this I think is going to be an interesting component to my wardrobe because it is so lightweight it will be perfect for the summer months not too hot when you're outside but would be enough to keep you a little bit cozy and warm whenever you go indoors. So that's kind of how my thought process worked when building this little outfit that I put together and kind of the reasons why I chose what I chose. And like I said I'll make these things up this month and you'll be able to see both of them in my makes video that'll go live at the beginning of August. But you know it's just really cool to be able to touch and feel all the fabrics just as if you were in their store but you're on your sofa which is great. So they send out six catalogs a year it's the four main seasons and then two kind of like transitional ones that'll take you like early spring and early fall. And those catalogs ship every other month. If you order fabric from one of the 2018 or 2019 what's shipped so far if you order fabric from any of those catalogs there is a coupon code for you to use to save 20% on those fabrics. It's ITH20VF and again that's going to save you 20% on the fabrics from any of the back catalogs. They will send you the summer back issue for free as well. But I say go ahead and get the subscription. Who else gives you over 50 swatches in a magazine style format with color coordinated and patterns to match every single fabric. And all of that for just $30 a year. This is the best value and the best service on the market. There are other swatch catalogs out there like I said but this one is truly an amazing value. If you've ever ever said to yourself I can buy fabrics online it's too hard to find good quality fabrics. I don't know how to compare colors when I'm shopping online. I don't know what fabrics go with what patterns. I don't know if I'm actually even going to like this fabric whenever it shows up. If you've ever said any of those things to yourself then you need to get this swatch catalog.  So head on over to voguefabricsstore.com. Check out the subscription catalog. You'll be getting the fall transitional the early fall catalog. I'm going to get one with you so let me know what you guys think of the fabrics that are in it. Come back to this video leave a comment. Obviously if you have any immediate questions about anything that I've said in this video please leave them in the comment section below. I will be checking it regularly as I always do. Those of you who are like I know you're never gonna see this when you leave your comment you're wrong. I see them all. I read every single comment it's one of my favorite parts so don't hesitate to leave anything you want in the comment section hopefully constructive and positive and something that will cheer me up rather than bring me down. But leave it in the comments and I will definitely see it. And I really hope that this little tip and this service that voguefabrics brings to you is truly valuable to me to you like it has been to me. But that's going to do it for me today. I will see you all very soon in my next video. Thanks for watching. Bye.


Man says we're trying to get cleaning and trucking contracts how to get better at filling out there are cleaning contracts galore That I mean there's so many cleaning contracts out here really if I were in the cleaning contract space I would get registered with my local state. I had my local municipality and You know just price them like just basically bid them. There's really nothing strategic about it in terms of cleaning contracts They're everywhere. They're plentiful. I know people who are turning down cleaning contracts In fact, you know someone our group they turn down cleaning contracts. There's too many for them to handle. I Have a student of mine that's here in the Miami-Dade Broward area that he's doing cleaning contracts from Miami-Dade County They're plentiful. I really believe that if you are in the cleaning industry, you just literally have to get registered and Start talking to people within your local municipality or the municipalities around you and the local states and they're looking for people really Bad they're desperate for clean country. I mean everyone has to get their stuff clean, you know the guys who met with today They are cleaning hotels and facilities like so cleaning contracts to me are like really easy really easy to get right now They're almost like the PPE contracts that they were given out three months ago All right, so again, let's he's saying what my area is freight My wife is clean was Justin's on that kind of field. We read it and it's kind of crazy We'd like to know where to get more information. So I kind of just answered that question Which is like, you know, hey register with your local state City municipality get on some of the bidders list sign up for I forgot the one we had bid sync or bid Some of those Murray, do you know the ones that we have the bid ones that we get every week? We bought I bought one of those bidding services like bid sync or bid something And they send us a lot of like cleaning PPE, whatever kind of stuff we get that all the time. So For cleaning contracts, you shouldn't have a problem. I'm honestly, I think All you have to do is literally show up and and ask and and people will give you contracts And I'd never say that about anything, but I've seen it In cleaning I've seen the need is so great that they're begging people to come do this Once the set-aside solicitations pass could you still provide RFQ to the contracting officer?  There you go. Maria answered it bid sync Yeah, bid sync So yeah, bid sync is a place to do it. Um, can we help you? Yeah, we actually Maria Maria and I are working on the uh coaching program where we're you know, we'll be helping people out Which not quite finished yet, but we're getting there We're getting there So Hey, Nicky, what I did to Maria? She don't leave Maria alone. What I did That's messed up. I didn't do nothing to her so Yeah, but we're working on trucking with us for life Message us in fact message us here on gov con giants Just dms and then we'll keep you in a loop when we have this thing wrapped up We're working on it. I promise you we're like A lot of people are asking for the stuff I registered for sam today. How long do I have to wait to get approved? I think the last time when we got registered my joint venture partner. It was six weeks Yeah, but just because your registration is not approved doesn't mean you can't start doing all the activities you need to Put yourself in a positional land contracts. I would not wait For my sam to start marketing my business D was I'm ready for the coaching Okay, my man says how do you develop a calendar so you can forecast where to start building relationships? I'm trying to understand that question How do you develop a calendar? So you can forecast where to start building relationships? Well, I think I don't know about this calendar that you're asking, but There's a couple places where you can learn it. Obviously, you know, we teach it I don't know what the hell happened some noise happening back So where to start building relationships? We have some content publicly available on youtube that talks about it also I remember reading it and judy brats book. I can't think of name her book, but judy brats j u d y b r a d t Her book talks about the nine people that you want to know in government do business with you could find it on amazon She's got a place that talks about that. We talk about it on youtube. We talk about in the course So, I mean in terms of a calendar We don't really have a calendar for it, but we do have the people that you need to know and talk to That will Take you from one, you know one step to the next step to the other. So we do have that Available publicly like everywhere and again, I know because it comes to my mind judy brats has a section Her book that says these are the nine people that you need to talk to definitely Can you can someone look it up to see what to name her book? I can't remember it now, but it's really good So Yeah, no, I know I said start building relationships, right? So your question is with whom right? I guess I just don't understand how's the calendar relate to that That's just my point But again, I'm telling you on youtube. We talked about there's a government buy what I sell Judy brats book we talked about or she talks about the nine people that you need to be There you go contracts made easier the nine people that you need to know in the government contracting space And I think that's kind of what you're asking All right, so what should I be doing it so I get approved relationships relationships relationships until you get improved in sam I would couple things one is You know Going back to what maria put on the screen Right maria. Can you put those five things that we just talked about back on the screen, please? So what I would do is these five activities that we just listed on here and Learning contracting right making sure your team is together. How do you do that? Look up some existing outstanding contracts in your particular arena See if you have all of the qualifications, right? Make sure that you do if you don't find out who you need to bring on partner and team member Whatever case may be to help you offset where you're lacking so that then you have a strong team If there's capabilities make sure you acquire those capabilities in some shape form or fashion And then at that point you can start reaching out to people However, I will tell you this this Because it's the end of the fiscal year. This is not the time to build relationships Unfortunately, everyone is super busy. They're trying to put out projects. That's why Today we were awarded projects in florida and california simultaneously because the government is just putting out projects We have people on our team that work inside of the government and they're reviewing technical proposals every day all week That's where everyone's focus is until the fiscal year ends So this is not the best time to start trying to build relationships I'd wait till october But at the same time you could do all the planning right so figure out who the people you should be talking to Get their information track it down Pull down a list of the upcoming projects the forecast for 2021 Right because 2020 is gone now. We're going to 2021 pull down a list of the upcoming projects and opportunities And start seeing where you can position yourself your company And align with some of those projects and then that way When the government comes back from hiatus, right? Then you could start setting up meetings and talking to them In fact, if you go on my youtube channel, I have a video It's called what activities should you be doing in a month of october? Right, so I put that out for 2019 But it's the same activities in 2020 because it's october again and these are the activities that you should be doing So I just I actually just sent that to one of our interns who asked well, what should people do in october? I go actually I have a video called what to do in the month of october So take a look at that video gives you all that information that you're asking for because again people have already done it All right, so maybe I don't do a good job enough of promoting But people are asking me. Do you have a course? I want to structure curriculum. I like what you're doing I like the ig I like the youtube visit us over at gubcon edu.com To find out all of our offerings for one low price You can get more than a dozen courses that we teach from proposal writing to subcontracting Prime becoming a prime contract becoming a subcontract becoming a consultant If you want to do it or staffing or janitorial We talk about all these things inside of our platform over at gubcon edu.com. That's g o v c o n e d u dot com