All right, okay, after that I'd like to introduce Wincy Rufus Wincy Rufus actually he adds the e-commerce and usability practices division at Neve Technologies And he's been helping and building teams build applications for about 12 years now for about 12 years And he's actually he actually started his career being building flash games and other rich internet applications Then he decided it's too too many sense for one person So he's moved on to JavaScript. I guess passionate about front-end tech and usability and loves dabbling in HTML 5 CSS 3 and JavaScript He enjoys conducting workshops and speaking on topics related to front-end technologies What he's going to talk about right now is motion detection in JavaScript for gesture-based interaction No plugins involved. Take it away. Wincy all yours Houston do you copy? Houston do you copy me? Can you hear me? Better now Okay.    Samsung smart TV. You don't have to run around hunting for a remote So on a couch move your hand control the application Gestures are really really coming in and if you look at gestures as such at the end of the day It's all about motion detection, right? I do something there's a motion happening there something detects that motion and that fires some command So ultimately a motion gesture based interactions boil down to motion detection and you're probably wondering you just guy talking about gestures cameras motion detection and You're at a JS for conference. So most probably you're going to be working either with flash HTML or JavaScript Flash and flex were really great earlier. We could do a lot of stuff with that. Unfortunately. I got killed by somebody So you're stuck with HTML CSS and JavaScript till about a few years back. There was little that you could do with it Thankfully the web RTC came in that came in about two years back I think two years back is when the project really started and Now Google and Chrome obviously, sorry Firefox and your Chrome support that and now with Web RTC and your good old HTML 5 canvas. You can start doing stuff You can starting stuff with motion detection a small into what motion detection is and how you do gesture recognition, right? So according to Wikipedia There are two basic ways you could do that. Your first one is a machine vision Machine vision is where you're probably using infrared beams or you're using electrical signals or Some kind of capacitive signals and if you see a detection like that You see a break in that that triggers an event for a motion and buy some commands That's a little complex. You need some external hardware. You need some stuff for that a much simpler way is image processing In image processing what you would do is You have a camera that's taking images you take one image take an image after a few seconds Compare those images and if you saw some change, that's motion detection That's what we reply out there. So that's two different images. They look seemingly similar When I superimpose them you realize that There's only a handshake happening there, right? So that's where a motion detection is taking place Visual is very easy for us. We know that okay. There's a hand movement out there. That's motion detection happening on your hands How do you tell that to a computer? that Happens through a process called a blend mode difference. I think a very fancy name for something as simple as pixel color subtraction so what we do over here is You've got two different images, right? You pick up a pixel from each of those images You pick up your RBGA values of each of them So, you know that that's your RGBA. So that's for that particular color pixel That's 250 to 40 to 41 for 192 and the alphas are 100 So you pick up the RGBA values of these two pixels. You do a simple plain simple subtraction and Whatever is that output we use that In an ideal scenario if there was no motion detected your pixels of the image in the first place and the previous image Are the same so the pixels are the same and when you subtract that your answer is zero And if your answer is zero if you pass that back to an RB or GBA in canvas image, you'd get a black color. Oh This isn't that great. So what I've tried to do over here is I did a pixel subtraction on the same image I did an RBGA subtraction and what was the output? I just pushed it back So if you notice the whole image is black and only in the hand area where there's something happening That's where motion detection is taking place So that's that's basically how motion detection works. I'm going to try and show a small example now So using web RTC. I invoke my camera. I give access to that Over here what I have are two simple canvas stacks This way Not sure is it okay? Okay, you live with it. So I got two canvases The one on the left hand side is streaming my Webcam as it is the one on the right hand side is where I'm doing the pixel subtraction Now if I stand straight, I don't shake anything you see turns black the moment I start shaking something There's a motion detection happening right Very very simple simple pixel subtraction and that's giving you motion detection now if I use this motion detection and I kind of create hotspots and I say if you detect motion in this Certain area trigger a foot certain event So I've done something on the top right corner. So if I move my hand to the top right corner You see there's a motion detection happening and that's showing something right So as simple as that You guys want to look at the code Extremely simple. I think that's the beauty of it and probably that also the reason why I'm able to explain this to you guys is really really simple so If you look at the HTML part Nothing else. I just got three elements of video tag I got two canvases the first canvas is where I'm rendering the video as it is the second canvas is where I do the blend It's called the blend canvas where I'm doing a subtraction and the output of the subtraction is what I push over there On the JavaScript side, I think it's a standard part of any HTML file application that you'd use with canvas Create the variables. I'm getting the context of the canvas getting the 2d context on it Saving them into variables. So we said since I've got two canvases. I'm doing it for the two variables This is how you invoke the camera or get the stream from it. It's a part of the web RTC It's one of the objects called the get user media and that's that's got three parameters to it The first one is the condition where I say if video is equal to true Then go to the function. It says got stream and if you cannot get the video With you is equal to fall then go to a function says no stream and probably the no stream part I'm going to say sorry no video available But if I do get a get stream, then I'm just going to pass the stream on Toso's variable so that's the function over there and This is the one The subtraction is taking place again a very simple function. I call it a check diff It's in three parameters the data for my source image the data of the previous image and an output object and If you see here, I take the average of the first image Take the average of the second image and I'm just subtracting them all out They create a variable called diff average one minus average two and whatever is the average I'm just passing them back to my output as its respective RGB a You probably might have some question terms of why there's a number four coming in over there I'll probably address that later So when the end of it, I'm just picking up this pixel values picking up the RBGA Averaging it out because I don't want to do that every pixel level, right? So I'll just end of the day I just need to know if the answer is zero great if it's not then there's a motion detection So I just sum them up average it subtract them out This is the function where I check for The hot spot so if you remember on the top right left corner is where I created a hot spot So I get the pixels for the top zero zero fifty fifty Run that into a loop and whatever is the RGBF for that? I pick them up I Summable sum it up and then I check if the average of that is greater than 10 Why do why do the 10 is because if I really keep it accurate? Every small change any minor detection is going to trigger an event so rather than that I want to capture only Significant motion detections. So that's the reason I'm using a variable of a number 10 So any detection where the value is greater than 10 that's going to trigger a motion and just HTML I pass out a message saying if the average is greater than 10 Put this message if not put the other message So it's as simple as that so the function the application that I showed you or something like that Now using the same Concept you can probably go and build in some demos So here are two demos that we worked with I'm going to try and show you one of them Okay, let me see if I can do this right You guys go to your mantra on calm the jubongs calm ready new buyer dresses How nice it would have been had you guys could do a virtual trial room you go there check how it rest looks like If you like it then purchase it so trying to do that on the right hand side there are Do the resolution just change? Wow Okay, okay. Let's try this So blue shirt not that great Looks better Which one as simple as that maybe I could take it a step further and say if I like this move my hand this side And then that takes an image of that and I could probably pose that image on Facebook or Twitter or something like that So that's one example The other thing which came out of this was one second close this.  Yeah reverse Okay, I don't know so Maybe there's a guy you can talk to so this this demo exact actually was Done by done by bunch of these guys. So the guy in the blue shirt is Piyush. You know get up and say hi So He's one of the guys who did that. So yeah, that questions can be directed to him Yeah, so I'm done. That's about it. And yeah, my final slide In true Bollywood style. Yeah, this is not the end But I think this is the beginning of how you could try and use gestures in all your applications The concept is very simple. It's about So it's about being creative and trying to use it in different ways So this was one of the most cool demos using the features of Okay, thank you. So I just wanted to know this How are you doing this at JavaScript level like for example if you want to Detect the motion there has to be a function which is running on an interval, right? So exactly that is that not a performance issue or have you checked the memory profile page wherein you're getting memory peaks When you want to detect a motion because see a lot of subtraction you're doing RGB subtraction, so if you're not I mean if you're doing all that in the same thread, that's very Highly performance intensity, right? Exactly. So what are you doing for that? Yes? So you'll have to start playing with it. This things change from Application to application. Okay, so I do have for request animation function that's running and it's figuring it running at About 60 frames per second now depending on the kind of canvas that you're capturing You'd probably decide if you if you're just picking each and every pixel you would probably skip a couple of pixels You know if you looked at my function which says Get RBGA values. I was using a multiple of four So instead of using four you might use eight or ten so that the number of variables are coming at less Instead of you don't need to detect every single pixel you might need to do a group of pixels So you need to start playing with those two functions either from a hot pot the hotspots perspective or from that check difference function I love to play with it, but then yes You're bigger the canvas the bigger the picks number of pixel that you're reading that's going to be a problem So one of the things that a lot of computer vision libraries do is that you really don't really need to use 32-bit Information on every pixel and that's one of the things you did you took an average instead, right? Yeah, and that reduces to 8 bit. Do you think we probably need this? Maybe something like this in the browser hardware accelerated in a separate thread So you can say give me this canvas, but only 8-bit image Give me either colored 8-bit image well at 256 colors or grayscale so I can do analysis much faster and much better Yes, I think that's a good idea. I think you should be able to do that Things once you have the data you can pass it to a web worker and it can analyze the way it want right But then you're necessarily not doing anything in the main thread right browser gives you the data And you don't everything in the worker true but my only concern with that would be if I'm taking a grayscale image and I'm trying to do a subtraction right if I Because I'm taking this full image and I don't RGB a subtraction if there's a change in my RG or the B It's going to detect that okay, so you don't always have to do grayscale 8 bit doesn't always mean right I mean it would be 6 colors as well So yeah, that's one of the things that that's a performance things ever employed in a lot of computer vision libraries. That's true exactly Question here sure please I wanted to know how is it different from image stabilization? Like image stabilization are we using the same principles detecting a motion sensitivity and doing a stabilization like a lot of cameras They actually yes. Oh I wouldn't know that how it works on cameras. I mean I'm using the canvas out here So I just pull the stream of steam and put it into the canvas But then yeah, I what I didn't show was some functions where I'm using a threshold value where any Any color pixels are a greater than say 50 or 60 are negated out.  You didn't have any grayscales on the other colors That's because anything greater than a certain limit was converted either to a black pixel or a white pixel So I mean I was using that but that still sounds a question I know Ladies and gentlemen big round of applause for wincy roofers blow the roof off


