Everybody forced here ripping 2022 tops diamond icons baseball hobby one box number 32 Random hit style. We're gonna type in the hits as we go along here. We'll do the random at the very end to see who gets what Thanks everybody for joining and good luck 10 spots 10 hits Here we go. Sometimes there's 11 if there are 11. I'm gonna combine two Hits of the least value to the best of my ability. So that's how we'll do it if there's 11 Good luck Come on something crazy. Come on I still want to pull a really big cut auto, man. All right, we're gonna start off with a bobechette jersey card Two out of five bobechette jersey 205.  Nice The cubs legends Got a brice harper auto two out of 25 Brice nice brice Good box so far Jumbo patch auto ryan mount castle nine out of 25 three color patch on the mount castle The steven segal. It's breaking dojo What an insult shane i'm just getting nine out of 25 on the mount castle patch auto Mike schmitt bat relic auto four of ten on the schmitty schmitty four of ten bat relic auto Next up is a walker bueller auto 14 of 25 Mueller Oh geez. Yeah, let's not talk about that in chat, please That sounds terrible next up. Nolan aronato auto nine of 25 Nolan aronato Is he the best third baseman in baseball you guys? Is it ramirez? some bachado nine of 25 Got a rafael devers auto four out of 10 rafael devers auto four of ten nice raffie Next is a pager martinez auto 13 of 25 Pedro They should put claydrow in this clay buck holds some skin pager martinez auto 13 of 25 Got don mattingly auto nine of 25 as well. It's on mattingly nine of 25 And a reggie jackson auto 13 of 25 nice reggie Reggie jackson 13 of 25 rednink mr. october october is coming up you guys September just this week All right, so we got 11 hits again. It looks like give me one sec to figure out what we're gonna combine here So we will combine the Walker bueller and the boba shut Boba shed jersey car with the walker bueller auto 25. Yeah Close, but I think that's I think that's what we'll do So everybody at least get an auto here. All right. Good luck. Everyone else roll the dice We'll randomize 11 times again as the same as the last box Names and hits both 11 times put them side by side to see who's getting what one two three four five six seven eight nine 10 11 joshua h down scot c in 11 times on the hits now. Good luck everybody one two three four five six seven eight nine 10 11 Uh, the mike schmidt bat relic auto down to the brice harper auto I've got joshua h with the mike schmidt bat relic auto Simon h the devours auto to 10 john a the jumbo patch mount castle auto Brandon o the don mattingly auto john a pager martinez auto gasper m reggie jackson auto william h walker buehler and boba shett walker buehler auto and boba shett jersey john ephanel and our nado auto william h the santo cotton auto and scot c the brice harper auto I get these results posted to the site we'll get started on the next break shortly


Good morning and welcome to day 12 of the no spend. Today is Monday and I'm making some tea. I'm not really that hungry this morning so I'm gonna have just one of those Trader Joe's bars.  I'm gonna have this and some tea and that's gonna be it for today. But I think my plan for this morning is to plan. The plan is to plan, okay? I just kind of got a little inspired by watching Jen plan's her channel. I will leave it down below and using the monthly view in your planner. I don't ever use my monthly view and it's obviously like wasted space, you know? So I think I'm gonna back plan and do March. So here's March. There's nothing in there. And then I'm gonna like just put some sticky notes and stuff on like April, May, June, July, like anything I kind of know about and then maybe make that more of a regular video. If you guys like it, so I'll film what I'm gonna do. But yeah, I think that's a good plan. It's to plan. Plus I haven't planned out my like actual week that we're in right now. So hopefully I can get that filmed today as well. But yeah, that's kind of it. I don't know why I'm so tired but apparently I am today. But I've got laundry going upstairs and I normally would do laundry like Friday, Saturday, but it's kind of amazing like all the things you don't wear when you're not going to work. So I mean, I'm always in the same like uniform. I'm always wearing like some sort of sweatshirt or t-shirt, which you know, it's fine. This morning I'm wearing first gangsta wrap because hello, that's how I start my mornings. And yeah, like you just don't wear as much stuff because a lot of times I come home from work and then I completely change my outfit because I don't want to wear whatever I was wearing at work. So got the laundry going. So we're good.  So you guys will probably end up seeing a planning video before you see this. Hopefully that's what I'm hoping today because I want to get a video up for you guys. It's not a vlog. So I'm going to do that and I will see you guys in just a little bit. Okay, it's the afternoon. I just took a doiled dog on a walk.  So now I'm on the second load and it's lunchtime. So I think what I'm going to do because I need to go grocery shopping sometime this week, but I think I don't know if I'm going to go today, probably tomorrow or the next day because I need like milk. I'm almost done with my bread and I need to get some eggs as well. I think what I'm going to have is just have some pasta and marinara because it's easy. It doesn't require any like milk or anything like that. Again, we'll go with the angel hair and then I've got in the fridge a little bit left of this one pasta sauce. This is like the Classico four cheese, which I'll probably... It looks like it's more than it is. It's not. It's like really small. The amount that's left in the jar. But I have that left in the fridge so I'll use that up. And if I have more pasta and marinara, I believe in this mess somewhere, yes, I do see something a little further back there. I do have more pasta sauce.   I'm going to wait, try to wait. It's been very difficult for me by the way to let this monstrosity happen, especially now that I have the time to do it, but I'm trying to wait until I clear out as much as possible. So fingers crossed I can go the whole month without actually doing it, but we'll see. So anyway, I got my video filmed for my monthly layout of March and I'm kind of loving the way it looks, right? Like, isn't that cute? You guys will see the video before you'll see this, but I just really love it. So I totally knocked off Jen plans. So I'm sorry, Jen. I love your stuff, but it just inspired me and I think that's what like the whole planning community and Instagram and Facebook and YouTube is like all about. So like there's room for everybody and I feel like we can all take inspiration from each other and just kind of figure out what works best for someone's life or lifestyle and all that.  But I think we can all just take something from each other. You know what I mean? So anyways, that is what is going down at the FDE house at the moment. And I'm like trying to purge and get rid of things. So yeah. Okay. I need to just like throw this thing away. I'm not even going to show you what I'm throwing away because you guys will probably just like be so sad if I showed you. But it's just, it's not, it's not worth selling, you know? But anyways, that is what's going down over here. I did hear you guys about the like FDE and Doyle merch. That stuff should hopefully be coming up soon in the next couple of months. I need to hire a graphic designer. I already have a lead on who I would like to do it to create basically like a Doyle logo. So I can use that in all of my images and all of that stuff too. Something that I think you guys will like. So again, it's in the works. It's in the works. But the sum of this stuff takes time. So we'll have to figure that out as I go. And I'm also, I heard a lot of your guys' information about possibly not opening up an Etsy store, but talking to somebody that are talking with a company that does like all the shipping, all the orders and basically like make it to order. So then I don't have like a thousand coffee mugs here. And then I have to deal with it. I mean, I'll still get like samples and stuff to show you guys, but that they would basically make it and ship it and like deal with any, you know, issues with shipping or returns or exchanges or something like that. If there's like a wrong size, if you guys ordered a shirt or something. Oh, P.S. I did hear you guys about the sweatshirt thing. I didn't even think of a sweatshirt. I didn't even think of that. But yes, I hear you on that. I feel like that would definitely be over the $25 price point though. So like just FYI, there's, I don't think there's a way to get a sweatshirt with a logo under $25 because especially if I want to put my name on it, like I want it to be a quality of item that I would purchase myself. And that's why I've already ordered some samples of some certain things. Because again, if you're gonna brand it for yourself, you want to make sure it's something that you like too. So I just want to put my name on something that I just, you know, was like subpar quality and, you know, I'd want to wear it and wash it a couple of times, make sure that it doesn't like shrink up a ton or like anything like that. So again, testing stuff for you guys too, like that's part of it. But I'll start with a few things and then maybe I'll add to it just depending on the response. But it seems like about half of you want FDE stuff and half of you want Doyle stuff. So I will exploit Doyle for everything because that boy needs a job. Let me tell you, he's been freeloading for over 11 years. I think he needs a job, right guys? So anyway, um, all right, my water is almost ready to go. So I'm going to drop my pasta in there and have some lunch. Probably chill out for a little bit. Like I said, I just filmed my monthly layout and I'm going to get that edited as soon as I'm done eating my lunchage. I also have to do my unemployment today, which shouldn't take too long. I just need to go online and file for it and do all that good stuff and just fill out the little questionnaire. But anyway, that's it and I will see you guys in a little bit. Well, good evening my friends. I just got out of the shower. I took like a really late shower today. Normally I take a shower like right after, um, lunchtime or like right after I take Doyle on a walk because obviously I don't want to go outside in the cold with wet hair and I just don't care enough to ever blow dry my hair. So it'll dry in like, I don't know, 30 minutes an hour or something like that. But it's about dinner-ish time, 6.55 to be exact. So it's time to find something to eat and I don't know what I want. So maybe you guys can come along and help me. Let's see here all and reminder to self, I don't have any milk. So I can't make anything that has a milk component to it today. But I think tomorrow I'm going to run out to the grocery store because I have to mail out a couple of things. So yeah. All right, what do I want to eat today? I will make, ooh, I know what I can make. Okay, this is going to like really take me back to you guys.  I used to have this like way back in the day when I was like extra, extra broke when I was living. I think I started eating these when I was living in North Carolina. And I still like absolutely love them. Oh, I don't need anything in the freezer. Gosh, my brain. So I think I'm going to make some cheesy tortillas. All I do is I take one tortilla, put it on a plate, evenly coat it with cheese, and then like wrap it up. So it's like it's like a cheese tortilla roll. And then the sauce, the sauce that I like the best, which I haven't even opened yet, is the Taco Bell Mild Sauce or Mild Sauce. Sorry. Yeah, that's what I like. Normally, I haven't been to Taco Bell in a long time, which I know, sacrilege. But usually, I think I only have like these two packets. Normally I get like a ton of mild packets, so I don't have to buy the bottle. Broke person tip. I always ask for extra sauce packets because I love them. And you know, they give you as many, most of the time, they give you as many sauce packets as you would prefer to have. And some people don't get the sauce either. So I like it though. I like the Mild Sauce. It's good. So anyway, I think that is what I'm going to have for dinner. But I have a like conference call thing to do at eight, my time. So I got to get that set up on my computer, but I have my computer currently charging. So we should be good to go with that. I'm going to just pick up a little bit here too. And just put some stuff in the right places. I like went through a couple of reusable bags today of just stuff. Like stuff that just needs to go places. And oh man, you guys. I could probably do a no spend for another month, maybe two. Because it's just like a lot. It's kind of amazing like how much stuff you end up accumulating. And you didn't even know you had. But the only thing I'm going to get at the grocery store tomorrow is I need eggs. I need milk. And I think I'm going to need another loaf of bread. So I will get those things. And I don't think I'm going to need anything else. But I have like a day to think about it. So yeah, that's kind of what's happening here. Let's see what Doyle's up to. I'm going to say hi to the doodle man. Oh, here he is. Here he is. In all his glory. Hi buddy. Hi little guy. Hi little guy. Yeah. Yeah. Oh Doyle. He's such a funny man. Yep, that's what happens. We got like Aaron Condren, Sherpa Throws, like all over them. All over the sofa today, right bud? Yeah, he doesn't like it when it's like neatly folded. He likes it all messed up because he likes to burrow his little body in there. He's kind of a funny guy.  I think someone had sent me a message asking what I drink all day. This is what I drink. Just drink water for the most part. In the middle of the day, I will have a Coke usually. I didn't have one today because a Coke with pasta and like marinara just sounds really gross. Like it doesn't, it's not appealing to me, so no. But yeah, that's what's happening here. I'm just kind of putting things away and probably making you really dizzy. So I'm going to say goodbye for right now. But I might show you guys or like talk to you guys in a little bit. So yeah, I'll just talk to you guys in a little bit. That sounds good. I'll talk to you guys in a little while about my eat and I'm going to see you guys in a little bit. Bye. Okay, so I just got done with my live. There were some definite technical difficulties. But I will share what is going to be happening tomorrow because I'm going to try to upload and get this footage up tonight. But tomorrow at 7am, there is going to be a huge video on my channel. There's going to be a large giveaway. I can't remember the last time I did a giveaway of this magnitude. There is a new release from a coffee break planner, which is right here. And then as a little sneaky, sneaky, sneaky, I will show you. I'm also giving away all of this stuff as well as those stickers, which are a new bundle release for Catherine's shop at Coffee Break Planner. So I'm very excited to bring that to you guys. The giveaway will be on Facebook. But if you watch the next video after this video, that will be the giveaway video because it'll say like giveaway, you know, like that's kind of like obvious. I tried to be captain obvious over here. But anyways, I think I'm going to jet for now. Thank you guys so much for watching. I am on Facebook right now getting everything ready for tomorrow morning because the giveaway is going to be on Facebook, as well as I have a image that's supposed to be going up on Facebook at 7am central standard time as well, because that's where the giveaway is happening. I feel like I've just said giveaway a million times. So anyways, I'm getting a little delirious. I'm going to jet for now. Thank you guys so much for watching. I really appreciate it. I'll be back tomorrow for some more fun and I will get this stuff edited for you tonight and you will see this hopefully. And then tomorrow starts the giveaway and the giveaway is going to run until Saturday evening. So if you guys don't see this video until say Thursday, you still have some time to enter. But all the rules and everything are going to be on my Facebook page, which will be linked in the description box either below this video. Or you can watch the next one and it'll be linked there too. So anyways, I hope you guys are having a great day, you know, no matter where you are. And I will see y'all in the next video. Bye guys.


