The narcissist cannot acknowledge your success. They cannot recognise the importance or quality of your accomplishments. They cannot accept or admit the existence or truth of something that you have achieved successfully or an activity that you can do well. They are jealous. They feel anger or annoyance provoked by what is perceived as unfair treatment. They feel resentment towards you and your achievements, possessions or perceived advantages. They feel as though you are taking the spotlight away from them. They are also envious. They feel discontentment aroused by your possessions, qualities or luck. They have a restless desire or craving for a possession, quality or other desirable thing belonging to you. This feeling of envy can often provoke them to want to sabotage your progress or success or take something away from you. They cannot acknowledge your success, especially when you are establishing something significant or meaningful, because they don't have any success of their own and they know that they do not have the capabilities or potential to reduce anything significant or meaningful. They have to live through other people. They have to experience life and their imagination through the actions of another person who may be successful. They experience a very curious pleasure by watching, listening to or reading about other people doing something rather than by doing it themselves. That's the closest they will ever get to ever experiencing success, because they know they're not capable of establishing anything on their own. Their happiness and contentment comes from other people. They will often try to triangulate them with you and try to make you feel inferior to this person. When all they're really doing is projecting their own feelings of envy and jealousy onto you, because they are the ones that are envious and jealous of you and they have no success of their own. They're triangulating you with another person because they don't make any progress of their own. They live vicariously through other people. The narcissist will give you put-downs or back-handed compliments. They will try to make you feel as though you're not as great as you are, but you need to recognise that it really has nothing to do with you. They are trying to project their negative emotions onto you. If you look at your life and then look at theirs, you will realise that you have so much more going on than they do.  If you look at your life and then look at theirs, you will realise why they do this. And you will realise why they spend so much of their time looking at your life rather than their own, because theirs isn't much to look at. There is a much going on in their life. They do everything they can to avoid looking at that, because it's the present. But they like to observe your life and they try to pick things apart and make you feel as though you're not as great as you are, because really that's how they feel. They feel as though they can never be as great as you are. They're envious and jealous. That is why they have to try to bring in other people's achievements to project their feelings of envy and jealousy onto you, because they're not doing anything in their lives. They have nothing else to do other than putting down someone who is trying to do something productive with their lives. They are envious and jealous, because they're not about anything. And they don't have anything going on in their own lives. They live through other people's success. They can't live through their own success because they don't have any. And when they try to put you down will give you back under compliments. It reveals just how envious they are and how bored and dissatisfied they are with their own lives. They put all of their energy into hating you and hating on your success instead of putting that into their own lives and trying to achieve something themselves. They choose to criticise other people because they are not happy with their own lives. People who are happy with their own lives will acknowledge your success and they will compliment you.   They're always unhappy. They feel small when adequate, so they have to go around trying to accept them from other people to make themselves feel greater than what they actually are. Because on their own they feel like they're nothing. They have nothing of their own which is why they have to combine forces with other people in an attempt to defeat you. They join other groups of haters. They want to gain acceptance into these groups and it gives them a sense of belonging. But even that is fake. Even that is something they are just doing for their own benefit. It gives them a social or professional position, but they cannot create it on their own or from within. The narcissist might put you down or give you back-handed compliments, but you need to recognise that you have achievements, qualities or possessions to be proud of. You have something that you have put time and effort into. You have accomplishments. You have things that you have achieved successfully. And that is something that they most likely do not have if they are hating on you, if they are envious and jealous of you. Most of these people are in dead-end jobs doing the same thing every day, every week, every month, every year and yet they still don't figure it out. They still don't understand. They never learn or grow from anything. Instead they bottle up their frustration and resentment which is a result of their own insufficiency and their own inability to deal with a situation or life and then they take it out on people who are successful. People who have achieved something. People that they are envious and jealous of. The narcissist will worship people that they can use against you. People that they can use to make you feel inferior or insignificant. Usually these are people that they don't really know or people that they aren't around as often. And you will find that what they are saying about them to you is very different from how they talk to them. But as long as they can paint the picture to you that someone else is superior or someone else has achieved more than you, it relieves their pain. They project their envy and jealousy onto you and usually the people who they are using against you aren't even as great or as accomplished as they say they are. It's all about painting the picture and making you believe something. It doesn't have to be true. Remember, narcissists live in a fantasy world. They don't even respect reality as long as they can get you to believe something. That's all that really matters because then it makes it more believable for them. When the narcissist has been around you and then you leave and create something greater, they have to try to bring you back down to their level. They are really envious, especially when you want nothing to do with them. If they had any real awareness or understanding, they would not react in that way. What they are doing is not right and they know that it is not right, but they can't stand to see you becoming something greater than them. Don't let them tear you down. Don't pay any attention or consideration to anything that they say. It's all based on their envy and jealousy. It says more about them than it does about you. Believe in yourself, validate yourself and don't let them affect you. They aren't about anything and they have nothing going on in their own lives. They are bored and dissatisfied with their own lives. They live like curiously for other people and watching other people's lives because they are bored of their own. Thank you for watching. I hope this video resonated with you. Please like, comment, share and subscribe. Click the bell icon to receive notifications for my future videos. If you would like to donate my PayPal links in the video description. Coaching inquiries, you can email me at nartofothercoaching at djuma.com. Thank you for watching and I'll talk to you soon.