Today, we are going to discuss on the topic classification algorithms based on neural networks. At the end of the session, the student will be able to demonstrate various classification algorithms based on neural networks and compare between them. An artificial neural network, what we have to assume now, often just called as a neural network is a mathematical model of the computational model based on biological neural networks. In other words, it is an emulation of the biological neural system that is mimicry of how our actual human beings neural system works. Why do we require to use this particular neural networks? They are useful for data mining and decision and support applications. People are good at generalizing from experience. However, computers excel at the following explicit instructions which can be done over and over again in a repetitive fashion. Neural network bridges this gap between the human beings and the computer and it does this with the help of modeling on the computer and the neural network behavior of the human brains is then experienced as a model. Neural networks are useful for pattern recognition or data classification through a learning process. As we all know, learning outputs a change and this change has to be observed in our neural network from the input. Neural networks simulate the biological system. When the learning involves, there is adjustments to the semantic connections between the neurons. When we look at the anatomy of such a sort of artificial neural network, we see that the neural network maps a set of input nodes to a set of output nodes. There is an input 0, 1 up to n and there are outputs 0, 1 up to m. So there are n inputs and m outputs in this particular network and the network itself is composed of an arbitrary number of nodes with an arbitrary topology. A neuron has many inputs but one output unit. The output can be excited or non-excited. The incoming signals from the neurons determine if a neuron is excited at a particular time. It is also called as firing of the particular neuron. The output is subject to attenuation in the synapse which are junction parts of a neuron. Now there are many topologies in which these neural networks are organized. There are two types basically. One is a feed-forward neural network. This is a unidirectional neural network. It has no feedback. It has no cycles. The error is detected right at the end and they are difficult to analyze such particular networks. Recurrent networks are biorectional and they have a feedback at every unit in your particular network. Now there is a concept which is called as training which has to be provided to your neural network. A neural network has to be configured in such that the application of a set of inputs produced a desired set of outputs. And this training of the neural network is done by feeding it teaching patterns and letting it change its weights according to some learning rule automatically. Now let us pause and think for a while on how neural networks are going to help to do a classification. Neural networks in data mining as I told you the first form is a feed-forward neural network. The simplified process for training a feed-forward neural network is as follows. Input data is present to the network and propagated through the network until it reaches an output layer. So the forward process produces a predicted output between the input and output layers there might be many layers which are called as hidden layers and the predicted output is subtracted from the actual output and an error value for the network is calculated. The neural network then uses a supervised learning which in most cases is back propagation to train the network. This back propagation is a basically a learning algorithm for adjusting the weights in the particular network. It starts with the weights between the output layer and the last hidden layer and works backward throughout the network till the input layer. Once the back propagation has finished the forward process continues. Back propagation is a common method of teaching the artificial neural network how to perform a given task. The basic propagation algorithm is used and it is a layered feed-forward artificial neural network where the output of one layer is given as the input of the other layer and so on we go on till the last layer is encountered. The basic propagation algorithm uses supervised learning which means that we provide the algorithm that it has to use. The techniques used are present training sample to the neural network compare the neural network's output to the desired output from a sample calculate the error in each output neuron and for each neuron calculate the output which has to be then scaled with a scaling factor and we have to go for finding out the local error. We adjust the weight at each neuron to lower the local error and we assign a blame to the local error to the neurons and giving this responsibility to the neurons to connect in stronger weights and we repeat this procedure on the neurons. When we look at the basis of a particular node which is used in our neural network we see many inputs weights are added to these inputs and then we have something called as bias node which adds the bias into our particular system. So every node is an element which performs a function which is the summated weight of the product of the weights assigned and the value of a particular input that is the weighted sum plus the biased weight and this function will be given as output from the particular node which will decide whether that neuron has to be fired or not. A simple perceptron is a classifier because it gives an output of one or zero. It has a binary logical application. It has a threshold linear value. It gives weights which may be minus one or one at random and it gives an output which is based on a weighted sum and the bias value and the output is generated which is in the binary form. This may be used to define a class if the output is zero as one class and the output is one is one class therefore a neural network can be used as a classifier. So initialize the weights in the network repeat the procedure for each of the particular node in the training set and find the output from our particular system using this algorithm which will be used to generate a zero or one finally as a classified output which determines a class. Advantages of neural network is high accuracy. They are able to approximate complex nonlinear mappings, noise tolerance, independence of prior assumptions about the distribution of data or the interaction between the factors, the ease of maintenance because neural networks can be updated by using fresh data making them useful for dynamic environments of usage. So we can apply such networks in finance, marketing, human resource and accounting. The design problems however are some sort of bottlenecks. There are no general methods to determine the optimal number of neurons necessary to solve a problem. It is difficult to select also the training data set which fully describes the problem to be solved. How do we improve this ANN? It is by using them with optimized algorithms like the genetic algorithms and neuro fuzzy systems. For our references we have used Dunham and Campbell. Thank you.