The world is transitioning towards clean energy and electric vehicles for a better sustainable growth. The increasing use of batteries will create a surge in mining for minerals like lithium, lead, nickel, etc. By the end of 2025, lithium demand is estimated to be nearly 1.3 million tons of LCE, lithium carbonate equivalent. Activities like mining, excavation and processing of these minerals cause severe dust pollution. Dust pollution at mines and quarries causes serious respiratory diseases to the workers and citizens. Tiny particles of metals such as lithium, uranium, cobalt, etc. along with the dust particles prove to be fatal to humans and the environment. It is important to suppress the dust particles and keep the concentrations under the prescribed standards. Dust monitoring through Oizoms Dustroid provides useful insights to curb dust pollution at mines and quarries. Dustroid can be integrated with the dust suppression systems such as sprinklers, mist cannons, water sprayers, etc. Data-driven automatic suppression systems through Dustroid prove to be a highly efficient mitigation strategy to reduce the dust pollution at mines and quarries. To know more about dust monitoring at mines and quarries, click on the link in the description below.


Hey Psych2Goers, welcome back to our channel. So you're curious, what kind of traits most people find attractive? Everyone's different, so they may define a strong sense of humor as an important quality. While someone else may say trustworthiness is a key quality they need in a partner. But there are quite a few common traits people find attractive in others, despite varying personalities. So here are six traits people find attractive. Number one, vulnerability. How vulnerable are you? For a relationship to work, partners need to be vulnerable with each other and open up about themselves. Family and marriage therapist, Hal Runkel, told Business Insider that we like people strong enough to reveal themselves without needing us to validate them. So if you're wondering whether or not to open up to your partner about your true inner self, perhaps now's the time to start being more vulnerable with them about what's on your mind. Number two, trustworthiness. Do you trust your partner? Trust is vital to a healthy relationship. Dr. Michael McNulty, a master trainer and certified Gotham relationship therapist from the Chicago Relationship Center, explained to Business Insider about how important trust is in a relationship. He explained, research tells us people only tend to move from romantic flings into bona fide relationships when they feel they can trust the potential partner. Trust in a relationship is not only about transparency. It's a sense of investment in the relationship. It's a sense of commitment to one another. It's a sense that both partners are true to themselves while having each other's backs. They're honest about what they want and need and committed to working through their differences in ways that are fair to both of them. Great advice.  Do you trust your partner? Number three, kindness. How kind are you? A 2014 study from Yan Zhang of Haoxiang University in China published in November 2014 issue of personality and individual differences wanted to see just how much someone's positive personality traits influenced their facial attractiveness. The study had three groups of people rate the attractiveness of 60 photographs of strangers pictured with neutral facial expressions. The researchers changed things up for the participants weeks later when they had a group read out loud positive attributes about those pictured. Another group read negative attributes and then the control group had no attributes paired with the photos. The participants now rated the strangers attractiveness again. While most people originally agreed on who was the most attractive from the photos, with the positive attributes, this changed. Participants rated those with kinder descriptions as more attractive. Those with negative attributes, subjects reported being turned off by them. Their faces simply weren't as attractive anymore. Big takeaway, be kind to others and yourself. Are you struggling to get motivated by your goals? Do you want to build better habits? If so, you'll love our sponsor for this video, Fabulous, the number one self-care app to help you build better habits and achieve your goals. This award-winning app can help you create long lasting changes in your routines at your own pace. Unlike other apps, Fabulous is gentler, more rewarding, fun and has a more supportive approach. They offer daily coaching sessions written by Jasmine Quill, the co-founder of the Psychology One program at Stanford University. If that's not enough, try out a challenge. These short-term programs are designed to motivate you to reach a specific goal for a short period of time. One of my favorite challenges is the seven day gratitude challenge, which has tasks as simple as writing down one thing that you're grateful for. Do enough of these and you may see how great it feels to be motivated. I've been using Fabulous for a while now and it's been the motivation that I've been searching for all this time. The circles function allowed me to find a community of people who have the same ideas as I do and we were able to motivate and encourage each other to do our best. And we have some great news. The first 100 people who click the link below will get 25% off a Fabulous subscription. So what are you waiting for? Start building your ideal daily routine today with Fabulous. Number four, humbleness. Remember marriage and family therapist Hal Runkel? Well, he has some more advice for you. Runkel explained to Business Insider that we like people who can laugh at themselves and yet still be comfortable in their own skin. A little humility never hurt anybody, right? Right, but seriously, it's best to relax around your partner and have a bit of humility. Be humble. Nobody likes someone who is constantly overbearing. So be comfortable in yourself. That's great kid, but as Han Solo once said, don't get cocky. Number five, genuine interest in others. Wouldn't you want your partner to have a genuine interest in you? Of course you would. It's time to actively listen to your partner and be there for them as long as it's genuine interest that is. We're pretty good at spotting when someone is coming off as disingenuous. So if you find you're just not interested in hearing what your partner has to say, maybe they're not the right fit for you or maybe you need to work on your listening skills. Same goes for them. Do they never have time to listen to you? Not that attractive of a quality. Being a great listener is one attractive quality that is also important in any healthy relationship.  Your date's talking about how much they love Star Wars. Attractive. And number six, self-awareness. Are you self-aware? It can be very attractive when someone is self-aware of who they are and how their actions and words affect others. They can admit when they're wrong and take responsibility for their actions. If someone is not self-aware of their wrongdoings or if they're immature, they may become more defensive easily. Those who can self-reflect on their actions in the past know when they've done something wrong and they'll learn from their mistakes and maturely apologize. Self-aware partners thrive in their relationships because they have an easier time communicating with their partner in disagreements, learning from their mistakes and admitting when they're wrong. So are you self-aware? A great listener? Humble, trustworthy, vulnerable? What traits and qualities do you find most attractive in someone? Feel free to let us know in the comment section down below. We hope you enjoyed this video and if you did, don't forget to click the like button and share it with a friend or someone you find attractive. Subscribe to Psych2Go and hit the notification bell for more content like this. And as always, thanks for watching.