Hello everyone, my name is Adam Zabrodski and together with Alex Matrosov we would like to give you a talk about glitching Krispy Chips, empty-back corruption for hard-dining ISA. However, this is the end goal what we end up doing and before we end up doing that we also needed to go through various different research areas we would like to cover in this topic today. To send us about ourselves, we don't want to focus too much here. Both of us did this research during our work at NVIDIA and here we can find some private contact information to me and Alex and we just want to mention that we did some security research for a couple of years already. So what is this talk about exactly? So let's speak first about execution environment. So to be able to speak about execution environment we need to have some kind of hardware and when we speak about the hardware we especially also mean about the CPU architecture. There might be various different CPU architecture like RISC-V, like X86, like ARM, etc. And when we write a software, software especially targets the CPU architecture. So any software which you write in the end are kind of designed for run on specific CPU architecture hardware. Even if you write in the high-level language in the end you still the interpreter runs on and targeting specific CPU architecture. And in this kind of scenario if you would like to break such kind of execution environment we can focus on the various type of attack. We can focus on the pure software attacks or pure hardware attacks. Example of the pure software attack could be any kind of the memory safely like overflow, use after fee, etc. Injection which is very popular in the high-level languages, like command injection, SQL injection, cross-excripting or logical issues where you essentially trying to target a specific software which is very badly designed and which might have security implication. There is also much more other attacks. About the pure hardware attacks we usually think about the glitching type of the attacks or any kind of the site channel attack or physical probing of the hardware also there is many more. So from the high-level perspective if you think about the pure software attack they are targeting specific implementation. Example could be specific programming language which allows you to have some kind of undefined behavior which you try to hunt or you can also target specific compiler, specific software, like firmware, etc. And there is no different than pure hardware attacks. In the pure hardware attacks you also focus on targeting specific implementation. Example could be specific CPU family or specific implementation of the architecture ISO etc. And there is also recently a very nice research about what about mixing these two types of the attack pure hardware and pure software and example of such kind of mix attack could be for example meltdown or spectra attacks. They essentially mix hardware and software. However if you think about that a bit more what about if you found the bug in the reference code of the hardware ISO itself not in the implementation of the ISO but like in the kind of ISO itself like a reference code for the ISO. This is pretty interesting implication from that because then the problem will affect all of the implementation of the silicon not just a specific implementation or specific family because everything which is realized on the reference code like ISO will be affected. And this is also interesting because in such case software cannot trust hardware at all what they do. So this is exactly what we'll try to speak about today this type of the problem which we discovered during our research. So at first how did we find it and how did we even focus on such kind of problem. So essentially we wanted to analyze a specific boot software like bootrom where specific microcode runs. However the problem is that it was running on the specific risk v chip which we essentially had zero experience with the architecture of risk v and moreover it was not just a simple risk v chip implementing base. I saw however they carry custom extension and custom functionalities on this specific environment which we want to analyze and even more the boot software was written in the ADACOR Spark language Spark language which we additionally also had zero experience with at that time during the research and we're starting to focus on that a bit more quickly. Is there any kind of public offensive research publication about that language even did anyone even hear about that language before because we did not and at that time we also needed to be able to analyze the binary especially the binary compiled from Spark language targeting this custom risk v chip and there was no even any tools who natively supported even simple risk v including IDAPRO and GITRA. This was around 2019 and none of this tool natively supported risk v and this is exactly what we try to speak about today. So during this talk we'll try to describe our journey through all of the problems which we met and during this research which resulted in the end in the discovering ambiguity of the risk v specification and also one additional problem. However first thing first let's speak about risk v in a nutshell. So risk v is essentially an open standard instruction set architecture known as ISA based on the risk principles and unlike any other most of the ISAs risk v essentially is provided under open source that do not require any fee it's open source and free essentially and but there is some kind of side effect of that because it's open source and it's free essentially the same risk v chip might have tons of the different implementation even ISA is the same so you think you have exactly the same chip but implementation could be completely different and variant and also risk v has a small standard base ISA which essentially have multiple standard extension however this gives you a potential huge fragmentation of the silicon because one base ISA with the custom extension another base ISA with the different extension and all of them still are risk v and everybody can easily add their own extension which is very cool because it's open source so nothing stops you to do that so you just take the ISA add your own extension and build our silicon which essentially as a side effect gives you even much bigger fragmentation because it's not only risk v based with the different extension but also they could be custom extension on the top of that and what is worth to mention that today there is more than 500 plus members of the risk v foundation who support this initial initiative of risk v including a big pliers like nvidia or google so most people now are familiar with the x86 and this is just prepared as very short and simple table who compares this to architecture so main difference is exactly license because x86 charge you the fee for ISA and architecture while risk v it's free so there's no fee for ISA neither for micro architecture risk v its instruction set based on risk obviously and x86 originally was a sysk but it's not really true anymore because since pentium pro x86 instruction essentially are turned into something called micro ops which is kind of like risk nowadays and x86 is very old architecture so essentially we have various variants of ISA they have 16 32 and 64 bits of ISA however risk v is much more modern so we have 32 64 and there is even 128 bits of variants of ISA which is not locked yet but essentially there is one and risk v operates on the memory model called slow store architecture where x86 is a register memory architecture and risk v has 32 general propose register registers but there is one special register it's called zero register which always keeps zero and what is interesting from security perspective risk v natively support execute on memory known as zone you can set up this as this is supported in the page table entries however x86 normally doesn't support zone unless you have hypervisor extension then you can divine zone like attributes in the slot table which is second level other translation and another big difference is software ecosystem which supports specific architecture so x86 essentially runs everywhere it's very old and very well designed and very well researched architecture so you have linux ecosystem windows macintosh and many more while risk v from the practicality perspective you essentially have only one ecosystem which is linux essentially but again from the security perspective you would like to focus more on the privilege mode and levels which architecture carries so this is very nice picture taken from the blog post link here on the below of the slides which essentially gives you the traditional rings which x86 carries so originally x86 only had four rings which is ring 0 1 2 and 3 while ring 1 and 2 was not really used however when the virtualization hardware in virtualization of architecture x86 not fully designed yet people trying to implement para virtualization of x86 using ring 1 but it's not doesn't need to be done anymore because now we have full hardware virtualization of x86 so traditionally in the ring 3 there is a list privilege code running which is like user application and in the ring 0 you have kernel code not so the time however over the time people demand more privilege levels so that's why we have something which we in officially called ring minus 1 where the hypervisor works software in the ring minus 2 there is some something which we call smm which is more privileged than ring minus 1 and there is also something what not many people know management engine on the x86 which you can call this as kind of ring minus 3 because it's the most privileged mode if you compare that to the risk v we have only free mode which is m s and u so traditionally uh it's an open source architecture so you have also various combination of this mode so you can have m mode without another mode so you can have m and u mode without s mode or m s and u mode which all of the mode essentially so what are these modes so u mode stands from user mode it's kind of equivalence to the ring 3 on the x86 this is where the application runs user application runs list privilege mode in the supervisor mode which is s mode essentially this is where what is equivalent to ring 0 this is where the kernel runs and m mode is kind of interesting because m mode called is called machine mode what's the isa defines this is the software which is the closest to the hardware runs kind of like a firmware however if you want to compare this mode to the x86 it should be something around ring minus 2 and ring minus 3 this is what you should think about as m mode is the most privileged mode essentially it's most powerful mode however risk v also works on the hypervisor extension so you have few extra modes so s mode became hs mode this is where the hypervisor extended supervisor works and we have two new modes which is v s mode and v u mode which is virtually supervisor and virtual user this is where the vm will run but also it doesn't cancel u mode normal u mode so you have also all of these modes together and again because it's open source you have one additional combination of supported risk v chips which which is also m vs and v u mode and again you don't need to implement all of the modes you can choose which mode you support your hardware and we as an attacker we are very interested and we would like to focus on dead mode which is m mode which you can kind of call it god mode because this is the most privileged and most powerful mode runs so if you are there is the most ideal situation so how to be there so essentially we know more or less what is risk v we learn about risk v a bit very quickly but we at least know what we are talking about and then we knew that the software which was targeting this specific hardware risk v which custom risk v essentially was written in spark and then we started to think about like what the hell is park we never heard about that language like did anyone even hear this language before so what is like the core spark a decor spark is essentially programming language together with the set of analyzing tools so spark in fact is a type of like ada language ada language but it's subset of ada language it's much more restricted and doesn't have full ada features because spark essentially the wants to be formally verified language and the formal verification is being carried by the exactly set of analyzing tools and this is where the strength of the language is it's exactly analyzing tools and this tool is these tools includes gnat proof gnat stack gnat test and gnat emulator essentially what this tool gives you as attributes for the spark language itself it's can statically prove various different things it can prove that these dynamic checks can never fail for example or they also can warranty you there is absence of runtime errors essentially everything is in the known and correct states because of that you don't have errors or runtime errors at least and also all of that it's formally verified which is very interesting and cool because there gives you a formal verified proofs that all of these attributes are being intact so what you should think about that from the attacker's perspective it's essentially a memory safe language it's a memory safe language which is formally proved so it's a kind of like a rust rust is not formally proved but it's a memory safe language and it's much stronger typing system than rust because it has very strong typing system and because it's much stronger than rust they also there is lack of problems like arithmetic overflows integer overflows underflows etc which is very interesting and because of that it's a very secure language it's traditionally have been it was used traditionally in the industries which are critical like avionics railways or defense system and so we should think about any language from the developer's perspective that you would like to model a correct states of the machine of the software and the hardware and language allows you to do it more easy or more hard to do that like in the scene language there is a lot of undefined behaviors so modeling all of the machine states it's very difficult and that's why you have various undefined states other language it's slightly more accurate in that case and allows you to give you more accurate modeling of the of the states and that's why there is less unambiguously and less unknown states there however because Spark it's much more strict than Ada essentially it's the most closest way how you can get to the correct states however because it's the strength it's in the analyzing tools essentially this is what the tools can gives you as an attribute however there is some kind of valves in the Spark language imagine you want to call the libraries which is implemented in the different language like in the C essentially Spark analyzer will not be able to prove that the code written in C which you call from Spark it's also correct in unknown states so that's why there is a valve from that and how does it look in the practice so if you write a program and you make a mistakes the prover will not only tell you where the bug is in the which line in which file but also that gives you proof of concept essentially so what are the values necessary to generate the bug or error at this example on the top you can see that probably tells you that there is a problem divided by zero which may failed when the variable B has value 42 so it's not only gives you the problem and also not only tells you the problem but also gives you the necessary condition how to execute the problem which is very interesting another example could be medium array index checkmate fail when the my index have value 36 so it's very interesting and then we're starting to think about that a bit more and so we wanted to analyze like what are the problems which specific tools can catch or cannot catch and we found one of the interesting scenario where I was able still to generate a program which prover says this doesn't have any problems which is you see on the top on this slide mark on the green the prover said there is no problems there however when we run that we were able to execute stock exhousion vulnerability and generate the exception because of lack of the memory however as we said before the spark supposed to give you one until there is absence of error or some time error so how is it even possible and then we started to run other tools like not stuck and we realized that even gnat prove didn't find the bug that problem gnat stuck did and on the bottom on the red you can see that they said that the gnat stuck analyzed all of the different cases and analyze there could be a problem with the stock exhousion so what did we learn from that kind of approach essentially we learned that you can compile still a buggy code but the programs are detected by the tools and the developers might not run them at all so it's very interesting attribute because it depends on the developing scenarios and the process of developing the software on the company and also tools are orthogonal to themselves because they detect completely different classes of the problem and to be fully protected you must run all of the provided tools and again it depends what's the process of software development is to be able to find out if all of these tools are run and another problem is there is no clear definition what are the classes of the problems which can or cannot be detected it's very limited and for public information what can be detected what is not and again we didn't find anything from the security researcher's perspective so what did we do we end up trying to do more research and find out because if nobody did it before us we must do it by ourselves so this is what we end up doing we're starting to evaluate it's kind of strong word but let's say analyzing the a decor spark language from the offensive security perspective and we divided the language we divided to the all of the security problems software problems so the general buckets of the problem and one of the most popular one is exactly general memory corruption back and compare with the other languages as essentially spark as we mentioned is a memory safe language so none of this kind of problem exists there is some kind of caveats which i don't want to focus now however you can think about that it's it's a memory safe language so memory corruption doesn't exist there and then we move to the general pointer security and it's interesting because spark doesn't have pointers at all so if it doesn't have pointers the pointer security doesn't apply there however there is still kind of corner case like imagine we are able to generate the stacks exhousion so that's why uncontrolled memory allocation kind of semi exists if you don't run that stack but it can be of course sketched by the tool set if you run them correctly and also there could be some kind of double factories imagine your dma twice the same region of the memory it's kind of possible to have like that and then we move to the arithmetic security and as i mentioned the spark gives you ability to have very precise type type language essentially you can define own type in the language and also define own boundaries and then the prover will tell you if anyone cross these boundaries which should be defined so essentially because of that you don't even need to use the general types like integers you just define own one every time when you model in your program with the hardware essentially that's why none of this problem exists like integer overflow on underflow or arithmetic overflow doesn't exist in the in the spark and then we also have other types of the problems like missing default case in switch statement or assigning instead of comparing and these problems doesn't exist in spark because tools easy catch them and then we starting to find out something more interesting like a parallel execution essentially what about the problems like race condition or deadlocks essentially it's possible to have them but a decor working on the extension to spark or Srebenskara which supposed to close that gap but from our perspective it was not very interesting because the boot software was not running essentially parallel it was single execution so it was not very interesting for us but it's worth to mention and then in the end we move to the logical box so essentially in the logical box the prover and nadir gnats stack none of the tools where can catch if you barely design the software because you try to model the hardware and you try to generate any kind of software which runs on the specific states which you model and then in the end if you barely do that of course park won't be able to catch that you're something but the design or barely model because this is intention of your software so this kind of problem still exists if you accurately modeling the hardware or if you accurately handling the dma or barely design the software so this is exactly the part which park cannot help you much so what did you learn from this evaluation so essentially as we mentioned before you can still compile the buggy code and because the problem are detected by the tools and the developers just might not run them and again the tools are orthogonal so they detect different classes of the problem so again to be fully protected you must run all of the tools not just one of them and from the analysis of the implementation bugs we realize that there still might be security issue when you in the design problems or also some kind of logical errors but there is no kind of memory safety for example so it's not worth to focus on that and again there is an additional class of the problem that could be introduced by the compiler because the bugs can be introduced by the compiler itself even if it's not in the software neither in the hardware however to be able to catch these three types of the problems we need to analyze the binary yes so because we need to analyze the binary we need to have an tools who can target the risk v and that was the problem that during this research neither either pro nor githra natively supported risk v there was some kind of plugins but there were no essentially native support of the risk v so we decided to focus on the githra and add own custom plugin to the githra to be able to analyze the binary which was running there but was generated from spark language and this is what we end up doing and how did we do it so githra 9.0 at the time this was the newest one didn't support natively risk v moreover we were dealing with the custom risk v chips not the standard risk v chip so even if we had them it will not work for us so again risk v is huge and implementation of entire risk v base what takes us a tons of time and additionally we needed to add the custom feature there custom extension not just risk v base so what we end up doing we found in the in on the github a few risk v base plugins for githra which had different implementation of risk v and we decided to integrate one of the plugin which we thought it's a good one on the top of tree of githra itself and few months after which is what is interesting githra 9.2 brought the natively risk v support they use exactly the same plugin which we use in our research and where to start so essentially we successfully integrate risk v plugin first but of course we need to modify it because we have custom extensions so githra is using slate language to describe the cpu and what is slate language and slate language is a processor specification language developed just for githra and it heritage from the sled and what is not cool that there was at that time at least very little documentation about that so if you want to implement some kind of a simple cpu you can use as a source of knowledge already implemented cpus in the source code and based on that you can just implement own one but if you want to do something more complex this could be a very painful and it was very painful at least for me so additionally we found in fact only one interesting source of knowledge it was a presentation made by juliami valadon which will link here on the slide so what do you need to do to implement cpu in the githra essentially you need to create a couple of files which are listed here and then we also define the model manifest how to tie them together and compile however we already had this file because we have from the plugin risk vbase plugin but we needed to modify them especially slaspec to be able to add custom extension and this is exactly the file where you define the register definition the tokens the aliases the instruction etc and githra what is interesting and it's worth to keep in mind allows you to compile the bad model slaspec as soon as the syntax is correct as long as the syntax is correct which essentially you will not even know if you make any mistakes then you run the githra you think everything works then you meet the instruction which you badly implement on runtime and then you see tons of java exception and maybe the program will crash so we use essentially check and strike and calm down techniques to be able to achieve what we wanted however let's briefly talk about how to do this kind of custom extension or tokens or githra plugins cpu implementation so essentially at first you define the token and the token of the instruction here defines how many bits instruction are there and you can define them the range of the bits which you are focused with the from the various aliases of the name here on the bottom you have for example the name csr0 which will be representing the bits from 20 to 27 as a token and then you also can define the register and at least we for example have status registers like u status from the user month status which you define the register the offs and the size and the name and then you can glue them together so you can attach the variables to the csr0 you can attach the the names of the register which you defined before and this is exactly what you do we just exactly also what we did we just defined the custom extension the custom tokens the custom register the custom variables and then we're starting to define the custom instruction and how to define the instruction so this is example of the compressed ad instruction you essentially define what are the operands there's two operands here d and csr crs2 and then you define what are the values of the tokens which you define as previously and as which bits they are mapping and then you define what they must be necessary values for them to be able to decode this specific instruction so example the cop 0001 token with the value 2 and the bits between 13 to 15 interpreted as a token cop 13 15 must have value 4 etc etc you define all of the bits and then the gitra will know that this is exactly the instruction which you're looking for and then you define the pseudo code if it matches you go to the pseudo code in the compressed ad instruction you essentially add two operands so that's what we did and then there is another example of the compressed branch equal zero it's exactly the same you define the tokens you define the values of the tokens which are necessary to encode the instruction you define the operands and then if in the pseudo code we check if the operands is zero then you just jump and that's all and in the end when we starting to add that and we add the custom extension the top of the risk v base isa on this plugin which we had we end up having this which is very cool so essentially what this screenshot from the gitra that shows you that essentially it correctly decompile the program and you have forfeited the compiler on the right side if you see on the left so you have the assembly and on the right side we starting to have forfeited the compiler and as you can see this is a binary which is generated from the spark this is a symbol language they found like adrv from risk v etc however that's the idea that we also got for free not only this assembly but also an analyzer we also had the custom extension was automatically reflected in the the compiler which of course obviously make our life much easier so gluing everything together we already know what to look for because we analyze the spark we know what the limits for the language and what we can hunt from from the offensive perspective obviously not memory safety issues however we also know that we were running on the risk v and it was not normal risk v but the custom risk v chip so we focus on the design on how hardware is focused so we focus on what is the design on the of the spark software spark how is it designed and how to implement the custom hardware how is it modeled because this we know what is there and it's not standard so what we saw we saw under and during analyzing the binary because that's why we needed to have this githra plugin that very first very very first instruction of this boot software was configuring the hardware also custom hardware and not only but addition also custom hardware as soon as the first instruction run is starting to configure the hardware and later we see that instructions of setting up the empty veg value and then we're starting through it what is empty veg value and officially this v documentation says that empty veg is defined as register read only and or read right which holds the base address of the trap handler and by default risk v always handles all of the traps in the most privileged mode which is m mode thought it can delegate this trap to the least the other modes modes if it's needed too and when the essentially trap happens the risk v switches to the machine mode and set the instruction pointer counter um the to that to the value defined in the register empty veg and empty veg can be defined in the two modes there is a mode which essentially keeps the direct pointer which is just jumped there and is defined by the two least significant bits so bit zero and one if it's zero then we have direct mode you just jump to the pointer or if it's non zero then it's being treated the value there as a vector vector rights like id t table x86 for example so then we're starting to think that empty veg is essentially configured after we configure the hardware so what will happen if any interrupt arrives before the empty veg is internalized because it can happen during utilization of the hardware and this is exactly what we discovered that essentially there is a problem because risk v empty veg register specification does not define the initial value of empty veg at all so it's undefined however when we're starting to analyze a few different implementation of risk v we found out that most of the test and implementation set it to zero anyway but in many implementation zero is not a valid address or if it's valid it's not mapped and then the reference to it to empty veg pointer which is null will generate an exception and this is kind of interesting because if there is any exception generated before initialized empty veg register risk v ends up in the very stable infinitive exception because it's starting to reference a null pointer which is not valid and generate another exception we generate another exception and so on so on and what was interesting that during this experiment risk v did not halt it was not halted it's continuous spinning in the infinitive exception loop and such state is in fact ideal situation for default injection attack like glitching attack because risk v at first is running in the highest privilege mode which is m mode and constantly referencing the glitchable register and this is the first bug essentially which we found that isa does not define the initial value of empty veg register and the second bug is that isa allows you to have infinitive exception loop without halting the core there is lack of double or triple fault like exception which is kind of interesting and however how to exploit these kind of issues which we found and this is where i would like to hand over to alex matrosov which physically glitched the risk v and he can take you over from there thanks thanks adam hello devcon my name is alex matrosov and i will be walking you over our exploitation technique for empty veg and it's actually two important points just adam mentioned it on the previous slide we have empty veg undefined behavioral and the core of risk v also doesn't halt it and it is actually uh looped after um such of the in exception happening with uh undefined behavioral of empty veg instruction but let's talk about the attack scenario and it is important points which you need to know before we basically get an actual scenario we need to pre-fill the imam of risk 5 core um and we can use like external uh recover usb boot flow functionality or access over uart so and second thing we need inability to generate an early exception during core execution basically it is a physical hardware damage can cause that and let's go to the scenario let's say we pre-filled imam with our as a shell code but it is some interesting techniques we used to make it uh the attack more stable because when uh after successful empty veg exceptions exception uh when we jumping into imam it can be some random address right and we need to make sure our code will be executed uh with the actual payload so we need to pre-fill imam with the knobs and knob sled will be basically creating some sort of insurance will be get into the random place but it will be led our shell code execution and on top of our knob sled we put actual shell code with the payload and it will be basically uh the realistic attack scenario in our case so attacker boot risk 5 core and then enforce the necessary condition to generate an early exception during the boot uh software boot and uh execute uh before actually empty veg get initialized right so a risk 5 core will be jumped into the null page and enters to the state of the infinite loop exception very stable and predictable state by the way and it's actually one of the conditions of our success in uh this attack scenario attacker uh glitches uh the empty veg register uh csr and after the value get uh glitched because it's just a boolean uh value uh even one bit change will be change the condition of this register right and the loop at core will be point somewhere into imam uh and the special payload which will be discussed before will be executed uh with our shell code so it's very interesting and stable attack scenario we tested in many uh different ways and i will be explain how we actually uh created the fault injection attack in the next slide but before we move there uh to one um thing you need to remember because empty veg register has a null page it's very likely that the change of one bit will be end up and generating undress pointing in the middle of the knob slot in imam and it's exactly why we need the fault injection attack and we experimented with a different type of fault injection attacks clock glitching uh um voltage glitching and uh actually we try to chip shooter and with an op sweat it's actually possible um but uh most stable and in our case because we experiment with uh UFO boards and chip whisper and it is UFO board with the risk 5 silicon cpu on it so uh we actually able uh uh to reach very stable point with the clock glitching attack so on this uh oscilloscope diagram you exactly see the glitch happens uh with the clock technique but also because uh we measure uh these values um with the clock glitching even with this small guy chip whisper nano we can manage after we await all the parameters and we have the offsets of the time frames uh we can create successful attack uh and actually uh with much cheaper hardware so of course uh we tried this complex scenario in many different environments and first of all thanks for nvidia hardware team which is actually uh help us a lot to uh play with the simulation environment with internal hardware and actually first of all we realize about this attack uh when we've been playing with some internal tools uh on this slide you can see uh the simulation environment where we have a uh following scenario uh on the first on step first we pull the trigger to corrupt empty back register csr uh the value of csr and uh looping the core and on the wave uh diagram it's very feasible when that happens and the step two actually uh leading the value change and then equal triggers an exception handler with the corrupted empty back register value and that's lit exactly uh pointing um to im m uh and executing our knob slide and lead the shellcode execution but let's talk also about how uh we report this bug and how we fix this uh bug with an industry effort from the risk five foundation community actually it was a very tough scenario uh because think about you find the bug not an actual implementation not in a single board you find the bug in isa that's mean most of the boards which is currently available in the markets it's affected by this issue and um how to fix it right so first of all like of course when we just realize this a big issue we contact the risk five foundation and until the time it was no official security response group and it's been actually we work with uh risk five foundation over our p-sort and also now it is official security response group exists which is good right and i think they can address uh security bugs and issues with isa and not only the isa tied to the risk five foundation uh as an industry call much more efficient also we contact sci-fi and working with them on analyzing this issue and actually we allocated the cv number uh 2021 1104 and uh nvidia p-sort and nvidia risk five hardware team uh confirmed this issue and fixed this issue internally and sync with all involved parties for responsible disclosure it's been uh kind of tough and timeline been also uh very limited because we want to deliver this talk and do deaf con conference but all the parties need to be secure first of all right and um how actually we can uh propose the fix for these problems right so first of all what we need to do with initialize that mtvac all tested chips uh have mtvac programmable and the most common mode vulnerable to describe it problem and um actually we also realized some of the newer chip been released recently this uh spring also actually affected by this problem because of course nobody thinks before about mtvac undefined behavioral but of course without uh looped core uh on the exception handler this attack will be not exploitable and if uh mtvac value uh will be not described but an instill undefined behavioral exist but let's say it will be some double or triple fault like exception or like just in the help this will be prevent the code execution which we described on the previous slide so but how we can fix this issue and what kind of mitigations it's can be first of all it's can be uh combination of uh hardware mitigations and software mitigations but let's talk uh about uh dcls and dcls and tcls it's actually very interesting techniques when we uh taken uh the shadow core uh dcls with a double core or tcls with a triple core in consideration of additional um execution uh following the instruction flow right so the shadow core adjust uh having the same flow the same instruction at and sync with the original core and if instruction flow it's not equal it will be panic or halted or whatever happens as defined in the silicon right same thing happening with the uh tcls and tcls just introduce uh two cores and it's will be much uh more difficult to um to glitch and in case of the two cores uh the possibility of the glitch still possible potentially but of course it's raising and increasing the bar dcls created much even much harder uh the attack scenario and uh i would say realistically it's need first of all to be uh involved in multiple glitch attacks in simultaneously so you need to glitch simultaneously multiple cores and with the corruption of the instruction let's say you need to corrupt uh the value and if these values are different so it can be cause some additional exceptions which you can't predict right so i would say uh it's raising the bar of course the attacks still possible but much more complicated and but let's talk about the software mitigations and uh Jeremy Boone uh from ncc group recently uh created a block series about the software mitigations and thank you for that it was a great uh uh series of explanation from the industry standards about software mitigations but of course all these mitigations known for a while and um also it's broadly used software mitigations doesn't prevent such of the attacks but it's raising the bar in many cases it's much make much more difficult um the attack scenario or like uh uh for uh an experienced attacker it's make it even impossible but uh all this uh hamming distance clear memory random delays and redundant checks it's actually can be introduced on the compiler level and created automatically because uh first of all uh the developer can forget to install this this mitigations or like uh copy paste something incorrectly or forget to change before uh copying this uh sort of mitigations in different places also some of them just can be utilized by compiler during the compilation flows because redundant checks as example without special definitions or compiler extensions it will be optimized uh during the compilation phases and you clearly can see this in disassembly flow also uh we propose some decisions uh uh we propose some design decisions to address for empty vac weaknesses and basically as we said before uh start cpu need to signal uh when the signal will be arrives initialize empty vac to point to the halt instruction basically if something happens it will be initiated the halt and uh change the isa uh needed because we need to warn about the potential undefined behavior if the empty back will be uh not initialized right and we need to basically introduce this kind of comment into the isa documentation also uh introduction of double triple fault like exception will be complementary to the halt of the core and actually instead of infinite loop it will be make this uh attack vector unexploitable it will be cause the denial of service but the not code execution we described previously and of course like it's much more uh can be explained in terms of uh risk five hardening and i think uh the mitigations against software attacks can be explained in different ways but also it is brilliant research being done of introducing uh pointer masking and uh uh adam will be takeover from that place thanks alex let's briefly talk about the pointer masking extension for risk v which can significantly increase the security state of entire risk v ecosystem in the software especially in the software but also in the hardware at can also reduce the impact or at least increase the the bar of exploitability of this empty vac issue which we're speaking about here today so this extension is driven uh as a collaboration between nvidia a google risk v t extension and the j extension task group so this is a huge collaboration and from the security perspective it allows to implement various technologies including hardware asa including pointer authentication code knows as pack hardware memories and boxing and it also can serve as a foundation for other extension including hardware memory tagging which cannot exist in the risk v without the pointer masking and also it can significantly improve the security of the other extension which is protected it can protect the control flow integrity attributes and shadow stack which is an extension driven by the team task group and the work is in progress however these kind of technologies are mostly known excluding the one which is hardware memory sandboxing this is kind of innovative and we haven't seen in other architectures so what is hardware memory sandboxing essentially it allows you to lock down the specific execution context on the sub region of the memory so even you can make an extra boundary between the threats even if they run on the same process context so the threat execution executing threat might not even be able physically to see or reference any memory outside of the preconfigured one and this is being enforced in the hardware level but this is more than that because essentially what you can think about that that essentially you can lock down what is specific ranges of the memory which are visible for each specific execution context so even if you have the vulnerability in such kind of software which runs on specific execution context such vulnerability will not allow you to jump over the predefined memory region so even if some kind of secrets it's leaving it's living in the other pages which normally this specific software doesn't need to have access to the vulnerability in the classic way will allows you to steal these secrets or override these secrets but because pointer masking can lock down what do you physically see which physical pages and also virtual pages and then you can protect that such kind of vulnerability will not be able to allow attacker using the current execution context to reference or corrupt any kind of the secrets outside of their predefined memory regions and this is exactly what the hardware memory sandboxing is doing and is provided by the pointer and masking isolation feature essentially it's slightly even more than that because you can have multiple different execution contexts which are locked down and they never be able never be able to reference memory which does not belong or are not configured for them to be synced and this also allows you to implement features like not only sandboxing but also to for the low cost devices you do not need to do full context switching because essentially the execution context is cannot corrupt their metadata between themselves because they kind of lock down you might not do a full context switch which you can save you performance so this is what essentially does it do and from the mtvac perspective what can what the how the pointer masking can can help essentially can predefined specific boot software can only be able to reference the memory for a very small specific subjection of the memory so then if you want to glitch the mtvac register a random corruption of the random bit will most likely do not allows you to execute your custom code or shell code because you will not even see that it will be locked down in specific execution context which will be very hard to predict what type of bit you need to precisely glitch to be able to end up in the predefined memory sandbox so that's what it is and i would like to hand over to alex thanks adam and i will be finished our representation and actually first of all i want to address some acknowledgments for nvidia team and it's been a lot of people involved from gpu system software and our risk five hardware team i want to thank you also product security and especially our psor team where they've been hardly working on this issue because in the beginning it's been not obvious where this issue need to be reported and actually which parties we need to disclose this issue we need also to thank you sci-fi and risk five foundation because risk five foundation take our concerns very serious and address this issue to whole ecosystem and also security team got created also sci-fi been very pleasant during the disclosure process and help us to understand this issue and side effects more deeply in the summary i want to actually summarize our research and first part we also cover some type safety languages and formal verification um with the idocore and spark of course it is minimize some attack surfaces with the memory corruption issues but it is not a silver bullet and some issues can be still exist and especially it's hard to mitigate some um undefined behavior or uh race condition attacks and of course uh in the end the code compiles to the native code right and to machine code by the compiler and formal verification happens on early stage before this transition to intermediate representation happens and all the compiler optimization applies it's still some room for undefined behavior and a lot of other interesting things can happen um there are cpu isa bugs exist right so and we found two uh interesting side effects in uh risk five isa and this actually real world attack scenarios can combine with the physical uh attack such as the fault injection and in combination with software exploitation uh techniques it can lead to very uh realistic and impactful attack scenarios and of course disclosing the isa bugs and stuff and we need to basically uh pay more attention on our open isa and basically how these bugs can be addressed and what kind of way and path to reporting it will be exist for the researcher right thank you very much for your attention and uh we will be happy to answer the questions