Welcome to my presentation about fish like an APT with the slogan phenomenal pretexting for persuasive fishing. In the next 30 minutes I'm going to pitch why we need to think about what we send in a fishing mill during adversary simulation. So first, who am I? My name is Sala Mausokers and I'm from the Netherlands. I think that's why my last name is so hard to pronounce I guess. And I work in the red team and in the research and interfusion team. So that means I do red teaming but also advise companies about threat intel and write strategic reports. If I have to think about two things in my career in the APT or fishing field, I think I have two things I'm really proud of. And first one is that I once successfully fished the white team. So during a red team we had to fish a couple of people and I also sent one of the messages to one person of the white team so they know what we were doing. And that person, well that person knew that we were going to send a fishing mill but still thought this was a real and a legit one. Instead of the fishing mill we were about to send for the for the simulation. So that's really nice I guess. And the second one is that I was the APT during the biggest cyber crisis exercise. It was last June and I had to create an attack for the well-known country, Rosberia in the Middle East. So I had to make up the TTPs myself and I had to create an attack targeting all governmental and vital organizations of the Netherlands. So that was really nice. Normally you do red teaming for one company and now it was 96 though. It was really a milestone in my career so far. So fishing during adversary simulation. Well we know that fishing is a commonly used technique to get initial access. Research showed that I think around 90% of attacks start with a fishing email with well a weaponized document for example. So if we look at the MITRE tech framework we see that they have defined technique T1566 which is fishing and has three sub techniques. So the three sub techniques are the spear fishing attachment. So it's a fishing mill with an attachment like a mildock for example or war archive which is malicious. So you send an email to the victim add an attachment that a victim opens the attachments, executes it and then you infect the victim. The next one is the spear fishing link. So the email includes a link maybe to a fishing website maybe for credential harvesting login page. Also could be a link to a known surface for example. So you host your malicious document for example on google drive or on Dropbox and the last one is spear fishing via surface. And I think you see that sometimes that attackers don't use email for delivering your payload or for your weapon delivering your weapon but also services like LinkedIn, Twitter or Telegram. And why do we do that? Why do attackers still fish because it just works every time? Well people still click on it. It has a great return on investment. So why would you not send a spear fishing email to target an organization? Because we as humans get a lot of email every day and we have to decide every time whether it's a legit email or a fishing email. And we have to decide in a split second. And in that split second we have to check if it matches everything we got during our security awareness training. So why do people click actually is because we don't know what a legit email or a fishing email is. So we didn't get security awareness trainings. Well that's really bad. I think everyone must have a basic knowledge about fishing emails. But yeah if you don't know what a fishing email is or a legit email you cannot distinguish them from each other. Well that's really bad and you don't know how to process that email. The second point was is because the email is more advanced than the awareness training coverage. So what I see is that training in security awareness is sometimes really outdated. But also sometimes email is just way more advanced and very very hard to distinguish from a legit one. So yeah your basic training is just not enough to see whether it's legit or not. And the last one is because you're just distracted at the moment. So yeah maybe you know everything about fishing emails but you're running kids around the house because you're working from home. They cannot get to school because of COVID-19. You have annoying colleagues in teams meetings all day and you still have to clear your inbox or you didn't have your morning coffee yet so you're not as sharp as you would like and in that case sometimes you click on something. So that's why fishing works. For example by influencing as an attacker influencing your your emotions you make easier decisions or a decision decision making is way easier because it associates new information with existing patterns you already know.  So if you have a fishing email you want to influence someone to click or to yeah to to to interact with the email whether it's login or download or whatever give information. So the influence is based on the email itself it's not only the text it's way more than the text in the email itself. So it's about the link or the attachment. So how do you influence clicking on the link is the link is it the domain name that is known is it something typos quoted for example is it a legit service with hosted malware does it contain an attachment is that attachment named like an attachment that should be relevant for the for the recipient for example and next to that we have the content. So next to the to the page you have the content how the mail is constructed itself so the email body. So I'm talking about the language what language was used is the language also the used language in the organization does it have a design is it plain text or is it the copied corporate identity from another known organization or is it just neutral and does it contain personal information. Sometimes you see that it has the correct salutation so dear Ms. Sala Mausokers or sometimes it also has some some personal information like your email or LinkedIn profile and such so attackers also influence people by using personal information of that person they got from from open source and the last one is the context so that everything around the content and debate and the attachment so that could be who's the sender is it something somewhere you know is it someone internal in your organization is it a colleague is it from a company you know it or is the company you should know those are all the possibilities what is the theme of the email is the relevant activity or is it something you really like is it for charity you really like is it about your hobbies is it about your recent event is it the timeless activity just like here's my pay slip for example and the goal what is the goal of the attacker sending the message is it getting information by replying and sending it sending you to a login page maybe get you a payment done or download an attachment somewhere so it has different goals so if you if you combine this all you can get a great you can create a framework so that's this framework and made this framework next to these all these items are just I just named one of the most important is the principle of influence so you can apply principles of influence defined by CLD me yes define seven principles of influence you can apply to every part of an email so the content the context and and the debate for example so before I start telling about the principles of influence on APT fishing mills I'm going to introduce introduce you to five principles of influence in APT fishing mills well so you didn't define seven but I think five are only suitable for for email so I'll show you a couple with a couple of examples so the first one is reciprocation and that means that if I do something for you you do something for me back well that's nice so so that's why I want to offer you something so you do something back I think you see that a lot in emails um where they offer coupon if you register or log in or something but you also see them within more malicious mills by offering you helping you and then ask for for a favor so in this email I notified someone that the that their account was going to expire and you have to log in to reactivate it well as their recipient you're thinking okay thank you for letting me know I will definitely log in because you feel like indebted somehow so that's the first one the second one is an email and it was actually highly well it was not copied but I was highly influenced by by one of the APT groups this was an email sent by Lazarus group in the COVID times and in the email they said a package they sent out a package of temporary timely and targeted measures to support public services people and businesses through this period of disruption caused by COVID-19 so they are offering you a package to help you and the last day to register your business is June 26th 2020 by 2 p.m and this was sent in in the same week so actually they want you to do something in a short period of time and you call it scarcity so you offer something for a short period of time people think we need to do this we don't want to miss out and we should click you also see that on websites and in phishing emails oh only one day left we only have limited stock please buy from us well there's a principle of influence that is proven to to be a working principle and then the third one is authority and I think this is a really clear one if someone sends you a mail from a proven or known authority I think you're more likely to click on that link or on the attachment so in this example I used the CEO which is just like CEO fraud okay you must assure that all the pending deal of payment shall be completed by the end of the day this was an example highly inspired by TA 505 email so I saw this email several times asking if you could please do a payment and payment instructions and information was in the attachment so this is one that really works as well and then the next one is the principle of liking if someone has shared interest or you just like someone because it's a colleague it's a known person you are more likely to interact with the email so now I made an made an email it was a little bit inspired by an email of apt 28 where I say it's almost Christmas and the elves are working really hard and have a message for you and it was sent by Santa or the holiday committee committee from the organization you think I really like that person they also really like really nice Christmas branches I'm going to click on that link because I want to see my Christmas greeting and the last one but definitely not the least I really like this one is the principle of social proof I have here an example it's a it's a linked in header and maybe you would think okay but why is this principle social proof this principle of social proof is like if someone likes it you really know then you would also like it and this one is inspired by also allows us allows us attack because there was a person they created a personal LinkedIn added a lot of your colleagues and then wanted to chat with you so you check out the connections the shared connections and you see okay I have a lot of shared connections so this person should be a nice person or I could trust this person so this is the way that they wanted to influence the person receiving the connection request from Wilson I think in the real life you also see this a lot on the website booking.com they are really good influencers because it's also known that the principle of social proof is used on the website by saying 40 people of your country book this room today hurry up hurry up that's also the principle of social proof because you know that a lot of people from the same country also booked that hotel so it should be right right so these are the principles of influence and now I'm going to apply those principles of influence and everything what is in an email on emails of an APT so first I need emails of an APT of course so I needed an adversary the email dataset so first okay I need adversaries which ones are the most suitable for my research so first check out all the adversaries who have a phishing procedure defined well you can check out the micro attack framework and you see that there are a lot of adversaries using spear phishing so that's really nice second is okay I need to choose what kind of groups are interesting for my adversary emulation so during a sea best or a tide where you have to select a real threat for the organization so I need a real threat for the organization what are the most what are the most likely threats for an organization that's the inside of threat a crime group a nation state and a proc a nation to a state slash proxy well inside the threat is not going to work if I want to do an adversary simulation so I have crime groups and nation states left so with this information and choosing multiple groups over the world I came with TA 505, APT 28, APT 40 and APT 38 so these are the four groups I selected for my research because these are really good groups we should use during our next adversary emulation so how do I do the research then I got a lot of emails I got some from my threat intel colleagues which are really badass in gathering these but I also found a lot on fire custodial because you can find for attachments with attack attachment and if you know the IOCs of the or the hashes of the malware docs you can find the parent email parent of that of those documents as well on fire custodial if you do some advanced searching so that's why that's how I found 200 emails of APTs and the next one is getting screenshots from research a lot of companies did already a lot of research on this one not on this topic but fishing of APTs so they presented it in a research report okay we saw a full attack of this APT and it started with this email so I gathered all the screenshots of those of those fishing emails and also used it to enrich my first data set and the last one is finding the associated IOCs of these APTs for example domains will tell you how the fishing domains are constructed if you find mulldogs you see how they use the principle principle of influence in the mulldogs etc so find also other information in other sources about these APTs so now we're going to apply the research of principles of influence on those groups so first my first one is Russia so groups from Russia and I start with the least advanced to the most advanced so I start with TA-505 that's not really an APT but I guess you also have to emulate crime groups during cvessler divers so that's why I choose this one it's TA-505 located in Russia and I would call this group hashtag lazy mode it's really a lazy mode because they're not really an influencer to be honest so what I see is that they use they don't use really they don't use influencing techniques in their mail they just say this email is sent automatically or please see attachment or please pay this by the end of the day so maybe a little bit of scarcity but not really that they are using they are using the the principles of influence in their meals um also what I saw is that emails are impersonal can be sent to anyone so there is no right information personal information right salutation or whatever in the email next one and I think that's really funny the sender email address is not matching the sender name what TA-505 does is compromise a lot of email accounts and send emails from those compromised email accounts so that they have to decam and a d-mark set correct so it won't definitely end up in your spam folder so they send emails from those compromised account but they change the sender names a bit so it looks like it's the sender um and what they do is that they um add html attachments uh or moduxes attachments and sometimes they also host it uh on the website I see this more nowadays uh with TA-505 because it's really hard to if a dspam filter is in the fire skin and stuff like that so uh I have three examples of those emails where you can see the lazy mode with the sender email address and the sender name so this is the first one the second one and the third one and you see it's and all the three emails it sent from Krishna Krasat but the email addresses are different every time so this is what TA-505 does let's go to a more advanced advanced one and that's apt-28 and what I see in apt-28 that they use two main principles of influence and that's principle of liking and and authority because they are they are using an external company a known company copy everything from that and send emails so they send with spoofed domain and spoofed email addresses for example or they use authority by spoofing from an internal colleague or internal CEO or something so they use the corporate uh they use the corporate identity of another organization like google or they just use plain text or use the um corporate identity used in the organization they uh are sending from sending from um and what I see is that they use domain names uh which are typosquoted with predictable patterns so for example when you have a subdomain they use the full name but replace the subdomain by a dash so if you have the website one drive dot office 365 dot com they use the domain name office 365 dash one drive dot com so that's one um and they use the tld's of a domain name in the domain name itself so for example when it's nato dot int they use nato dash int dot com uh to make it look legit and next to that they also use the the the regular type of squad kind of things like using an r and n to b and m for example so these are two examples this is the first one it's by google uh this is the one used to to disrupt the uh i've learned cleansing campaign a couple of years ago in usa and this is the second one here you see that you use the principle of liking someone has the same interest this is really on your um it's a known authority in the same area as where you work in so um they use it this kind of way then the next one going over to china i chose apt 40 well i don't know if they're still active uh if you see the news from last weeks um so what do they use they use the principle of liking and they pick relevant themes for the recipient um so they use the local news they use activities and events in their emails and those are the main theme of the fishing mills so uh to do that in order to do that they do profiling of the victim by using open sources to get more information about the victim and then reach the email with that kind of information to make it more relevant um and what i see that the level of the fishing mill is really diverse so i see typos all the way everywhere and i see really well crafted emails so um well maybe it's because there are a couple of people with uh uh diverse levels of sending emails but it could also be that they have someone for creating the well crafted emails and when you interact they don't have that person so it's uh it's not that good anymore and what i see that they use mild oxen attachment or hosted on google drive for example and when they send you to their own website or compromise website you can download uh you can download one of their uh their droppers and it downloads a payload for you and redirects it to uh to a legit document they also packed with it and the last one and that's north korea uh and it's it's apd 38 or lazarus group and i think this is my favorite as long as you can if you can have a favorite apd but this is definitely my favorite apd because it knows how to social engineer uh they're building full characters or impersonating real people to influence a person they literally use every principle of uh of influence in their um in their campaigns so they're using email linkedin telegram or twitter uh for communicating with the people so first do your initial uh chat on linkedin then go to telegram uh that was uh described in the camp in the dream job campaign research uh they always use a important value for their recipient um they do a lot they target a lot of military organizations so they very read a lot about military operations in order to make it more uh legit uh they spoof email addresses or create an unknown company uh so if you are a recruitment company you can also just register a new domain name and call your recruitment company that way uh so that's what they do and they use uh dropbox on one right for delivering malware as well and uh they are adapting to the language and form of speech uh but it's not always flawless so um a couple of slides earlier i showed you the rob wilson linkedin profile i uh created based on information in research and this is um how it um which these are the next steps after someone connected with that rob wilson you see that it sends a message i like to chat with you for a job opportunity and then bonds with the person and then add them on on telegram and have some uh have some conversations this one is one is about an assessment someone needs to do in order to check if it has the right expertise um and send someone to a website uh this was um this was covered in in the research of this company so concluding during your next adversary emulation i would please ask you just not grab the default scenario from the shelf you have you always use because it just works please use your creativity and create something that's really like the the adversary you have to emulate during uh during uh um the assignment um check or influence by using the content of the of the email and the context so not only uh change the um the text of the email but make it a full package check if there's a design check if they um uh they use uh type of squad domains etc but keep in mind when you're performing an adversary emulation you have maybe a couple of weeks maybe a couple of months a real adversaries have like a couple of months or years to perform the attack so keep this in mind sometimes you have to make choices based on the time you have so sometimes you have to have to make it a little bit more advanced in order to have someone click uh on the link or execute or open uh your attachment so if you want to read a little bit more about this research uh or you want to use it during your next adversary emulation you can go to uh to my blog uh it's here with the link and i made for the four um uh adversaries i made a full list with examples what to use or what not to use during your next fishing campaign so this was my presentation i hope you liked it and if you have some questions please drop it in the chat and for now thank you very much