A DC drive is the functional circuitry that can be employed to precisely control a DC motor. The drive operation allows the application of varying DC input levels, so that the motor runs efficiently at different speeds. A DC drive circuit is composed of three main components, a operator controller, a drive controller, and a DC motor. One of the functions an operator controller provides is a method for altering the speed of the motor. The drive controller will regulate the input by means of either a phase control device or a pulse width modulator. And the DC motor can be an electrical device that needs to be adjusted to perform at various speeds. Let's look at the phase control method in a bit more detail. Phase control works by modulating a gated diode-like device, such as a silicon-controlled rectifier, or SCR, into and out of conduction at a predetermined phase of a rectified AC halfway. This diagram depicts an AC sinusoidal wave being altered by a full-wave rectifier to produce partial half-waves. The partial half-wave output produced is reduced based on when the firing device is activated. Adjusting the speed at the operator controller will determine when the SCR is activated and at what point in the half-wave cycle the wave is turned on or allowed to pass through. The area of the waveform will determine the amount of voltage delivered to the motor. Pulse width modulation, or PWM, is a method that uses digital signals to control power applications. In this example, a PWM uses a full-wave rectifier to convert an AC input voltage into a DC output level of 300 volts. A control circuit operating a DC switch turns the DC output on and off. This controller device can be an SCR or a powerful transistor. The on and off cycling of the controller circuit produces a repeating 300 volts square wave with a fixed frequency and width as illustrated by this typical output displayed on an oscilloscope. One of the parameters of a square wave is the duty cycle. This is derived by dividing the time on duration or width, T sub zero, by the duration of the wave period, T. Thus, if the period is 2 milliseconds and the time on duration is 1 millisecond, then the duty cycle is 0.5. The voltage reduction will be 0.5 times 100% or 50%. Multiplying the duty cycle times the input voltage will give you the voltage output. In this example, a 300 volt input will be modulated by 50%, so the final voltage delivered to the load or motor is 150 volts. Thus, controlling the speed of a motor can be achieved by modulating the square signal waveform.


Sup guys, it's Jacob here. Thank you first and foremost for clicking on my video. Secondly, this video is proudly brought to you by Manscaped. Now Manscaped do have a complete range of products on their website But the most recent product and the one that I'm using at the moment is this the lawnmower 4.0 So not only is the packaging impressive, but apparently It's a whole new balls game. And here it is now the latest addition to Manscaped's incredible selection of mail grooming products I've been using the products for a good couple of weeks now. I love them There's no way I'd be making this video if I didn't. Manscaped use ceramic blades with skin-safe technology Which means there's absolutely no risk of nexal cuts. In fact, you could probably do it blindfolded Not only that but you can do it in the shower also It's completely 100% waterproof and it's even got an LED light so power or no power You can still get the job done. For those wondering is it a tall just for the downstairs area? No, no It's not it's actually good for your entire body including a face and for anyone wondering that's the length But if that's too short for you, there are four different trimmer guard options Which means four different lengths which means if you really wanted to you could probably even draw a picture It looks good. It's waterproof. It's rechargeable with a 90-minute charge And it's only one of the incredible selection of products on the Manscaped.com website So head over there check out www.manscaped.com use code Jacob 20 That's J-A-C-B-D-2-0 for 20% off your entire order join myself your other favorite youtubers and over 2 million men Worldwide happily using these products once again head down into the description box below click the link check out the entire range of products Use my discount code happy days. Enjoy the video guys and peace out.  How are we doing and welcome back to the channel?   You don't know which is the best one. You don't know where to go Well, I'm gonna say right here right now that whatever major city you're in or whatever major city you're near There's gonna be There's gonna be a selection of surgeons that can do this surgery. What you're gonna have to do then is work your way through them So I'm gonna make this really easy focus on where you live if you can if there's no surgeons there Or if you're really remote you may have to travel interstate You may have to travel to another country it is what it is But if you can focus on the surgeons in your area now once you have a list of possible surgeons I would want to you know whittle that down to maybe five or three and the way that you're gonna do that is By talking to them and the way that you're gonna do that is by Like I said doing a bit of research looking up the ones in your area going to the website Associated with that surgeon possibly ringing the practice just getting a bit of a vibe a bit of a vibe Now if you put a tip next to that one you say that's a possible all good Hopefully you can have three to five, you know ticks which means three to five possible surgeons following that you're gonna want to book a consult and Look a consult is gonna cost It is what it is You're gonna be paying upwards of five six seven even ten grand for the surgery So a small cost it might be eighty dollars might be a hundred bucks might be even a hundred and fifty But that's a very very small Cost when it comes to giving you the confidence and the peace of mind you need when going into a Surgery like this. So you book a consult whether you've got one booked three booked or five booked look one's fine As long as you've done that initial digging the initial research get that initial first impression Hey, even if you do choose just one surgeon to actually go in and have a consult with it's all good You've done some research, you know what I mean? You're not just trying to shoot in the dark so you get in there and you sit down and you begin your Consultation well the first thing that I'd be asking for and don't feel awkward about this whatsoever is some examples some Previous examples of that surgeon's work and if the surgeon's been in the industry for long enough He's gonna have done like, you know upwards of five hundred a thousand Gino surgeries what that means is that he should have a portfolio of Results have a look through that try and find a case very similar to yours Discuss it with the surgeon ask him about you know his techniques ask him about previous patients Ask him about horror stories. Ask him about what the perfect scenario is Ask questions is basically what I'm saying go in there for a consult. You're paying for it So the conversation and the way that it rolls what you talk about should be in your hands That's what I believe you might have a 15 minute consult You might have a 30 minute consult go in there with some you know questions already prepared and you're gonna put yourself in the Best position to leave that office Feeling good following that it's gonna be completely up to you. Do you want to go through with the surgery or? Not I can safely say I can safely say guys that Regardless of the recovery that I went through the fact that I can actually look in the mirror now and Simply not have any Incling of these feelings that I used to feel every single time I looked in the mirror saw these two nipples staring back at me It's all gone completely gone now look I did say at the start that you should focus on surgeons in your area But that really is only in these major Big cities where you do have a selection if not. I know exactly how you feel I was living in one of the most remote places in the entire world actually called Alice Springs Certainly wasn't a gyno surgeon there. So I had to travel. I did have to travel But I got my recommendation off of a fellow youtuber. I Don't recommend you do that. That's why I've never actually recommended my surgeon directly on my YouTube channel People have messaged me. I Know you get what you pay for that's another thing. I'll mention if this surgery does seem you know too good to be true If it seems just too cheap There's a reason for that What the reason is I don't know. I'm just saying that there probably will be a reason for that so be aware Certainly be aware. That's what I'm trying to do with this video. I'm trying to raise awareness But I don't want to put you off I don't want to scare anyone so and look if you've actually seen my recovery and you saw how bad it was And you still want to get the surgery done, then I've got no worries about scaring you That's for sure But look, let's recap.  That's how it happens, man So do some research book a consult prepare yourself for that consult and finally arm yourself with that information Make a decision make an educated decision and a confident decision on which surgeon you choose to go with Now there are other videos about gyno in my video library talking about What you do next so you book a surgeon sweet What are you gonna do pre-surgery in those months or weeks leading up to surgery to prepare yourself as Best as possible to go into that surgery and and get a great result now There's another video actually talking about what to do post surgery So there's a lot of information on this topic on my channel after this video I'm gonna shoot one titled my horror story about my recovery So the whole entire recovery took you know months and years actually, but there were certain Parts of the recovery that were worse than others and I'm gonna discuss them because if I don't do it now I never will I want the truth the whole truth and nothing but the truth to be out there on the internet To help you know guys like you with with this issue of gynecomastia Fuck we got handed the shit deal. We got handed the short straw. Didn't we guys? Tell you what it's not fair But at the end of the day You can do something about it. So guys. Thank you for watching best of luck and I'll see you in the next one