Then tell me what went through your mind when you saw Kyrie and that shot go off? It looks like from as soon as it left his hand was going in I was just praying and went in a little bit more But now we we had a play we switched it up last minute Kai came off his open two times in a row And then he's kind of just let him go to work. Let him do his thing. So, you know, he had a great look Great move Yeah, it's a trust the reaction is also priceless when you watch it back and see how you guys lit up You guys ran over and swarmed him. I think um, no, we kind of took it, you know, we were down So we tried to take the game. That's what we had to do. We fought back Relentless the whole time And we trust in each other.  I'm just staying focused and being poised throughout that whole game Obviously there's a couple times where Kevin was getting frustrated. We just let him know he's good and keep playing when You have a situation I mean when you guys were down with it 18 Yeah on an extended 35 before yeah, was that a matter of playing harder or picking up ball pressure or what? You know, what kind of changes is I don't know. It's basketball.  I think it's a numerous a bunch of things that you know for us that we need to do every game But we put ourselves in the hole and got ourselves out. I Know when you're winning you're having fun But can you just describe how much fun this time has been for this group? It's been a lot of fun You know just just seeing this team come together and build each game has been great So, you know we got a lot more games to go and looking forward to it


The statue does not possess hands or facial features. The limbs taper off into rounded points, and the head is a smooth surface all around. The default posture while under observation has the statue reaching upwards, head tilted as if facing the sky. Composition of the statue is currently undetermined. Materials testing has yielded inconclusive and contradictory results. If the statue is not being observed, it will relocate itself to a point immediately behind whomever is in the containment site and assume a threatening posture. No noise is made during this relocation process, so the precise method of locomotion is as of yet unknown.