Hey everybody, it's Brian and welcome to the 46th Qtutorial with C++ and GUI programming and today we're going to cover the QFind algorithm. QFind allows you to find things within a container. So let's just make a QList and we're going to give it some ints. Just keep things simple. We'll call list. We're going to fill our list and we'll just say 1, 5, 15 and we'll say 23. Now what we want to do is we want to search that list and find a specific number. Now I know you're thinking, well I can just do a for loop and figure out which one it is, but there's a better and a faster way. It's called QFind, but to do QFind we've got to deal with the const iterator and I'm going to show you how to do that. So say QList, int and then you say const iterator and we'll just name it iter and then we're going to assign the value which is actually going to be QFind and we want to say the range which is list.begin to list.end and then the number we're looking for and I think we said we're going to look for 15. Now what that'll do is that'll search and if it doesn't find it, it's going to equal the end and I'll show you what I mean here. If iter and we'll say not equals list.end, I made a booboo here, bear with me. There we go. So if it doesn't equal list.end or the end of the list which is right here after the 23, then we found a value. So we'll say Qdebug and let's just say found and we want to actually print the value out. So we will say iter because remember this is a pointer and we'll say else, Qdebug and we're just going to say not found compile and run and we found 15 because there's 15 in our list and just to prove that this works, let's actually just throw a number in here. We know it doesn't exist, 99, compile and run and not found. So that's how Qfine works. Now I know you might be thinking that this is kind of a complex way of doing things, especially if you're coming from say visual basic or C sharp where you used to just going through an entire list looking for something. It may seem more complex but it's actually more elegant and it's much less error prone and I'll be it much faster. So I implore you to use it. This is Brian, I hope you found this video educational and entertaining and thank you for watching.