The legal battle between the legislature and Governor Mark Dayton over his move to Vito, a lawmaker's funding is heading to the Supreme Court of Minnesota. Dayton appealed the decision striking down his veto to the state court of appeals last week, but the Supreme Court agreed Wednesday to get an accelerated review of the case scheduling arguments or arguments for August 28th. If you've enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland Public Television.


What's up everybody, Jason here for jazbyscasebrakes.com. We just sold out Jaspy's 26 box MLB playoffs baseball mixer random teams guys. That includes three sealed cases, two cases of tier one, one 2020 tier one 12 box case and a 2021 tier one 12 box case. And then two boxes, one sealed case of 2021 flawless baseball guys. Now originally guys, this was only a two spot playoff mixer promo giveaway spot. So of course, if you go to our website, you'll notice we have a little playoff promo mixer. If you buy into any one of our breaks that have MLB playoffs in the title, you win, have a chance to win some spots in this promo where we're gonna be giving away a lot of really nice stuff including a brand new tier one case, $2,500 value. Over $7,000 in value, we're giving away. Now originally like I said, this break only had two of those spots but if it's sold out by tomorrow, we were gonna give away 10. Now that it did, that means we're gonna give away 10 spots in that post season promo mixer. So getting us that much closer. So once it sells out guys, or once we break this, we'll do the randomizer at the end, we'll give away those 10 spots and then we're only gonna be about maybe seven, eight spots away from selling out that promo by, you know, by the end of maybe this weekend or next week. So we'll do the break first then we'll randomize the names at the end originally about in top 10 get playoff promo spots. Here we go. Let's roll it. It's a six out of one, seven times. Good luck. One, two, three, four, five, six and seven. Seven times, seven, seven. Brian at the top, down to Josh and then one, two, three, four, five, six and seven. And seven. Cubbies down in the Rangers. All right, so Brian, you have the Cubs and the Yankees, Ivan with the Braves, Chris with the Mariners, Chad with the White Sox, Adrian, you have the Rays, Dustin with the Cardinals, Chris with the Phillies as well as the Padres. Jimmy, you have the Nationals, Dustin with the Rockies, Chris with the Giants, Nancy with the Mets, David with the Pirates, Chris with the Diamondbacks, Will with the Guardians, Rob with the Tigers, Dustin with the Red Sox, Chad Cromwell with the Blue Jays. Chris with the Twins, Ryan with the Marlins, Dustin with the Reds, Will with the Royals, Dustin with the Astros, Orioles, A's, Brian Crouch with the Brewers, Ryan with the Angels, Brian Crouch with the Dodgers, and Josh with the Texas Rangers. Well, this is, there is a case of 2020 in here. So Randia Rosarania is the rookie in 2020 for the Rays. He did split it with the Cardinals a little bit until he got traded, but no, Randia Rosarania is in there. And obviously, I mean, for like that flawless, I mean, it can be anything really high end, but it's two different years. So like, you know, Boba Shed's a big rookie in 2020. So obviously like, Toronto Blue Jays aren't too bad. Yankees are never bad, Angels are never bad, Dodgers are never bad, right? You know, Braves are never bad. White Sox, Chad also has a chance to like some blue Boba Rookies. Three case mixer, maybe. Got some flawless and some tier ones. Three case mixer? Yeah. And some flawless later. Flawless football, sold out. Wousers tonight. Still crying, Adrian Y. Is the Rand lost? It's okay. It's okay. Don't beat the Cardinals this weekend. Right? You asking me? And it needs Zacharist to get a touchdown today. This weekend. Anybody want to trade, guys? William actually just got two spots in Diamond Icons. Woo, that's down to one left. Then we can do a box of Diamond Icons too tonight. Yes. You're entered into winning those MLB playoff giveaway spots at the end of this. So you'll have a one in 30 shot, technically one in three shot because we're giving away 10 now, right? It's actually better odds actually, because there's gonna be 10 winners, but we'll do that randomizer at the end. So if you actually end up being in the top 10 of the randomizer, you'll be guaranteed one of these prizes, no matter what it is, whether it's $100 in break credit, whether it's an autographed jersey, baseball, sealed hobby boxes, 250 in break credit, 500 in break credit, or a sealed case of tier one. That's the grand prize. That's 2,500 bucks. But yeah, you have to just get in from that randomizer at the end. I mean, nationals are kind of on the same boat. They're a little bit more veteran stuff. So I mean, the good thing about the nationals is that you probably have some Juan Soto for the nationals in 2020 and 2021. Trying to remember, you might have anything monstrous in those years, but never bad to get a Juan Soto. Maybe some Bryce Harper, but that'd have to be kind of like a retro maybe. When did Bryce Harper go to the Phillies in 2020? It's been a couple of years, right? I feel like it's been a while. Probably actually it's been longer than that. Because he left the year that they won the World Series, right? So then he, actually he left in 2018 then I think. Yeah, he left in 2018. So the year that they won the World Series is when he left. So he missed out on the World Series.  Stick to what you got then. All right, so we're gonna start off with 2020 tier one guys. 2020, mine are yours. Oh, thank you. At rookie autograph to 299. So that's gonna go to the Blue Jays in Chad. More for the Blue Jays. Vladimir Giroud Jr. to 395 Relic. And then a Josh Hader to 299 for the Brewers. For the Rays. Try to trade, couldn't trade Mojo, Adrian. We got Kevin Newman to 395 for the Pirates. And Edward Alzole for the Cubbies. See, neglect the Rays. You get some hints. And Pirates, that's gonna go to David. Reigns to 25 for the White Sox. You got for the Phillies, Rhys Hoskins to 395. And Corey Dickerson for the Phillies to 299. White Sox going to Chad. Mike Mosina for the Orioles to 100. We have a Matt Beatty to 395 for the Dodgers. I, Saranola, two color patch to 25 for the Phillies. And then Patrick Corbin for the Washington Nationals to 299. Is this a random team? Oh yeah, random team, three keys to make sure. How much is your style? Three-fifty. I love him. Yeah. Zach Wheeler for the Mets. Paul Goldschmidt to 395 for the Cardinals. Robelle Garcia for the Cubs. And Aaron Saville to 25 for the Guardians. Yeah, where would that be? Are you like in some beautiful islands? I was going to ask you. You got the age, okay, Jersey. You're trying to say like you're so far from Tampa. Sorry, I didn't read that part. You know, I was texting Chad today and he said we're not going to be friends tomorrow for however long the game goes for. And probably if the Ducks win, probably for the rest of our lives. But if the Huskies win, he's probably going to text me right away. I've seen Pat McAfee had his little podcast there live from the stadium. I've got Carrie Wood for the Cubs. I'll tube it for the Astros to 395 and then a Trent Grisham to 299. He times has the Ducks dusted like a game day and like them not win. I mean, I know there has to be some type of analytics there. I wonder of course I was going to be there. I mean, he always loves picking the Ducks, but I don't know, I feel like, I mean, honestly, I think the Huskies are just a little better than the Ducks, obviously. Overall, I mean, obviously, you guys ended your year strong and obviously I'm sure pretty healthy for the most part. But I think it'll be a close matchup. I was actually just looking at the spread. Yeah, it's only, only Huskies minus three and a half. So it's been a while. I mean, it's pretty close actually. Jake Locker, I love that guy, man. I love that dude to Washington. He rizzled a 40 for the Cubbies. Cubbies going to Brian. He got Cabrera Relict to 399 for Detroit and Luke Voight to 299 for the Yankees. Cubbies not doing too bad so far. I mean, obviously guys, this is only the first case. You know, we still have 2021, zero one. Then we still have some flowers, so. Still really early in this mixer. Is that Mike, Michael behind me? Yes. Michael Myers, what's up, Adrian? Gio Yoshello, look at that autograph. Just assigned it all his name to 99. We have 99 and Mitch Keller to 299. You want to buy his Brandon McKay card? He said he would love to. He said he'll pay you $100 for it. Anything for you, Adrian. He'll pay you a hundred bucks right now on the spot. I lost in the shuffle getting injured early in the season. All right, it's a 299. Got Ramona Riano, so that's Dodger's going to Brian Crouch to 395. Then we got AJ Martinez for the Red Sox, Dustin, and then Carter Keeblum to 299 for Washington. More boxes in the first case, I don't think they're going to redeem this for you, right? Tier one autograph of Vladimir Guerrero Jr. Redemption though, sad times. Probably expired, but I still give it a shot. I mean, they gave it two years when they made this product, unfortunately. But that's going to go to Chad. And then we got Jordan Yamamoto and Mauricio Dubon. All right, two more. We got a nice pack of autographs. I feel like we're missing that still. Whoa, another redemption. Look at this, dude. You too, Adrian. A Clear One Dual Autograph of Brennan McKay and Austin Meadows Redemption. Again, also expired, but I don't know. Give it a shot, maybe message our emailed tops. See if they'll get that to you. We got a Mookie Betts Relic. We got a Alex Bragman for the Astros, Dustin Relic, and then we got a Carlos Carrasco. Oh, Browning, that's right. Jake Browning, that dude. Yeah, one of those years, was it 2016 when you guys went to a playoff game? 2016 or 2017, one of those years? Or was that 2018, actually? I remember. All right, Frank Tom, it's the big hurt to 50 for the white tops.  We got a Matt Beatty for the Dodgers. All right, well, unfortunately with those redemptions, that kind of hurt this case, because I mean, if the Volati was live or that Dual Autograph was live, it wouldn't have been the best case, but it also would have been the worst, but definitely hopefully we'll have a better one in 2021, but a couple bigger rookies back from 2020 here. So there you go, first case in the books. Let's work on the next case. Fast forwarding one year. I'm going to 2020 one for the Metz to 300. Whoa, there's a redemption right there. JD Davis to 399, and a Hosea El Tuve relic. And honestly, this year looks so much sharper. Let's see what the redemption is about. Prime performers autograph of Moises Alu, Houston Astros, and that one just expired this year, earlier this year, back in March. So I don't know, maybe give it a shot. Astros, Dustin, maybe they'll accept it. I know back in the day, they'd give you after a year after the expired redemption, but I don't know if they still do that. I don't see what Panini, they'll honor it, no matter what, if it's still in stock, but every company is a little different. All right, Mark Burrell, and Anderson Tejeda. So that's White Sox and Texas Rangers, and a Tatista one every time. Yeah, you're saying it should be that one, but it looks like they gave them to him as an astro. Old Brookie for the Phillies. Phillies hot right now, Chris with the Phillies. And a Joey Barr, whatever happened to this guy? This guy was supposed to be like the next, the next Buster Posey, and there's a redemption hiding behind that. And then Yordle and Alvarez. So that's Giants Chris, and then Phillies Chris. And then the Rays, and again, that just expired earlier this year. So maybe still definitely can get this one back. Give it a shot, another one for the Rays, Adrian. Over as to 25 for the Marlins. That's Seattle Colisegorellic, that's Chad's favorite player. Then the Rob Caru, on card right there as well, to 125 for the Minnesota Twins, going to Chris. All right, next one, what is this? Dual autograph, Andy Pettit and Jorge Posada to 25. And at least that's live, Yankees going to Brian. Then we got a relic there of Tony Oliva and Brandon Nemo. Then we guys tier one baseball is releasing in a few weeks, I believe. Gary Sheffield, that's Florida Marlins edition. And then Roy Alswald to 300 for the Astros. And then Brandon Lau for the Rays relic. So Florida Marlins, Miami's going to Ryan, then Astros of course is Dustin. Rays, baby, then popping out in my other case, guys. For the socks, Red Sox, Dustin. And a Brian Garcia to 300 for the Tigers, which is going to Rob. Then a Miguel Steno, to 399. Here, Martinez for Seattle. You got a William McClevy relic for the Giants and Yohan Moncada for the White Sox. Here's Chris with that one. Nice Luba, that's a second year Luba, we're hoping to have him in the first one, but nice one there for the White Sox Chad. You got Colton Wong to 300 for the Cardinals. Then CeCe Sabathia for the Yankees. So Yankees, Brian, Cardinals, Dustin, White Sox Chad. A's for the Pirates, 7 out of 25. That's a Ruggie for David, we got Braylon Marquez for the Cubs to 2.99. And then we got JT Rammuto for the Phillies. One in every case it looks like. Out of 30 for the Cubs, Cubs having a good break. Brian, we got Bo Burles to 300 for the Tigers and a Giovanni Urchella for the Yankees to 300. Keith Jackson to 50, nice one there for the Yankees. We got Austin Nola for the Padres to 300, Padres is Chris and then Luis Severino. Awesome big Lube, well, we'll add that to the schedule buddy, don't worry, we have time. Flawless is coming up next, but I can add it to the schedule right after that. Reggie Randy Jackson from American Idol. All right, nice, so we got some good rookies on this side for 2021, right? We got that nice Kibrian Hayes, he was a bigger rookie on this side. Got a nice Lube Bob, got a nice Edgar Martinez, Raphael Devers, I think definitely beat out the first case. Gary Sheffield, got the duel that was live. Rob Caru, Joey Barn was big. All right, glass down, Bum, Phillies. We got the Moises Aller redemption, but best for last guys. Flawless baseball coming up right now, let's go. JJ, both, you tune in at the right time, man. Here we go, was gonna really help a lot of these football breaks, but didn't expect these baseball players to sell it today, I was hoping tomorrow, and I felt like we were on schedule to do it tomorrow, but it's all it's day, it's even better in the middle of this, so it's Flawless, baby. Kristen Pache, Atlanta Braves, how funny, I think that was on Phillies, isn't he? But Braves going to Ivan. How about a one-on-one, what a break for the Cubbies, piece of the lumber. And that is game-used worn material. One-on-one, we will take that. Who has the Cub's brine?  We have a nice patch autograph for Arizona. Drova Pordomo for the Diamondbacks. Diamondbacks winner, Chris.  Seattle Mariners, Evan White to 15. Look at that. Bartolo Cologne for Cleveland to 10. Nice Cleveland Guardians, Will Primetime. More for the Cubbies. Marquez, nice patch, 10 out of 15. We have Andres Jimenez for Cleveland to 10. The last one here, Nick Madrigal, RPA. White Sox going to Chad. All right, that's just the inner stuff, guys. Inner box, let's go with the hits here. Should be the Diamond. Nice, Jake Cronenworth, Diamond, Rookie, 11 out of 20 for the Padres going to Chris. Here we go. Oh my God, it's a dual autograph. It is Kierlof and Joe Adele. Back in 2021, this would have been a massive hit though. Joe Adele for the Angels, which is Ryan and Minnesota Twins, which is Chris. So that'll be Eranimizer. We'll leave that to the side. All right, but wait, there's more. There's one more briefcase, guys. Good luck. I don't know, Jamie, gotta get back, buddy. Gotta get back a lot of different people actually, but hopefully, buddy. If you plan to come in tomorrow, usually we just leave these out first come, first serve. But if you want one, I can put one here to the side for you. No problemo. All right, Craig Bijio, wow. Look at those patches. Two out of three. Houston, Gwyneth Dustin. Audrey's Hornsby for the St. Louis Cardinals. Look at those pieces of Jersey. Out of 15. St. Louis, Gwyneth Dustin. We got Bobby Dubbock for Boston. To 25, Boston Red Sox, Gwyneth Dustin. Got for the Yanks, Joe Girardi. One out of nine, or sorry. Six out of seven. Read that backwards. Actually, this is a ray too right here, right? Everybody's a ray. We're Toronto, Omar Viscale. Toronto Blue Jays going to Chad. We got a Raphael Palmero for Texas. To 10. Texas Rangers going to Josh. We have a Nolan and Renato, two out of five. Nice, Colorado. Rocky's going to Dustin.  Last one here is another dual autograph and it's Jazz Chisholm and Andres Jimenez. So that's going to be another dual randomizer there. Miami Ryan, New York Mets, Nancy. And Jazz Chisholm actually is a pretty good rookie in this class. Nice couple dual autograph randomizer at the end. All right guys, here we go. Last one at least. The last two hits here and then we'll do the giveaway for the promo. Euro Junior diamond to 10. Nice break for Toronto there for Chad. And last one here, here we go guys. Good luck. It's a green. It's Joey Bart. What a patch. Just wish this kid would have turned out, right? One out of five for the Giants. Going to Chris, last spot mojo though.  Beautiful RPA though, I will say. The patches really pops through the mag. Just didn't turn out to how they said he would.  And there you go folks, that was the break. So, got to do a couple randomizers here, including of course for the giveaway, but it's a nice stuff popping out there guys. So, here's for everybody for the promo. And I got to do two randomizers before that though. We use the same dice. First one will be for the first duel, which is Angels and Twins, Marlins, Mets. Roll two out of four, six times. One, two, three, four, five. Going to the Angels for the first one, the encased Angels is going to go to Ryan. Congrats buddy. Now six times on the next duel. One, two, three, four. Going to the Marlins, I don't even know if it ever moved. Marlins, Ryan. This is for 10 MLB promo spots guys. So, because it's sold out, it's gonna happen now. We're gonna give away 10 in this promo. So, here we go. After six times, top 10, get a promo spot. One, two, three, four, five. Six times, two out of four, six, six, top 10 guys. So, just missing out with Dustin, sorry buddy. I know you had multiple spots, so maybe still in the top 10, but congrats to the top 10 guys, here we go. Chris, Josh, Chad, Chris, Chris, Dustin. And Chris, last but not least, congratulations. So, top 10 are in the promo. So, there you go guys. Oh, did he put an 11? It's a 11, got a minus one. So, there you go guys. So, again, top 10 are in there. Like I said, we start to do a couple more breaks, but like I said, they're already on the website and just gotta re-add like maybe one or two. So, appreciate you guys, jaspercasebrace.com.