About three weeks ago, I got a call from a customer of ours. He's like, hey, I'm winning some help. And I started talking to them, and they gave me all the details. We picked up the freight. We arranged special trucking. We booked it for the airline. We monitored all through the weekend. Freighter rider, 7 AM on Monday. By 11 AM, it was delivered. Around the world, we're sourcing and moving goods. It's everything from the flowers on your table or the fruit in your breakfast. It's the smartphone in your pocket. From a national perspective, 270,000 jobs are needed to be filled every single year. There is a huge gap in potential candidates to fill all of these roles in trade compliance, especially here in Washington, with all of the new companies and the new industries that are emerging. In all of my previous roles at Amazon, at Microsoft, at Costco, I was hiring. We need to get the message out, because there is a talent gap. Highline College is the most diverse community college in the state of Washington. The new bachelor's degree in global trade and logistics is a four-year degree. And it's built upon our two-year associates degree. The students that enroll in the baccalaureate degree will come away with skills that industry needs. Once this program came up, I was really ecstatic to find out that I could just take my previous associates and jump right into it, only having to take a couple of minor extra classes. So the degree pathway is very flexible, and it's a very convenient way of coming back and getting the skills that they need. This degree prepares you for everything. Highline is perfectly and uniquely positioned to give students all of the opportunities, all of the chances for networking, and to be able to pivot their curriculum, depending on what's happening in the region or what's happening in the world. As the opportunity came to expand into the bachelor's degree, it was sort of a natural for us. Built upon Highline's international business program, it's international initiatives. In addition to that, it has the Center of Excellence for Global Trade and Supply Chain Management. If you look at the entire state of Washington, 40% of all jobs are related to international trade, which makes this region one of the most trade-engaged states in the country. This is one of our seven distribution centers that we have in the US. Anytime there's a disaster, we have product that we can send within 24 to 48 hours. And through this facility, and the other six that we have in the US, we're able to send approximately 400 shipments internationally every year, and then about 2,000 shipments every year here domestically, so that equates to helping tens of thousands of families throughout the US and internationally. Having a degree, it's gonna open more doors, more opportunities to grow and to develop. If you're working in supply chain management or logistics or some related field or wish to be, then come to Highline and join our bachelor's degree in international trade and logistics. Because the world doesn't stop at 85.