Here we have a Lenovo smart clock with Google Assistant. Let's talk about it Hey there and jrew22.com here with a product review and today's product review is the Lenovo Smart Clock with Google Assistant.  I'm not going to go into specs or unbox it It's already in use the box is empty.  This wasn't in my script, but people love that feeling of opening up a product. Oh I don't I I'm not part of that generation.   I just don't I don't get it But anyway, that's a rant so against our better judgment. We now have this device. I have it because It sort of came free with that tablet. I bought and I got the tablet for like half price I think I paid under $200 for this really decent Android tablet would good. I wanted a tablet with good speakers. So I don't have to deal with Bluetooth and all these extra cords and wires and charging up this tablet has good enough speakers to be able to watch press conferences or whatever you want to Check out in your kitchen while you're cooking Without needing a second speaker, so it's good enough. I like it. It's cheap and it works but I've sort of been on the like anti a little I'm a little luddite when it comes to these smart assistants We had an Alexa which I I kind of took away from the family So I don't like that thing plugged in and listening to people But I'm gonna give this Google or I'm giving this Google assistant a try. It's a tiny little screen There's no video camera on the front. You can't use it for video calling, which I don't do anyway because I don't call anybody But this I've been looking into I'm act. What can I do with this? It can I make my life better? Truly without adding in more complications and more need to talk to a freaking computer device You can ask the weather which I typically know the weather anyway because I don't I just look on my computer And I get the whole seven-day forecast on the weather underground or whatever I'm using windy and you could see the chart and you can understand. Okay, this weekend's gonna be kind of rainy You know, whatever. I don't need to ask. Hey, what's the what's the weather today? It's gonna be 91 Like I really don't care about that and for people who use their digital calendars I mean, I'm not that busy that I need to keep calendar of meetings and I have a pretty good little Calendar up here and I remember everything so I don't need to rely On on a computer device to keep my schedule I rely on this device and that's good to keep this thing worked out because when you start relying on this this thing gets out Of shape, but and then there's like one of the other things. Oh, find me a recipe for the turkey dumplings or whatever Like I already know how to cook. I don't need a recipe from anybody I use my own imagination and I don't feel the need my life isn't that boring that I have to find something exciting to cook I like cooking what I cook and then they have music and this thing has a Very substandard. It's not like high fidelity But I don't like the way you have to listen to music has to be some sort of streaming service like Spotify or Pandora Which I know a lot of people like I just don't I have my set of music that I like and I Am at the very least I will I will today for instance I went on YouTube and I listened to some classic rock playlist And there were no commercials. I use a good browser and I didn't get bothered And I was able to listen to 50 songs or there was a choice of 50 songs and I was fine, but I Found two things that I think are okay with this maybe three We have a problem in this house with shopping lists We have a little like toilet paper practically right on these crumpled up lists with like Tiny hieroglyphic handwriting and they're they're all over the place and they get crumpled up. So I started Creating a shopping list. So if I'm laying in bed, I'm like, I gotta add that I remember to add that to the shopping It's I'll tell this stupid box to to add it to my shopping list And I might I'll tell my tablet to add it to the shopping store my phone if I'm out in the Bouter in the garage or somewhere and I remember That I need something I'll add to the shopping list and it kind of collects it in a central location And then for instance when I have to go on shop rights shop from home I have my list on my phone and I order the stuff. That's kind of neat I guess I could just learn how to become a better note-taker and have a central notebook somewhere, but That's all I mean the shopping list. So it's like a $50 shopping list, but One other thing I just found out today that it does is if you can make a phone call just right there There's no phone line or cell in your bedroom You just you can tell this clock to call whoever's in your contact list, which is kind of interesting I guess I thought of it's like say I like I was like that old lady. I fall in and I can't get up I can call my own home phone from this thing and tell somebody in the house that I'm stuck in the the bedroom and One other thing I do is I say I occasionally I'll tell I'll talk to it Hey and set an alarm for eight o'clock in the morning and it'll wake me up Which is I could do that already with my phone, but that's that's kind of neat I might say but that's all I found useful. I went online to see on the Google assistant Home page to see what it is and it's all really kind of superficial garbage. Oh check my stock portfolio Why don't you just check your smart portfolio on your phone or on your computer? Why do you need to check it? It's all this is checking check the scores check this check that It and I guess you could do a turn-off I might try that one day like turn off the the lights and you need special light bulbs and and with Wi-Fi bulbs and I mean one thing I might forget to turn off every now and then is the the floodlights in the house, but I don't know I don't think I Like the thermostat we don't have any of those smart thermostats Turn the air conditioning down in the living room I set the living room in the 22 degrees or whatever it is So I'm not really a big fan of anything automate. It's I don't really think it's worth the headache First of all you have to put all this money into it, and I don't think it really saves I don't know what the return on investment is, but it's probably Very slow, you know 10 years maybe 20 years you might save the money that you paid for it So I'd rather just not do it if my thermostat one of my thermostats breaks However, the one of the ones we have in the house I may put a smart one in that I can do with my phone, but I'm not going to have it connect up to these automated systems And also they like then your news options on these things.  It truly is I think that's going to change sometime in the you know relatively near future I still like using my computer and going to a website on my own with my fingers and searching Instead of having this thing curate curate the the news for me I'll find it myself, and I really do think the fact that people are constantly checking everything I think that's a that's a pandemic on its own. It's a first world mental pandemic I gotta check this check that check that the people like like robots now They're constantly checking checking the messages checking their social media checking checking checking.  Are they checking into real life ever? I really just don't get it But we're going to keep this day Oh one other thing this stupid thing does it reads children's stories. So Pete parents have gotten so lazy They already have 900 million Automated things now they need that their little clock to tell their child a story We read books for our kids, and we tell our own stories. I'm constantly making up stories It's mentally challenging to to make up a fun story that keeps the kids Interested, but like I said, we're going to keep this clock.   Just do it the old way and then just be happy I mean I don't do are people so freed up with time now that they're just sitting around and like Wondering where they went wrong in life. I don't know so I'll do it the old-fashioned way until I cannot do you have anything that's really useful.  I mean is there anything truly useful? I mean measurements. I I can't remember how to how many ounces are in a cup I don't know if there's something interesting. Please let me know in the comments and that's it Please subscribe hit the like and that's it and I'll see you next video