Good day everyone. My name is Pat. I'm path to file on Twitter, GitHub, Discord and most other places and This talk is about creating and countering the next generation of Linux root kits using eBPF So today we're gonna start with an overview on what Linux kernel root kits are and we're gonna cover why root kits are such a powerful tool for attackers, but why they're so dangerous to use next we're gonna introduce eBPF and We're gonna discuss on how it can enable an attacker to have all the best parts of a kernel root kit without any of the risks Then finally, we're gonna cover how to detect and prevent eBPF base root kits before they take over as the preferred root kit type for attackers So firstly, what are kernel root kits? Well once an attacker compromises the machine They're going to want to maintain that access So perhaps they exploited a vulnerability in a web application or use some stolen credentials these holes can be closed and When they are the tack is going to want a way to regain access to that machine preferably with root privileges and preferably in a way that is undetectable to security systems or systems administrators This is the role of a root kit and in terms of access. There's no better places to put a root kit than in the kernel When a program wants to list the files in a directory It'll use a syscall to ask the kernel to read the data from the hard drive on its behalf If a root kit can hook or intercept this call then it can simply remove any sensitive file from the directory listing Before passing it back to the kernel This same technique can be used to hide files processors network connections Really, you can do anything to hide from your space programs Now by living in the kernel the root kit also has the ability to tap into all network traffic before any firewall and Has the ability to launch processes with root privileges or alter the privileges of existing processes So this all sounds incredibly useful for an attacker. So what's the problem? Well by running code in the kernel. It's very easy to turn a small mistake into a very big problem There isn't any guardrails or safety lines in the kernel once code is running there It has the ability to read and write to almost anything This means if there's if there's a bug in your code and you write to the wrong part of memory You're likely to crash the kernel and you crash the kernel you crash the entire system And it could be even worse if the kernel happened to be writing to a hard drive when you broke things You could end up corrupting that disk effectively breaking the entire system Doing so will almost certainly bring in administrators and incident responders to determine what happened So this is far from an ideal outcome for an attacker Now even if the root kit developer was very careful a kernel update has the ability to alter what a function Hooked function looks like or what a new kernel object looks like and all this just increases the likelihood of a disaster from a kernel This means that a root kit developer often has to test the root kit against every single kernel version that it plans to be deployed upon So the good parts of kernel root kits sound really good for an attacker But the risks are often too high to make it viable Fully there was a way to keep the only advantages of a kernel root kit But have the safety and portability of a user space program so How about we add JavaScript like capabilities to the Linux kernel Now to some people this quote might sound like the most wildest thing that they've ever heard But when Thomas graph for my surveillance made it he wasn't talking literally about putting JavaScript in the kernel What he was talking about was introducing a way to run a certain type of code that has the visibility of the kernel But with the ease safety and portability of such user space systems such as JavaScript programs And really what he was talking about was eBPF So what is eBPF? so eBPF stands for extended Berkeley packet filtering But it has grown so much from the original BPF particularly in the last two years That any comparison to this classic version isn't really relevant today So what it is is it's a system within the Linux kernel that allows you to create Programmable trace points known as eBPF programs These programs can be attached to network interfaces to observe network traffic or the entry or exit points of kernel functions Including syscalls and can even actually be attached to user space programs and functions If this sounds like the same places as our kernel root kit you'd be correct But unlike the kernel root kit eBPF programs are guaranteed to be safe from crashing the system And they're even portable across kernel versions and even system architectures So to explain how eBPF can achieve this let's have a look at how eBPF programs get written and loaded So we'll start with Writing the eBPF program So these are written typically written in a restricted version of C or Rust and there's an example of one in the bottom left So the programs have variables loops if statements all the standard parts of the language But they're heavily restricted in what external functions they can call and is limited to only a number of bpf helper functions Now instead of compiling this code into a native assembly eBPF programs actually get compiled into what's called bpf bytecode Which is a fairly simple but straightforward instruction set But the most important thing about this is that the bpf bytecode is independent of the architecture or kernel version that it was compiled on Now once this bytecode has been compiled it is now ready to be sent to the kernel So this code is sent to the kernel using a user space program called a loader Which makes use of the bpf syscall to send it up into the kernel now? Technically non-root users can load some eBPF programs on some kernel configurations But these programs are extremely limited in what they can do So they're out of scope for this sort of talk So for the purpose of this talk this loading has to occur from either the root user or its systems administrator Now the kernel just doesn't blindly trust this bytecode So it the kernel runs what's called the bpf verifier Which checks every branch and every possible value of every possible variable in this code To make sure that it is not doing things such as trying to read invalid memory or Slow the system down or by being too big or complex or do really anything else that might cause the kernel to crash So this is where eBPF gets its safety guarantee Because only code that passes all of the verifiers extensive checks is allowed to actually be loaded of run Now once code has passed the verifier the kernel will then actually run a compiler To convert the bytecode into the native instructions that match that machine's architecture and kernel version So if it's an x86 machine or compile it to x86 or if it's rml we um for example Now by running as native instructions eBPF code can run as fast as efficient as regular kernel code for that machine But this is not only this what this compiler does it actually also Um, it actually also dynamically looks up the addresses of the bpf helper functions Or the any kernel objects that the code's using and it'll actually patch the instructions to match that specific kernel version And so this is where the code can be portable because this compilation step knows exactly What the format of that that helper function and what that object looks like for that specific kernel And so by patching the instructions as it goes to compile it It means that that code will be specifically designed to run on that system Now program once these programs are compiled They are attached to either the network interface or the kernel function that they need to be attached to Where they will run once for every packet or function call Now programs can't retain state from one run to the next But they can make use of a global key value store called an eBPF map And so programs can actually store their state in that between runs And then the next time it runs it can read that state and then pick up where it left off Now that that is an extremely quick overview on what eBPF is I'll have links to much more in-depth documentation at the end of this But for now I want to go into what an attacker with the privileges to load and run eBPF programs Can do and how can they use it to achieve the same root kit functionality as a regular kernel root kit So the first thing we're going to cover is using eBPF to warp the network reality So this is a diagram of a fairly standard web server setup It has two network interfaces So on the left we have the internet facing network interface where a firewall only allows traffic to and from A website that's listening on say port 443 Now on the right we have the administrator's access So this is via a separate network interface that is attached to an internal vpn network And there's an ssh server listing on this internal section And that's how the administrators when they want to access the machine They will go through the internal network and ssh onto this machine But to make things interesting let's say this ssh connection requires multi-factor authentication Now an attacker who's gained access to this machine Will probably want the ability to connect in from the internet But they still want to be able to gain the same privilege access from the host That seems to be limited only to the internal vpn site So eBPF programs have the ability to read and write all network packets across all interfaces And before the firewall has the ability to block the connection What this means is if there was a connection to come in from an attacker's ip address Even to a closed port if it's come from the internet Then eBPF can actually alter both the destination and source ip addresses and ports To make it look like this traffic is actually coming from a fake ip address that matches the internal vpn site It can then route the traffic into the internal interface into the ssh service And so for the perspective of ssh this looks like just a regular connection from the internal systems Then and not only will ssh see this traffic as regular If an administrator is using tools such as wire shark or netstat or tcp dump Then from the the perspective of these tools the network connection Also only appears to be coming from the fake ip address on the internal network And they will have no idea that the connection is actually being routed from the internet Now this isn't the only tactic eBPF can employ Because it has the ability to read read and write network packets It has the ability to see any network packets before any other system So it has the ability to receive commander control information From even a a port that nothing is listening on and then it can just silently drop those packets So no security system will know that that data that commander control data has actually reached the system Then while eBPF cannot create its own connections It has the ability to clone existing packets So it could clone some existing traffic that some existing legitimate traffic that say going to the website Then alter the destination ip addresses to be the Attackers ip address and then alter the actual data within the packet With to be whatever it wants and then it can send it off to the attacker So this technique could be used to exaltrate arbitrary data from the machine Then finally eBPF programs can be attached to the user space programs So for example, it could be attached to the the website and hook into the functions that do the tls encryption and decryption for the website Now we'll explain in more detail how that function hooking works in the next section But what this does enable is it actually enables eBPF to change The data underneath the encrypted tls connection So that even from an external network monitor It would only see legitimate tls connection The legitimate tls traffic going to go from the website And it doesn't actually know that eBPF might be reaching underneath the tls And swapping out the website's data to be some exfiltrated data from the system Okay, so altering data across the network is only one type of malicious behavior eBPF can do The real strength actually lies in its kernel hooking functions and even syscall interception Because it's this ability that allows it to walk reality around files processes and even users So going back to our ssh example, it's not enough to just be able to connect to the service If logging on requires a valid password and multi-factor authentication Then it's unlikely an attacker will be able to easily log on But what if there was a way to make ssh ignore this multi-factor requirement Or even the username and password requirement And just allow anybody to log on to the system Well, so ssh knows that there's extra requirements such as multi-factor Due to configuration files that are in the etsy-pamd folder And when a user is going to authenticate a user's name and password It'll look inside the etsy-password and etsy-shadow files to make sure That the supplied username and passwords are correct So is there a way that eBPF can lie about the contents of all of these files? So yes and to explore how eBPF can do this Let's first quickly revisit how user space programs read actually read files using syscalls So when a process wants to read a file, it'll actually make two syscalls to the kernel So the first is to open or open apt And this will check that the file that the program wants to open actually exists And that the user that's wanting to read the file is actually allowed to do so Now if they are the kernel will return what's called a file descriptor number or fd number Which is simply a reference to that file for that process Then the process will make a second syscall this time to read Where the kernel asking the kernel to read the file that matches the supplied fd number it got from the open call And it'll actually give a memory buffer to the kernel to fill in with the file's content The kernel will then look up that fd number make sure it's a valid number Then grab the file and it'll copy the file's data into that process's buffer before returning to the user space process What this means is if we have four different eBPF programs We can observe what's going on and we can we can actually watch Um, we can watch what is both being sent to and from these two different sets of syscalls What this means is we're able to track what fd number Corresponds to what file name and we can even actually read What the data is contained within the file before the user space program By reading the contents of the buffer after the reads syscall has exited Which would be that eBPF program at the bottom But reading buffers isn't the only thing eBPF can do can also write to them So let's have a look at this basic example on the left is a very simple user space program It is looking to open the file called read me And then it's asking the kernel using the reads syscall to read the data from that file into a buffer called buffer Now on the right is the eBPF program that is attached to the exit of the reads syscall So after the file has been opened and after the user space program asked the kernel to read the file The kernel will read the file into the buffer, but before the user space program gets control again Our eBPF program is going to run So you can see at the start of this program that it's using the bpf probe read user function To read the contents of that buffer, which at this stage will include the file data But there is also a bpf probe write user function Now this program this actually allows us to alter the data within that buffer And then write it back into user space memory before the user space program sees it What this means is once the eBPF program exits and controllers return to the user space program The program will think that the contents of buffer contains the file data When in actuality it contains the faked data that's been put there by eBPF This bpf write user call can be used to overwrite any user space buffer pointer or string That gets passed into or out of these syscalls or kernel functions So things like changing what program get launched by execve Or reading and altering net lake data heaps of different stuff can be possible with this call So another thing eBPF can do is bypass the syscall all together And instead just pretend that the function ran and return an arbitrary error code or return value This can be done using the fmod ret type of eBPF program Which while these can't be attached to every function they can be attached to every syscall at least on newer kernels So for example the example in the top right This this program simply pretends to write to a file and it returns the expected success code So to indicate that the file was actually written But the file is never actually written and the the right syscall is never actually called Now if the goal is to prevent a process from discovering or stopping the rootkit A more drastic option can be to simply kill the process So by using the eBPF send signal helper function The program can send an unstoppable sig kill signal Which will immediately instruct the kernel to start tearing down that process regardless of whether it wants to or not Now this is a pretty drastic action that could probably be noticed But it's certainly a possible way to prevent an action from occurring Now killing every process that attempts to open any file is going to be a quick way to having a really bad time So thankfully eBPF programs have lots of ways to tailor an action based on who or what is performing it So eBPF programs can do different things based upon the process name the user ID The value of arguments being passed or returned from that function And it can even take cues from other eBPF programs So for example, it could only start altering Tampering with the read calls from a file only after an IP a connection from a specific IP address has occurred So looking back to our ssh example to bypass multi-factor eBPF can simply overwrite the data being read from the pam configuration files to remove any mention of multi-factor It could then even overwrite the data in xe password and xe shadow to insert a fake user account and password Which would enable logging into the machine with a completely fake set of accounts By having eBPF only target the ssh process It means to an administrator using tools like cat or vim or a security tool Or even to file forensics looking the actual file on disk All of these will only show the normal unedited file Only ssh will be presented with the warped reality version of this data Okay, so now it's time for some demo Okay, the first demonstration that we're going to go through is the ability to replace text within arbitrary files So we can see in the shell on the top right that there is a folder and with a file called file And when we look inside this file, we see the text. This is real data So now we're going to go ahead and load up the first of our eBPF root kits into this shell on the left So this root kit is going to look for any time a process is opening the word file And it's going to replace any data that contains the text real with the word fake But specifically it's not going to affect every process It's only going to affect children of this specific process id Which we can see That matches with our shell on the right So we're going to go ahead our root kit has now started And now back to our shell when we go to read this file We can see that the data has been changed and it says this is fake data And in fact the log from the root kit actually says that it did detect that this process started Which was cat and it replaced the text that that process read But what is interesting if we go to this shell now on the bottom right? Because this is a different shell with a different process id Even though we're in the same folder and we look at the same file It sees the unaltered data So this is a technique that has many many uses The example that we've used in the presentation Is this is a way that you can add a user into the etsy password file But only do that for an ssh process And not for any auditing software or a system administrator having a look at that file Okay So the next demonstration we're going to go through Is the ability to stealthily enable a user to use sudo to become root So typically on this machine if we have a look at this shell in the bottom right This is running as the user called loadproof And if loadproof wanted to become root using sudo Well, we can see oh loadproof is not allowed to in the sudo's file And in fact If we use the root shell on the top right we can double and triply confirm that loadproof is not in this list So first off we can use the sudo dash l command to say hey what What privileges does sudo believe this user to have? And when we run it we see user loadproof is not allowed to run And in fact we can even at this most basic level Just go and Read the etsy sudo's file And look for the user loadproof And sure enough that user is not in there So that's this user loadproof is definitely not able to become root using sudo That is until we run the second of our ebpf rootkits on the left So this one is going to Look for anytime anything that is opening specifically sudo Is going to try to open the etsy sudo's file And it's just going to alter the text in that file to say hey loadproof is actually in there And they do actually have those privileges But it's only going to do this not only when just sudo is running But only when sudo is being run specifically from loadproof So now this rootkitter started If loadproof were to use sudo again and say who am I well look at this it can become Root in fact it didn't even need to enter its password So How does that work? Well, so if as loadproof We now ask sudo to tell us hey, what privileges do you think I have? Well, we can see that from when sudo is running as loadproof It says hey Loadproof has the ability to do anything at once without even needing to add in a path password But even with this rootkit running If we were to check these permissions as a different user It still says hey loadproof is no longer here and if we check that file It's still so still says that loadproof is not in there So this file is only altered not only when it's just a sudo process running But only when it is a sudo process being run by that loadproof user The last example that we're going to go through is The ability to to kill arbitrary processes as a sort of self-protection idea so Typically an administrator can use a cool a tool called bpf tool And this lists the running ebpf programs that are running on that system And it's got the ability to see what programs are running So for example, we can see a lot of ebpf programs that actually relate to system d currently running on this system And bpf tool has the ability to list the running processes to dump out the instructions And even seeing what process IDs are actually related to that ebpf program So this is a good way for administrator to see what ebpf programs are running to potentially discover something like an ebpf rootkit so What this so we're going to load up a rootkit that is running on the left And now If we attempt to use bpf tool to list the processes Oh the process just gets killed before that information happens So this is pretty extreme But this demonstrates that ebpf has the ability to sort of protect itself By just killing any process that it's attempting to do sort of in any sort of investigation Okay So now we're going to cover some other features of ebpf and they get into some limitations of it So three features that we haven't yet covered, but I think are definitely worth mentioning Uh, firstly on some network cards You can actually run their ebpf programs on the card in the network card hardware itself Instead of in the kernel So for regular developers, this is great because this can drastically increase the packet processing speeds But from a rootkit perspective, this is interesting to note Because what this means is that any packet alterations made by an ebpf program That if this program is running on the network card, this will occur after The linux kernel has potentially scanned that packet for anything malicious So if you want to send a packet to add malicious ip address, but Send it to a benign ip address Then only once it's left the kernel and then inside the network card. Do you alter it to the dodgy ip address? Well, any security system that's running in the kernel won't see that alteration So secondly secondly up until recently ebpf programs that are attached to kernel functions or syscalls Require their user space loader to continue to run once the program is up and running And in fact if that user space loader were to exit Then the kernel would just assume that you also want to stop running the ebpf programs and shut them down Now if newer kernels there's been the introduction of these f entry and f exit type of bpf programs Now these actually have the ability to be pinned To uh this sysfs bpf folder Which what this means is a special file gets created under this folder one for each bpf program And then for as long as this file remains there the loader is free to exit delete itself be completely removed And the ebpf programs will continue to run then when you want to stop them you just delete the files So finally the thing worth mentioning is so the as we said before the bpf verifier Put strict limits in how complex an individual ebpf Code can program can be but there exists a mechanism to chain multiple programs together Using the bpf using this helper function called a bpf tail call Now this requires some preparation and making use of those ebpf maps we mentioned But the end result is The system as a whole can be much more complex than what a single ebpf program is allowed to be So for example in the riot this is four call graphs that from four different ebpf programs That actually just make up one half of that text replacing root kit that we just demonstrated Now each uh each part each individual program is pushing the limit on what a single ebpf program is allowed to do But all combined the the system as a whole can be much much more complex Now there's a number of limitations to writing a root kit using ebpf So the first one is when using the bpf write user function to overwrite the buffer There is a small window of time between when the syscall Fills the data inside the buffer and when ebpf overwrites it Now this time window doesn't matter in single threaded programs Because the their code execution is not going to return to the user space program until after ebpf has done its thing But in a multi threaded program a second thread could be constantly reading the contents of that buffer And actually get read what is the true data from the syscall before ebpf has a chance to tamper with it Now the first major issue to using ebpf as a root kit is that programs don't persist across a root kit across a reboot So what this means is when a machinery starts the user space loader Is needed to run again to load and attach all those ebpf programs back into the kernel Now the second major thing is that ebpf programs can't write to kernel memory Because this would almost certainly break those safety guarantees of ebpf What this means if a security tool is running in the kernel such as audit d or ellenic security module These are going to be unaffected by ebpf's tampering But one thing to note about these is that while a security product might be running in the kernel They're usually administrated by user space tools So if a root kit were to disable the security tool in the kernel But then lie to the user space controller About this the current running status of the system That might be enough to fool the system into thinking that it's more secure than it actually is Okay, let's talk about the defensive side of things So we're going to start with file forensics. So if you're looking to detect files that contain ebpf code There's a couple of things to think about So for starters The file that gets generated by the compiler when compiling a program to bpf bytecode is actually an elf file Where the bytecode is inside a name section within that elf So what this means is that tools such as read elf or obj dump can actually be used to pass these files and extract the bpf bytecode So for example, the ebpf program on the top right is being attached to the execve trace point that tpe syscall execve enter What happens is when this gets compiled That tpe syscall execve is actually becomes the name of the section inside the elf that contains the raw bytes So you can use a tool then to read that section and extract the the bpf bytecode Now it's important to note that's just the object from the compiler That's not the user space loader because what gets sent to the kernel is just the bpf bytes Now it's important to note that um A lot of loaders are going to be written using this lib bpf library Because this is a library that is actually part of the linux source tree And makes it a lot easier to read and write and manage ebpf programs Now if a loader is using lib bpf what this library will actually do It'll actually embed the entire elf object from the compiler Inside the user space loader. So you end up with an elf inside of an elf And so therefore if you're wishing to extract the bytecode You would first need to look at the read only data inside the loader Extract the elf from there and then pass and extract that data to find the correct section to get the bpf bytecode Now once you do extract the bytecode the biggest thing to look for would be evidence of that bpf probe write user function um, it might be more difficult to Automatically tell if a network packet altering program is malicious or not But I can't imagine too many legitimate use cases of this bpf probe write user function Now I haven't touched at all On what bpf bytecode instructions actually look like Uh, but the the instruction call is that effort that comes out of the compile the first compiler Is that example on disk? Um, so they're 85 and then the 24 matches with the bpf probe user function But if you remember the bytecode is architecture and kernel version agnostic And so what happens is when this bytecode gets sent into the kernel as we explained the kernel will actually patch that 24 To match up with what is the correct address for that kernel? So if you're looking at the bytecode that's being stored inside the kernel You would actually then to not need to dynamically look up that memory address to determine that that is the probe write user function Um, and then if you're looking at the native code after after the jit compiler inside the kernel Then this is definitely just going to look like a regular call instruction So you would need to look up that again dynamically look up that memory address to determine what uh, that that is the probe write user function Okay, so to protect a running system I think one of the strongest defenses would be to monitor that bpf syscall Which you know, you could use ebpf to monitor ebpf So monitoring for what programs are loading and running ebpf programs again It's going to be a really good tactic because realistically there should only be a small number of known programs That are actually interacting with ebpf Now if a program actually sounds suspicious because ebpf has intercepted the syscall You could actually extract the program's bytecode and then send it to somewhere else to be analyzed where you could detect your suspicious behavior in the code so A lot of the defenses i've covered so far I assume that an ebpf root kit is not already an installed and tampering with the system Because if it is already running it actually would have the ability to either block or hide a bunch of these user mode process scanning file You know that are scanning files or attempting to load an ebpf program But even kernel root kits have a hard time hiding from memory forensics, which particularly if the machine is virtualized The memory forensics can be acquired from underneath the kernel at the hardware or hypervisor or even the physical level Uh, volatility is the name of an excellent memory forensics tool And in fact at this year's black hat the team is releasing some new plugins specifically around Acquiring and analyzing linux tracing forensics Now as i'm pre recording this talk I don't know exactly what they're going to cover But I did speak briefly with a number of the team members before I recorded this And i'm really excited to actually scatter scatter handle on and play With the plugins that they're producing because they sound incredibly interesting So a one final prevention could be to just straight up disable any use of ebpf within the kernel Now this requires you to recompile the kernel with the relevant flags disabled And by doing so you'd lose all the advantages of using ebpf for your own reasons But this is definitely an option for some So a different additionally at the moment There is some discussions going on within the community about how to cryptographically sign ebpf programs in the same way that you can sign kernel modules Doing so would allow a system to load only trusted ebpf programs But prevent unknown or untrusted programs from being loaded and used um Now implementing this is definitely non trivial particularly due to that compilation step But some smart people are really looking at this And so in the future this may end up being the best defense against ebpf based root kits Okay, before we finish quickly, uh, what else can ebpf do? So firstly ebpf now runs on windows So in may microsoft released the start of a project on github called ebpf for windows Um, it's in the early stages at the moment It's only got the network observability side of things and not the function hook or syscall hooking But a lot of people including myself are really interested in seeing how this project evolves So if you're interested in windows at all, I would highly recommend checking out this project Now another thing I want to mention is that warping reality isn't just for attackers So the same ideas around altering file or network data is also incredibly useful to reverse engineers Either doing malware analysis or even bug hunting So for example, it's not uncommon for malware to perform a series of checks to determine if it's actually running on a victim machine Or if it's running in an analysis sandbox such as cuckoo Now the malware will check things such as the number of cpu cores the machine uptime The number of files within the temp folder Um, it might even actually look at the manufacturer as a network card to determine. Is that a real card or a virtual machine? So thanks to ebpf. We can fake the responses to all of these questions And in fact, we can fake them only for the malware. So we don't accidentally break some critical piece of software that's running inside the sandbox Um, and they're yeah cool Uh, then so now at the end of this talk, I'm going to release a collection of ebpf programs Uh and loaders that I've called bad bpf So these programs demonstrate a number of the techniques we've discussed and demonstrated today And they should have enough demos documentation and comments to help you understand exactly how they work Uh, they cover a range of actions from hijacking exactly e-calls to load arbitrary programs Allowing the user to become sudo Or the program that replaces arbitrary text in arbitrary programs Which because basically everything in linux is a file This can be used to hide kernel modules Adding fake users to etsy password or faking them back addressed from a network card Okay, so we've covered a lot today. Um, and honestly the internals of ebpf and using ebpf defensively could be entire talks on their own But I hope you've at least learned things about how kernel writ kits are great But they're also incredibly risky And I hope you've learned how ebpf can remove that risk while keeping the same ability To hide data from administrators and provide backdoor access to a machine Um, and I really hope you've come away some ideas on how to detect and prevent ebpf root kits from being deployed Because I think the safety and portability Is going to mean that we're definitely going to start seeing actual ebpf root kits appear in the wild before too long Now there's a lot of links on this page. Um, I think if you're interested in ebpf I would absolutely recommend checking out the community website and slack There's a bunch of really cool people sitting on that slack who are really great at helping people learn more about the system And answering any questions that people have Um, now there's also been some other offensive ebpf talks in the past if you're interested in the offensive side So including uh, one actually just the other day from the the data dog people So I would definitely recommend checking those talks out if you're interested in this Uh, finally, I've got some thanks. Uh, thank you very much to kori For being incredibly supportive as I've delved into the corners of ebpf And definitely thanks for maybe for helping me workshop some of more of the ridiculous ideas that I had when I was designing this talk And then definitely thank you to my family Uh, this recording was done during the middle of a pretty hectic time Involving the pandemic and daycare illnesses and all that sort of fun I've been very lucky to have um a partner that's supporting me as I ramble into a camera that is many many Many miles away from uh defcon Okay, so with that I'll end this talk with a picture of my dog Uh, thanks for watching. Uh, I'll be around on the discord if you have any other questions Um, otherwise feel free to reach out to me on twitter email github, etc Um, and thank you for watching