This lecture is titled Mosaic Patterns, module 2, in which we would offer concluding remarks in terms of various layers of discussion we have conducted in the last few lectures. The lecture itself is divided into three parts. First we would offer concluding remarks by establishing connections between various lectures. Part 2 will deal with post-colonial Bildungsroman and beyond, part 3 would offer new voices. Let us first of all look at the outline of module 2 in order to have clarity about our attempt to bring various strands of writers on writing. This particular module, as we had stated right at the outset, was actually centered on the writer's vocation and also the cultural demands, changing cultural demands on the writer. The rationale behind that open-ended starting point was related to our attempt to let you explore many possibilities. They may be mythic, historical or cinematic, but various images of the writer were evoked and the idea was again to let you really freely explore your own viewpoint. The teacher's personal connection to the writing process was also shared to establish better dialogue because as we acknowledge right at the outset that the kind of course that we have presented to you, there is not too much of that tradition of offering creative writing courses within the university setup and therefore I wanted to establish the rationale for offering such a course both in academic terms and in terms of the creative impulse of the teacher concerned also. The next lecture in which we talked about creativity and writing, etc. This sort of was meant to enlarge the framework of our discussion regarding creativity issues because there is constant research in this area and we wanted you to be familiar with the research and some of the practice in different countries so that you can choose the ideas that appeal to you most. You are also aware of how different people conduct these activities and finally you are able to arrive at your own point of view. Again I emphasize that time and again because there is certainly no desire to develop any imitative mold but it is important to see what is happening in the rest of the world. So the third lecture in this part actually also carried forward the same idea but what we did is to evaluate various famous manuals on writing and we offered you insights from these manuals and in the process we evaluated and critiqued them so that again you have some idea about what we value and what we do not value. But we also encouraged you to read these manuals on your own so that you can decide whether what we left out was indeed what you also wanted to leave out. The fourth lecture of this module it revolved around writers on writing and in the next four lectures what we tried to do is to share the classroom work that was done while teaching this elective in IIT Bombay. The elective was offered at the fourth year level as I have indicated earlier and it also actually was more of a spontaneous process because I had a structure and I definitely had a plan of action but very often the students also had questions which I added on. So all these are shared and the two writers that I have presented in this segment are writers whose work we studied in the kind of framework I have provided here which is somewhat different from the traditional way of teaching literature because here we actually started with the writers on writing and we looked at Camus literary notebook where he separates it from autobiographical writing. So it was felt that you know this offered a way of helping the student understand the demands of the literary process which is not purely an autobiographical process it of course has elements of the autobiographical aspects of our lives but at the same time writers undertake an imaginative journey where distancing is also a very important part and of course this is generalization but I think for people who are beginning to write this is a very important consideration and therefore we looked at the literary notebook and also we encouraged interrelated reading that is reading of the literary notebook along with the creative work of that particular writer. Similarly, we went on to look at Atwood and her notion of the writer's self in the case of Camus the notion of the self offered by Camus was somewhat different because he was interested in looking at the self looking at oneself and also he did not have a sense of split that Atwood talks about whereas Atwood feels that the writer has the other self and of course we looked at couple of essays and we also tried to unpack her allusive essays so that we could respond to the content in a deeper manner. So this was an exercise in reading but reading which is targeted towards the writing process and we also gave you samples from the work that the students had undertaken so that you can yourself see that none of these are really out of reach because sometimes when you are not exposed to literary discourses you can feel very daunted by the material that is presented before you. I have really tried very hard to demystify and also take care of let us say conceptual and theoretical issues but at the same time I have tried to offer it in a way that they become comprehensible to people who may not have in-depth awareness of the discourses. It may therefore then happen that those who have in-depth awareness of these discourses they may feel that many of the issues are missing but I think I tried very hard not to even allow that kind of feeling to slip in. So it is a blend of sometimes intellectually sharper theoretical analysis but often the whole attempt is to make the material accessible and encourage you to read, enjoy and learn from these deep insights offered by great professional writers of our time. The other aspect that is actually very close to my heart is related to our presentations on Indian writing and very consciously we started with writers and narrators because often times in our oral tradition which has its own political dimensions we find that there are such capable and sophisticated narrators who are really not designated as writers but it also has another side to it which is related to the fact that there is this collective sharing of stories, myths, legends and that also enriches our context a great deal. So I sort of felt a strong need to make sure that the notion of the narrator is also placed before you for your own assessment and therefore we started with this notion of the writer and the narrator but of course we have pitched it within the framework of folk plays and folk tales. It does not mean that a novelist is not a narrator or a writer whose writing is not a narrator. The writer is also a narrator but a narrator within the oral tradition has a very different dynamics and I think there are issues that need to be addressed here also and I leave it to you to do so. The other aspect of this presentation is related to the take, our take on contemporary Indian writers and their search for creativity in the post-colonial perspective. So what has been done here is to look at the number of great examples and of course you know I would not go into these examples very much but we have emphasized this element of search which I will also briefly describe later on but what I have also tried to do is to place it within the historical context so that we can see the differences between the nationalist period and writers and thinkers of that period and what writers are doing today and this is not to build any hierarchy but to try and understand the historical dynamics of change and also the resultant you know forms and themes that have developed. So two lectures are devoted to that and of course the final lecture is the lecture where I am trying to tie everything together but what I have done is to advance some of our ideas from this post-colonial period which is a very very rich period and so let me talk about that in some detail. I have placed the notion of the Bildung's Roman here once again primarily because we are interested in these young writers for also dealing with their evolving sense of the self and Bildung's Roman from that point of view is a very very useful framework for discussion but I certainly do not want to stay with Bildung's Roman but it has influenced the choice of material in terms of at least the initial post-colonial period, the memoirs that we have chosen, the essays that we have chosen but at the same time we will also see what this Bildung's Roman is so that once again you are clear about it. The reason I placed Bildung's Roman within post-colonial is because as I said it has structurally this element of search which you find not only within the post-colonial Bildung's Roman but also Bildung's Roman in the European context. It is a form with close formal connections to biography, memorial, cinematic form. There are other similar genres which right now we won't look at but you can later on dip into it in order to pick and choose. What again is fascinating about this form is the fact that it deals with the protagonist's development from childhood to use and the quest for identity is a dominant theme and it is often shaped by overcoming various audience and therefore you know you begin to understand the kind of changes that are internalized by the character. So in that sense it's a fascinating form and therefore you will see once again that we picked up the memorials of thinkers and writers like Tegor, Gandhi and Nehru although that was an ambitious exercise considering we you know club them together for just one lecture. But the idea is that you would begin to think about these writers and their viewpoint, their writing and also read them in depth. But what we added here is the issue of post-colonial period which is defined by the introduction of English language, western science and democracy and the kind of tussles that ensued because India is a pluralistic society and there are number of indigenous systems of thought that coexist. So the kind of tussles that ensued this is what we have focused on but we have also confined ourselves to these three great thinkers and writers of the nationalist period. What we would like you to do is to move on to another notable period which we have not touched on except briefly in module one is the period of 1980s and 1990s especially for fiction. Salman Rushdie's Midnight's Children I think in that sense is also seen as a post-colonial building's roman but it is not just that it is much more than that but I have given that key idea here so that you have an entry point for that very complicated fantasy. It is a comic epic you can start with that key point and also you can contrast it with Arun Dutty Roy's God of small things which is seen as a tragic epic. As I said these are not the labels that define the work completely but in terms of Bildung's roman and in terms of construction of identity under pluralistic systems I think it does give you very deep insight which is the role of fiction it really engages with spaces that are left out from analytical framework. We would also actually like to develop better understanding of what the writers of this particular period have to say about scientific issues because we notice that Tagore engaged with scientific issues because English language science and democracy these were three ideas that gripped the imagination and it was these three were seen as important elements of decolonization process. So we would like you to look at Grimus which is a book which he of course doesn't think very highly of himself but I think we should need to look at it all over again especially because of his SF nature. Arun Dutty Roy's of course book I have already mentioned the novel but also political essays such as the end of imagination. What we notice here is that some of the writers have actually not necessarily you know engaged with scientific issues in terms of their fiction but I think it's interesting to note that all three of these important writers have handled the issues of science and technology in their own way by critiquing our society our country and our national policies related to science and technology. Amitabh Ghosh is the Calcutta chromosome the Hungry Tide I think both need to be also looked at very carefully both for their you know aesthetic value their significance but also for science and nature related ideas that have been internalized and expressed and explored and also the essay on nuclear science policy title countdown. So this is by enlarge more of a reading list but we definitely want you to carry forward whatever arguments we have presented before you by connecting it to a recent framework and then bring it to your own immediate surroundings. We also actually have been fascinated by the kind of impact that popular fiction like Chaitan Bhagat's 5 point someone has had on a large number of our students many many students who actually were not readers of fiction in English have started reading it after Chaitan Bhagat's 5 point someone which is rather interesting phenomenon because Chaitan Bhagat does look at the underbelly of this highly idolized engineering education system and the syndrome that is that it represents and also we have discussed it earlier in relationship to the film 3 idiots although this is in the realm of popular fiction and you know popular cinema but I think both deserve a careful look and as also social phenomenon we would like you to contrast Chaitan Bhagat's piece especially a small segment in terms of what Gandhiji said about machines while in conversation with Mahadev Desai this particular part where there is a parody of the teacher is extremely popular amongst the students and I suppose I know why but I think I'd like you to have a look at it and also enjoy the contrast but also think about the kind of contrast where Chaitan Bhagat's teacher Mr. Professor Dubey in the novel he is interested in celebrating machines is teaching mechanical engineering and he says fall in love with the world around you Mr. Professor Dubey smiled for the first time and I am reading from the text for you will become the masters of machines so certainly a very very different point point of view from the one that Gandhiji raised in terms of a sort of sense of philosophical investigation or what it means to think of machines and I think both from biological systems that is biological human destiny to the destiny of the nation I think Gandhiji had a seamless sense of connection whereas here the language is entirely different and unfortunately this doesn't really work out as you will discover in the novel so I think we need to look at popular fiction of this kind also with you know great seriousness and also see why more and more people are reading this because this is not a simple case of acceptance of a given system but a way of actually also trying to critique it and understand its complications finally I want to let you know that we are also searching for new writers when we talk about our interest in how the whole issue of English language and scientific western scientific knowledge versus indigenous models etc. became a key element of decolonization we have also been searching for writers and one of the writers who gripped our attention is actually Isar Asar whose actually obituary introduced us ironically to his work and I won't sort of read this whole thing but you know he died a writer whose work was hardly noticed and it is very much sadly in the Pyaasa Mold where the writer in the garret struggled against the world because although he was full of talent and also you know great deal of intellectual curiosity but somehow despite his participation in the you know progressive writers association and also his prolific writing career I think somehow except those who read Urdu I think the work has not reached us so let me place the work that was actually mentioned as I said this was in the obituary that Seema Chishti wrote and I am very thankful for you know for this write up because it woke me up to what different people have been doing I've been investigating this science and literature connection for a very long time and it was very touching to read this whole profile but in terms of the work that he published the first science fiction novel that he published was Adhi Zindagi then he went on to publish a landmark collection of science stories and poems called La Shariq which means the non-participant and then his other novel is called Masheenoki Bhagavat written in 1953 I just want to place these remarks here from again Chishti's interview where I think Mumtaz Rizvi one of the commentators recall that Assar was so far ahead of his time and so sure of being so that when he wrote a poem called Dinosaur 50 years ago he noted that people wouldn't understand it just then and again you know in terms of this lack of recognition that I just talked about his family was very sort of I think very passive in some ways and also in some ways reconciled to the fact that he had such a tough life where his work was never recognized he wanted to be read he published he was not in Kafka mold he was more in the Camus mold and he wanted to be read but after his death his family talked about his marginality and this is what they had to say and as I said it really moves me each time I read this he says being the people acquainted with facts and fiction we know how people in India treat their writers not just in Urdu but also those who write in Hindi Punjabi and any other language but English so it is all right said a member of the family Riley finally our interest is in generating discussion and creative work on the ways science and technology has pervaded our lives this is one of the themes that runs through our attempt and not because we are placed in the IIT setup but because we are placed in a world where science and technology has really begun to make very deep inroads in our lives and in our consciousness and therefore we want to see this pervasive and powerful impact of science as an ambiguous sign of rationality and progress we want to deliberate on or discuss contrasting views and ideologies of science technology and social value also continuities and discontinuities of the discourse that actually during the Swadeshi period when Gandhi ji wrote Hint Swaraj posited the indigenous verses the non-indigenous in a very sharp manner we want to see the continuities and discontinuities of that discourse and we want you to arrive at your own conclusions we don't really have set conclusions to offer you finally we are committed to new voices and new themes and therefore I would like to say that our emphasis is on you and your voices we are really not confining ourselves to only one single possibility although we have our own choices and our own interest in different kinds of voices but I think we would like you to explore your own voice as clearly as possible in that connection I think it is very very important to place Rob Pope's quotation of E. M. Foster at the centre of your attempts and this is really a very problematic area because as I said often when you become a reader you are daunted by the reading process but writing process is a different kind of activity so the separation has to be worked out by you this is what Rob Pope has mentioned look before you leap is criticism's motto leap before you look is creativity's so I think when I was looking at this and looking at the demands that it places I was reminded of Kabir's words where when he says So basically take a plunge and in fact we encourage some of our students to take this plunge and we offer some of the new voices in terms of what our students have been writing on their own they've not been coached or schooled but they agreed to share their writing we are very thankful for that and that's a section where I think I'll leave it to the students to present their work to you I'd like to introduce Smita Pindharkar you have seen her in lecture one of the second module when she read out the part of Simone de Beauvoir I would say so very well in this sort of segment I have asked her coaxed her rather to read her creative piece after her interaction with her last time I slowly discovered many aspects of her research and creative work both in her own words she wants to be described as a student of sociology or social activist and a poet who writes primarily on the travails and boons of her diasporic identity a life passed between three countries Tanzania the United States and India has been and continues to be the central subject of her poetry and prose so here is Smita a feminist in pieces I am a feminist in pieces with a thousand grains of life scattered over three continents I have no real home nor a sense of belonging the voices around me often say that I am living in three diasporas breathing in three cultures communicating in three distinct idioms I often feel less like a citizen of the world and more like a nomad of the imaginary traversing a terrain and incessant borders that exist only for me with roots that barely grip the earth I stand on and a voice that seldom resonates with the souls around me I am a walking contradiction belonging to no particular world to no particular continental womb I am a feminist in pieces born of a black mother miles and miles away birthed of a culture that celebrates color rhythm and unity I am weaved into a brilliant quilt of reds blacks golds and greens I have stood with my fist clenched in revolution against police brutality for taking back the night and towards building a stronger nation but in the end I have always stood alone at the crossroads of this deeply matrixed life and wondered about which one leads home I am a feminist in pieces fighting for the rights of my sisters with a head wrap as my crown and a body studied with symbols of my history I have taken more than one journey towards the light towards the freedom that my sisters and I sought in honor of sojourner truth Harriet Tubman, Asata Shakur and Angela Davis still tied to my mother's umbilical cord I walked all knowing that I was black African beautiful and destined to fulfill the dream I walked all black African and beautiful or did I struggling to hold myself together bursting at the seams with black pride American patriotism and an indescribable Indianness I'm a cocktail for which there is no recipe the voices inside me say that I am less a routed revolutionary and more the seasonal pollen that floats above the fields settling wherever the gentle and furious winds take me I belong to no one place no one culture no one ideology I am an alien wherever I go simply because the soil that I hover above never takes my roots never beckons to me never embraces me I am a feminist in pieces asking questions for which there are no real answers breathing movements of which I am never really a part of because they say I am seated by birth at the top of the social hierarchy a heathen of sorts because of my Brahminism an oppressor because I have light skin and arianesque features a perpetrator of violence against the invisible masses because I own much more than a shack situated on the banks of a polluted city a feminist in pieces my voice suffers a spiritual and moral laryngitis consumed by a guilt that I understand but will not own bothered by the social infection of poverty and oppression I have cared for and cared about those who have laid blame squarely on the shoulders of my ancestors and I my sense of conviction and pride rickety from accusations tremulous under the rage of the benighted beasts of my castocracy and erratic in the presence of contention are reduced to that guilt that I understand but will not own will not wear that guilt I understand but cannot feel the broken people all over the world in sync with their hatred of everything I embody rebel against the permanency of their untouchability reviling everything that reminds them of centuries of collective humiliation dehumanization and a life entrenched in suffering but I too have suffered my gender my feminine mystique my voice from the lips that cannot speak have also been exploited battered and forced into a deep slumber of silence so now I often wonder am I not broken to I am a feminist in pieces seeking to deconstruct that which I am to reconstruct that which I think I should be willing to rage against the winds of resistance I'm a feminist carrying my pieces with heart and passion for cause which I cannot even call my own for cause that they will not allow to be my own cast aside raced aside all this engendering has collapsed me unraveled me crippled me left me as nebulous as I was before the union of my parents spirits but still I rise with my pieces in tow because I see how feminine feminism replenishes me I look forward to the day when my black mother draws me into the strength of her breast when I am no longer just an alien buffalo soldier trudging forth past the red rock giants and when this country of my skull accepts me as a woman without deference and reverence of pativrata a feminist in pieces no more will I be I will have transcended the chaos of three diasporas three lives in three distinct women my holy trinity will meld into one and I will finally be a feminist in peace in one whole piece thank you ever so much smitha for this very gripping and moving piece I'm sure you know we can talk about it endlessly and we will later on thank you very much thank you the student who will present her literary work is Rashmi Chaudhary I had discovered her voice and her expressiveness in number of different sessions in IIT where she presented her poetry I think you yourself will discover it and see the kind of candor and power her voice has I have requested her to introduce herself in Hindi although I just do want to point out that she is equally comfortable with English but that's a second language very clearly a second language which she gradually picked up through textbooks and through college education and now for her research is a vital part of her education and she considers this second relationship as a vital element of her critical and creative awareness so she doesn't really have an uncomfortable relationship with English language though in Hindi flows from her heart so her context so Rashmi she will introduce herself that I am very influenced by the literature of Prakriti, which is unique in the Indian language and from my personal view. In the second language which I will say that when you talk about between a person you sometimes have the presence of words in your language You lose it somewhere when you go towards the other language from one language to the other. But when you try to understand the other language or try to self-identify it, the same language starts giving you a new understanding of different things. And even if we talk about any language, even if we talk about any culture, every new language, every new culture, every new understanding of each and every new language gives a deeper understanding of its identity. This is my opinion. Today, I am presenting some of my favourite songs to you. I hope you all will like them. At the beginning of my songs, I would like to start with Triveni. Before I present my song to you, I would like to tell you that Triveni is a unique form of Hulsar. Hulsar is written in three languages. The speciality of this language is that its three languages are independent. If you don't see any Taratamini in the first and second languages, the third languages make you understand it. For example, I will present a Triveni written by your friend Hulsar. Sometimes it happens like this in the market. Sometimes it happens like this in the market. It was fine. I didn't have so much money in my pocket. At the same time, I had lost to you. In this Triveni, you will see that when you say the first language, sometimes it happens like this in the market. The second language, it was fine. I didn't have so much money in my pocket. The third language, it makes you understand it. You are talking about a relationship, the feelings, the duality or jealousy in it. Here are some of my own writings. My first Triveni, itala. Keep the word of my words safe. Keep the word of my words safe. This is not a stranger. This is not a stranger, but your true self, the illegitimate child. My second Triveni, hadsa. Anthas ki ghairai me jo bhi upjha. Anthas ki ghairai me jo bhi upjha. Sari nami khar patwar ne sokh li. Zameen banzar na thi. Magar bheej baaj ho gaye. Apni likhi wei kavita aapke samuk prasut kar rahi hoon. Diska sheershak hai aapki ek talafwar. Yeh kavita mukhi rub se, kisi kavi ya kisi lekha kya kisi kalakar ki abhiyakti pe honi wale vahad vivaadon ya, kahan ki bahas ko juh hai, ek abhiyakti ek swar deti hai. Meri aakhe tasfeeron ko sarf dekh ke ruk nahi sakti. Meri aakhe tasfeeron ko sarf dekh ke ruk nahi sakti. Meri umliyon ke liye unhe chhukar mehsoos karna beihat saruri hai. Rang, shayad issi meri hasat kahan. Muche berkuf kahne ki galti bhi ki ja sakti hain. Mager meri liye tasfeeron ka sarf aakho me atak ke rahe jaana hawas hai chande lam hoon ki. Meri liye zaroori hain ki unhe lamz ke ahsaas se zinda rakha jaye. Meri umliya unhe sarf chhuti bahar rahi hain. Meri umliya unhe sarf chhuti bahar nahi hain. Unhe unke hone ka ahsaas dilati hain. Ke bhi tar ug rahi thimi thimi dharkano ko raftaar deti hain. Kabhi kabhi mujhe yuhmi lagta hain. Musavir inhe mehazik frame deta hain. Kabhi kabhi mujhe yuhmi lagta hain ki musavir inhe mehazik frame deta hain. Wo to bas mai hoon jo un sabko apni koh mehpale khoom rahi hoon. Iss par bahas mubahise hain. Iss par kahi sawaalu jawab hain. Iss par kahi jhagde fasad hain. Iss par kahi zindagiye hoon sawaal attke hoon hain. Aur mai haran ho ke bas yeh sush rahi hoon ki tumhe yeh sab hak diye kiste hain. Aur aakhir mai rige pesh hain meri apni likhiwe ghazal. Umir hain aap sabko pasanna hain. Basahi hain jab se shahri rafta rafta Basahi hain jab se shahri rafta rafta Bikhar ne lagi hain yeh ghar rafta rafta Bikhar ne lagi hain yeh ghar rafta rafta Basahi hain jab se shahri rafta rafta Bikhar ne lagi hain yeh ghar rafta rafta Yaro sharafat burarog hain pal Yaro sharafat burarog hain pal Yaro sharafat burarog hain pal kyu hauta hainlerin asr rafta rafta kyu hauta hain asr rafta rafta Wododh hain chune phalak nila nila Wododh hain chune phalak nila nila Wododh hain phalak nila nila Udaude hai chune phalak nila nila Simatne lagi hai shazaraftarafta Simatne lagi hai shazaraftarafta Khabardaar jis din se hum hongi aro Khabardaar jis din se hum hongi aro Khabardaar jis din se hum hongi aro Wuhu jaingi be asaraftarafta Wuhu jaingi be asaraftarafta Hesa jish naidaur ke dushmano ki Hesa jish naidaur ke dushmano ki Utaareenge khanzar magarafta rafta Utaareenge khanzar magarafta rafta Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara Wuhu bachi thi kaltak jo akhbara You have made me stay in this house for a long time I have made this house for a long time I have started to build this house I have started to build this house Thank you Thank you very much, Reshmi You have shared your experience with us We would like for you to reach your needs And we are listening to you in the same way Thank you