Hello and welcome to this presentation of the STM32G4 Analog to Digital Converter block. It will cover the main features of this block which is used to convert analog voltages like sensor outputs to digital values for further processing in the digital domain. The Analog to Digital converter inside the STM32G4 microcontroller allows the microcontroller to accept an analog value like from a sensor output and convert the signal for use in the digital domain. There are 42 analog inputs available across the five ADCs. The oversampling unit pre-processes the data to offload the main processor. It can handle multiple conversions and average them into a single data with an increased data width up to 16 bits. The ADC module itself is a 12-bit successive approximation converter with additional oversampling hardware. The sampling speed is 4 ms per second for 12-bit resolution. The data can be made available to the software either through DMA transfers or interrupts. This ADC is designed for low power and high performance. There are a number of triggering mechanisms and the data management can be configured to minimize the CPU workload. The ADC module also integrates an analog watchdog. Five Analog to Digital converters are integrated inside STM32G4 double X products. The input channel is connected to up to 42 channels capable of converting signals in either single end or differential mode. The ADCs can convert signals at 4 ms per second in 12-bit mode and ADC clock frequency is 60 MHz. There are several functional modes which will be explained later. There are also several different triggering methods. In order to offload the CPU, the ADC has an analog watchdog for monitoring thresholds. The analog watchdog has new filtering features. The ADC also offers oversampling to extend the number of bits presented in the final conversion value. Also, there's new flexible sampling time control and you gain an offset compensation. For power-sensitive applications, the ADC offers a number of low power features. This slide shows the general block diagram of the ADC. The main important subunits of the ADC are the power supplies and on-off control, the analog front end, the trigger logic, the digital back end including the analog watchdogs and the AHB slave interface, the clocking. The next slide's detail all these subunits. The ADC has two clock inputs, ADC-CRCK and ADC-H-CLOCK. The AHB interface belongs to the ADC-H-CLOCK clock domain. Regarding the digital part of the SAR ADC, there are two options. Either using ADC-H-CLOCK as the reference clock or using ADC-CRCK, which is dedicated and independent of ADC-H-CLOCK. With this second option, dynamic frequency scaling can be implemented in the AHB and CPU clock domain while the sampling clock is fixed. However, samples acquired in the ADC-CRCK clock domain have to pass to the AHB clock domain to be read by CPU or DMA, which requires a synchronization delay. An uncertainty of the trigger instant is also added by the re-synchronizations between the two clock domains. The analog part of the ADC needs two power supplies. VREF+, which is the positive analog reference, and VDDA, which is the analog power supply. By default, the ADC is in deep power down mode where its supply is internally switched off to reduce the leakage currents. The start ADC operations is first needed to exit deep power down mode by setting the deep power down bit to zero. It's possible to save power by also disabling the ADC voltage regulator. This is done by writing bit ADV-REGEN to zero. Setting ADDIS to one disables the ADC. ADEN and ADDIS are then automatically cleared by hardware as soon as the analog ADC is effectively disabled. The analog switch inside the IO has a resistance which increases when the analog switch supply decreases. So for cases where VDDA and VDD are low, there's a possibility to enable a voltage booster which will supply the analog switch and guarantee low resistance. The recommended supply for the analog switch is to use VDDA. But when VDDA is lower than 2.4V and VDD is larger than 2.4V, the power supply can be switched to VDD. If both VDDA and VDD are lower than 2.4V, the voltage booster should be enabled. It's possible to provide the internal reference voltage VREF internally using the VREF buff. Three voltage levels are available. This can be used only when there's a VREF pin in the package, i.e. all packages accept 32-pin STM32G431UFQFPN32 and LQFP32 packages. Even when VREF is provided by internal VREF buff, decoupling capacitors have to be connected externally to the VREF pin. The STM32G4 supports up to 5 ADCs. Each of them is connected to external analog channels and internal analog sources. The internal channels are the internal reference voltage or VREF-int, the internal temperature sensor or V-sense, the V-BAT monitoring channel or V-BAT divide by 3, OP-AMP12346 connected to various ADCs which are not represented in the figure. Note that analog inputs can be configured to be single-ended or differential. The ADC offers an auto-calibration mechanism. Calibration is preliminary to any ADC operation. It removes the offset error, which may vary from chip to chip due to process, supply voltage, or temperature variation. Single-ended inputs and differential inputs are calibrated separately according to the state of the ADC CalDiffBit value. Software can request a calibration by setting the ADC ALBit to 1. The resulting calibration factor can be read from ADC CalFact register. It's recommended to run the calibration on the application if the reference voltage changes more than 10%, so this would include emerging from reset or from a low power state where the analog voltage supply has been removed and re-established. High temperature excursion may also require to run the offset calibration. This table indicates which are the internal analog channels for the five ADCs. Conversions are organized in two groups. The regular group and the injected group. The injected group can preempt the execution of the regular group sampling sequence. The user is in charge of selecting the size of each group and maximum 16 acquisitions in the regular group and four in the injected group. They also have to assign the analog channels for each sampling within the sequence. Each group has its own triggered logic. The trigger can be an external signal coming from GPIOs or timer outputs. A sequence of acquisition can also be triggered by software. The digital backend performs processing on the samples obtained in the SAR ADC in the oversampler gain and offset unit. Raw samples may be processed by the oversampler gain and offset compensation units before being provided to the software. The results are then stored into registers that are accessible from the AHB slave interface. AHB supports a higher bandwidth and minimizes latency because the CPU and DMA are also connected to the AHB interconnect. The ADC is able to assert their request to the DMA so that samples coming from regular channels are automatically moved to memory. Injected channels do not support DMA requests. The ADC includes the oversampling hardware which accumulates data and then divides without CPU assistance. The oversampler can accommodate from 2 to 256 time samples and right shift from 1 to 8 binary digits. 12-bit data can be extended to be presented as 16-bit data. This functionality can be used as an averaging function all for data rate reduction and signal-to-noise ratio improvement as well as for basic filtering. A gain factor can be applied to the raw samples in order to improve the dynamic range. The gain factor is performed after the oversampling. It's programmable in the range 0 to almost 4. An offset Y, Y in range 1 to 4 can be applied to a channel by setting the bit offset YEN to 1 into ADC of Ry register. The channel to which the offset will be applied is programmed into the 5-bits field offset YCH of ADC of Ry register. In this case, the converted value is decreased by the user-defined offset written in the 12-bits field offset Y. The result may be a negative value so the red data is signed. When auto-delay mode is active, the ADCs wait until the last conversion data is read or the end of conversion flag is cleared before starting the next conversion. This is a way to automatically adapt the speed of the ADC to the speed of the system which will read the data. This also avoids unnecessary conversions and thus reduces power consumption. This auto-delay mode does not apply to injected conversions except the last one when switching back to the regular conversions. Power consumption from VDDA power supply depends on sampling time. From 16 microamps at 10 kilos samples per second to 590 microamps at 4 mega-sample per second. For low sampling rates, the current consumption is reduced almost proportionally. The global conversion time is equal to the sampling time plus the conversion time. The ADC needs a minimum of 2.5 clock cycles for the sampling and 12.5 clock cycles for conversion for 12-bit mode. With a 60 MHz ADC clock, it can achieve 4 mega-sample per second. For a higher sampling speed, it's possible to reduce the resolution down to 10, 8 or 6 bits. When associating a master and a slave ADC, the interleaved mode maximum performance is one sample every 8 clocks so 7 mega-sample per second at 56 MHz. The first set of a conversion consists in loading the sample and hold capacitor with the voltage to be measured. Longer sample times ensure that signals having a higher impedance are correctly converted. The sampling times listed in this slide in ADC clock cycles are available. The sampling time can be programmed individually for each input channel of the analog-to-digital converters. Two new sampling mechanisms have been introduced. The first one is the bulk mode, which works only in discontinuous mode. In this mode, sampling starts immediately after last conversion finishes without going to idle state. This will provide less latency from the trigger signal to the start of conversion. The very first ADC conversion, after the ADC is enabled, is performed with the sampling time programmed in SNP bits. The bulk mode is effective starting from the second conversion. The second mechanism is the sampling mode, based on trigger signal. Rising edge starts sampling, falling edge stops sampling, and the conversion starts. The ADC supports several conversion modes. Single mode, which converts only one channel in single shot or continuous mode. Scan mode, which converts a complete set of predefined programmed input channels in single shot or continuous mode. Discontinuous mode, which converts a short sequence called subgroup of N conversions with N less than or equal to 8 that is part of the sequence of conversions. When an external trigger occurs, it starts the next N conversions selected in the ADC SQR registers until all the conversions in the sequence are done. Each ADC has three integrated 12-bit analog watch dogs with high and low threshold settings. The ADC conversion value is compared to this window threshold if the result exceeds the threshold, an interrupt or timer trigger signal can be asserted without CPU intervention. When converted data belongs to the interval defined and DMA request is generated. Otherwise, no DMA request is issued. The Analog Watch Dog 1 has also a filtering capability. If data is out of range for a number of times higher than the value specified in AWD field in ADC XTR1 register, the AWDX flag is set and the corresponding interrupt is issued. The ADC conversion result is stored in a 16-bit data register. In dual mode, two samples are combined into a 32-bit register called ADCX CDR, thus minimizing the number of transactions on AHB. The system can use CPU pulling, interrupts, or the DMA controller to make use of the conversion data. An overrun flag can be generated if data is not read before the next conversion data is ready. In case of overrun, either the new sample is dropped or the previous sample is overwritten. For injected channel conversions, an injected data reduced to interrupt the regular conversion, then insert up to four channel conversions. Once an injected conversion is finished, the regular conversion sequence can be resumed. The injected conversion result is stored in dedicated data registers. Flags and interrupts are available for the end of conversion and end of sequence. The choices for an injected channel can be reprogrammed on the fly. Even if a regular or injected conversion is in progress, you can add a different channel to the queue so that next injected channel can be different from the previous one. The STM32G4 embeds five ADCs. ADC1 and ADC2 can be configured to work together in dual mode so that each analog to digital conversion can be synchronized between the two modules. ADC3 and ADC4 can be also configured to work together in dual mode. ADC5 works as a standalone converter. Four possible dual ADC modes are implemented. Injected simultaneous mode, regular simultaneous mode, interleaved mode, alternate trigger mode. It's also possible to use these modes combined in the following ways. Injected simultaneous mode plus regular simultaneous mode. Regular simultaneous mode plus alternate trigger mode. Injected simultaneous mode of ADC mode, conversions can be started either simultaneously or alternately on ADC Master and ADC Slave. The converted data of the Master and Slave ADC can be read in parallel by reading the ADC Common Data Register or ADC XCDR. Do not convert the same channel on the two ADCs. This slide describes the injected simultaneous mode and the regular simultaneous mode. The trigger is used to simultaneously start the sequence of conversions on both Master and Slave ADC. Conversion sequences must be equal on Master and Slave or must ensure that the interval between triggers is longer than both sequences. In discontinuous mode, every simultaneous conversion requires an injected trigger. Interleaved mode converts a regular channel group, usually one channel. The external trigger source which starts the conversion comes from ADC Master. ADC Master starts immediately. ADC Slave starts after a configurable delay after the end of sampling of the Master. It prevents an ADC from starting a conversion while the complementary ADC is still sampling the input. An EOC is generated at the end of each channel conversion. In discontinuous mode, every simultaneous conversion requires a regular trigger. When a sampling time of 2.5 ADC clock cycles is selected, the total conversion time becomes 15 cycles in 12-bit mode. If the dual interleaved mode is used, the sampling interval cannot be equal to 2.5 ADC clock cycles since an even number of cycles is required for the sampling time plus conversion time. In the timing diagram on the right, the sampling time on the Slave ADC has to be increased to 3.5 clock cycles while the sampling time for the Master ADC is 2.5 clock cycles. The SMP plus bit can be used to change the sampling time 2.5 ADC clock cycles into 3.5 ADC clock cycles. In this way, the total conversion time becomes 16 clock cycles, thus making possible to interleave every 8 cycles. The maximum number of samples per second is equal to 56 MHz divided by 8, i.e. 7 MHz per second. The alternate trigger mode converts an injected group of channels. Conversions are started only by using hardware triggers. The external trigger source comes from the injected group multiplexer of the Master ADC. When discontinuous mode is disabled and the first trigger occurs, all injected Master ADC channels in the group are converted. When the second trigger occurs, all injected Slave ADC channels in the group are converted. When discontinuous mode is enabled and the first trigger occurs, the first injected channel of the Master ADC is converted. When the second trigger occurs, the first injected channel of the Slave ADC is converted. Each ADC can generate 9 different interrupts. ADC ready, end of conversion, end of sequence, end of injected conversion, end of injected sequence, analog watchdog, end of sampling, data overrun, and the overflow of the injected sequence context queue. The AMA requests can be generated at each end of conversion when the ADC output data is ready. The ADCs are active in run, sleep, low power run, and low power sleep modes. In stop-zero or stop-one mode, the ADCs are not available, but the contents of their registers are kept. In standby or shutdown mode, the ADCs are powered down and must be reinitialized when returning to a higher power state. There's a deep powered-down mode in each ADC itself which reduces leakage by turning off an on-chip power switch. This is the recommended mode whenever an ADC is not used. This table shows performance parameters implemented in the STM32G4's ADCs with regard to the STM32F3's ADCs. These peripherals may need to be specifically configured for correct use with the ADCs. Please refer to the corresponding peripheral training modules for more information. Dedicated to analog to digital converters are available. To learn more about ADCs, you can visit a wide range of webpages discussing successive approximation analog to digital converters.