Hello friends, I am Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. In this video, I am going to explain how you can use fprintf function in pie handling so that you can store data into a file. So fprintf is similar to printf. So if we use printf, we can display integer, float character or any kind of data on an output screen. So similar to printf, if you use fprintf so that you can store int, float character or any other data type value into a file. So before I start writing the program, I just want to share one information. If you go to description of this video, you will find links of various playlists related to C language so you can watch them too. Now I am going to write a program in which I will show you how we can store integer data into a file, how we can store data into a file. So you will realize fprintf is similar to printf but the difference is printf displays output on console whereas fprintf stores output on a file. So I am starting the code. So first of all I am going to declare a file pointer, then integer variable n1, float variable n2, then I am going to open a file. So let's say file name is data1.exe and I am going to open it in w mode. And if we use w mode it means if file is not available it will be created automatically. And if you want to specify a particular path like this file should be created on a particular location.  So this path you can follow. So first you need to mention that write location, then folder location and then file location. And let's say if your file is not open properly so we can check this. If file pointer is equals to null it means file is not open successfully. So if file is not open it means there is no requirement to write something into that file. If this file is not available then where you will write the data. So before writing the data we need to check, we need to apply a validation condition that file is available or open or not. So if fp that is file pointer is equals to null then we can display a message on console. File not found and after this we can use exit function which will terminate the execution of the program. So if file is not found then from here a program will be terminated from this point and after this whatever the statements will be they will not be executed. And this is important because if file is not opened or not found so there is no requirement to execute statements which are written after this. And if file is available then fp will not be equals to null so it means this condition will be false and the statements which are written after this will be executed. So let's say I am writing print f enter number or enter your age so that it will be in either form so over 70 and percent n1. So the age of user will be available into this n1 variable. Now I am going to use this f printer function so that I can store the value which is available into n1 variable inside a file. So I need to use fprintf and file pointer through which our file is linked so file pointer is linked with this file. So fp, then let's say backslash n for 70 n1. So this way the number which is available into n1 will be stored on the back of this format specified into this file. So now your n1 value will not be displayed on console rather it will be stored into a file which is linked with this fp. So let's say this is your data 1 file so your age will be stored like this. Now if you want to need enter your salary and let's say this time we are using percent f and n2 variable. So here you can see n2 is appeared as slope so we need to use percent f so now if I want to store the value so I can use fprintf again fp, backslash n this time I need to use percent f, n2. So this way whatever value available into n2 will be stored inside this file pointer. So let's say user entered 1000 to 1000 will be stored here and it is a flow value so 0.00 will get circuit off. So this way you saw fprintf can store integer, flow, care, develop on any kind of value into a file. So after these operations at last you can use your file and then you can use your main function. So this way I hope you understood how we can use fprintf function so that we can store any kind of data into a file using the concept of file handling. And I hope you understood whatever I explained in this video so you can try this program in your laptop so that you can see whether the data is written into your file or not and specify a proper path so that you can find this file where it is located and if you want to watch more programming related videos so you can go to my channel and there are various videos are available or you can go to description of this video so you will find various links of playlist related to C language so we will follow them. So thank you for watching this video.