Welcome to the Anxious Morning. Every weekday morning we'll take a few minutes to go over some important lessons that you can use in your anxiety recovery journey. Away from the endless noisy scroll of social media, the Anxious Morning brings you support, education, inspiration, encouragement, and empowerment. For more, visit us at theanxiousmorning.com What is a bad day playbook? As you move down the anxiety recovery path, you will most certainly hit rough patches. There are ups and downs, good days, and bad. Keep your expectations in check as you go. Be careful about declaring the bad days to be setbacks or indicative that you are back to square one. We'll talk about setbacks and the concept of square one down the road, but this morning I want to give a brief overview about how to handle the bad days when they happen. American football teams use playbooks to guide their actions in a game. For any situation, the playbook will indicate what should be done next. Teams practice the plays in the book so they know what they're doing before they do it. Playbooks exist because when the chips are down and the pressure is on, even the most experienced players and coaches do not want to be making it up as they go along. They recognize that pressure makes it difficult to think clearly and make sound decisions. What else makes it difficult to think clearly and make sound decisions? Hint, the answer is anxiety, but you already knew that. In The Anxious Truth, I wrote quite a bit about having a bad day playbook. I've recorded podcast episodes about it. If you're not familiar with the concept, here's a quick outline of what your bad day playbook might look like. These are the predefined actions you can take when struggling, rather than simply retreating or trying to make it up as you go along. Number one, recognize the difficulty, the struggle, and the emotions that come with a bad day. We're not trying to stomp out emotions, so give yourself some time to cry, be angry, vent, and otherwise express what you need to express. That is not wrong to do. Just don't let it drag on for an extended period of time. Number two, return to your success journal. Do you have one? Are you recording your wins when you have them, no matter how small they are? A bad day will convince you that you are at square one and will never get better. Keeping a success journal means that you can go back to it and see in an objective way that you have made progress and that things are changing for the better. If you're not keeping your success journal, consider starting. More on that on another day. Number three, go back to more basic simple exposures and repeat them. Take a short walk, call a friend, watch a movie, read part of a book, sing along with a few songs, draw a picture, find something that you know you can do even when feeling anxious and afraid, then do that thing. Action is needed on a bad day. Go show yourself that a bad day is not a nightmare. This is a far better idea than sitting around for 14 hours thinking about how you feel. Number four, when you've made room to express yourself, then taken some action to show yourself that you're still okay, circle back at the end of the day and record it. You'll be able to use the record of this bad day to help you with future bad days. It started off like shit, felt hopeless, cried for an hour, went through my journal to remind myself of the changes I'm making, took a walk through the park, chatted with a few friends, made myself dinner, reminded myself that I'm still capable. Nothing bad happened. Nobody wants to struggle. Nobody wants to have bad days, but they are a reality in recovery and in life. Having a plan in place for how you will handle those days can make the difference between a bad day and a bad week or two. Tomorrow, we'll look at how we can put our thoughts and feelings into a healthier, more productive place in our lives. Hey, if you're enjoying the podcast and you'd like to get a copy of it delivered every morning into your email inbox, including a full text transcription, head on over to theanxiousmorning.email and sign up for the newsletter. And if you're listening on iTunes or Spotify or someplace where you can leave us a rating or a review, take a moment and rate the podcast and maybe write a small review. It really helps us out. Or just tell a friend about us. Thanks a lot.


Sinestrump Gundam Wing Endless Duel, or its official title, Shin Kido Senki Gundam Wing Endless Duel, is one of the best Super Famicom games that stayed in Japan, and certainly one of the best 16-bit fighting games of its era. Why is that? It's the little things. Well, actually to start with, it's the big, huge, bright, colorful things right in front of your face. You fight as a giant mech or mobile suit as the Gundam universe refers to it, and yeah, this game looks freaking spectacular. And it's not just the quality pixel art and polished animation, it's the speed and the frame rate. Despite the sheer amount of stuff going on, this game is lightning fast. But what really pushes Gundam Wing Endless Duel over the top are the little things that still make it feel like you're fighting as a giant ass-kicking robot, rather than just some guy. And that's because of the excellent sound design, as well as the subtle shake of the camera perspective to imply the massive weight of these mobile suits. Some fighting games, especially modern games, tend to get a little carried away with the camera shake thing. It can get real annoying real quick. But here, it's pitch-perfect. The game is able to maintain a sense of chaos while keeping the fights focused enough so they aren't just one big random mess. So yeah, combine the speed, the frame rate, the pixel art, the sound design, and the little touches done just right, and you have yourself a quality fighting game. As for the combat itself, I guess it's easy to expect your typical Street Fighter clone, and in some ways it is. This does play like a Street Fighter style game along the lines of Street Fighter 2 Alpha, more than anything else, and that's definitely not a bad thing. It's far from generic. You got combos, air dashing, double air dashing. In fact, lots of mid-air stuff, which is really cool. Juggling, projectile weapons, and you can actually attack your opponent while they're down. You don't see that too often in fighting games back then. There's 10 fighters to choose from, and of course everyone is based on the Gundam Wing anime, which I'm not all that familiar with. There's some distinct differences in the fighters, but nothing out of the ordinary. I do like the heavy arms character who's just laden with weaponry. That's badass. The quicker fighters like Tallgeese are able to take advantage of the game's vertical scrolling, so that's pretty cool. There is, of course, a versus mode and a story mode, beat the story mode and you unlock a hard mode, and another character to use in multiplayer versus. Of course, when talking about Gundam Wing, you have to mention Mighty Morphin Power Rangers fighting edition, and why is that? Because that was a North American exclusive game that came six months earlier, and yeah, it looks pretty familiar, doesn't it? It was made by the same developer, Natsume, and it serves more or less as a makeshift prototype for Endless Duel, but there's fewer characters to choose from. The fighting is a little less varied. Really, if anything, Endless Duel plays more like a polished sequel to Mighty Morphin Power Rangers fighting edition, just, you know, if they completely switch TV shows. Anyway, yeah, if you're into fighting games, or even if you're not, Gundam Wing Endless Duel is well worth playing today. If I had to make a list of the 10 or 12 best Japan-only games that never made it overseas, this would definitely be on there. The problem is that the cartridge is, of course, wildly expensive, so once again, it's flash cartridges to the rescue. So yeah, as usual, anyway, you're able to play this game. Highest recommendation for Endless Duel.