Why Knowing How To Harden Your Executables The Right Way Is Important

If you are not a programmer then you probably do not know how much goes into making the programs that you use on your computers every day. Even if you are a programmer, there are some people who program at a very high level of abstraction when it comes to computer layers and even they do not know how complex it can get. When you take a look at a computer in terms of complexity it starts to become like an onion that gets more and more complicated the deeper that you get. And thankfully the people who were programmers before the modern crop took a lot of time to try and take some of that complexity away. They wanted people to be able to code their programs quicker so it could be used in a smaller time frame. And that is what we have now.

But there is a problem when it comes to the abstraction of complexity from the programs of today. Just like we said earlier in the article, there are a lot of programmers who work on the higher level of abstraction when it comes to doing their job. And even though they do not know it, when you work at that level of abstraction and you do not know what is going on underneath, your programming skills are not as good as they could be.

When you are a programmer no matter what level of abstraction you work at, you are still manipulating the bottom level of the system. Even though you are not seeing it with your own eyes, you are still doing it. And not knowing how the lower system works makes you unable to take advantage of the knowledge that will make your program more efficient. In the era of gigabytes of RAM, programmers are less worried about the efficiency of their programs even though they should be.

A good example of this would be your modern day browser. In the browser you have the web technology that a lot of developers work on today. This includes HTML, CSS, and JavaScript. We will not include the server side languages such as PHP because those are executed on another server all together. But then you have the technology that the browser is made of. For example the browser Firefox is made from C++.Then you have the operating system that the browser is sitting on, which is usually done in C++ or C. The operating system translates its messages to bytecode that the CPU can understand. So as you can see, that is about 5 layers of complexity right there. So knowing how all of this works together can make your program a lot safer.

If you do not understand how all of this works then you make it easier for a black hat hacker to come and take over your system. Even if you do not know the exact details of how all of these layers work, you should have at least an overview knowledge of how it works. When you are dealing with high level hackers you have to understand that you are dealing with people who know all of these layers. They take their time and study them so that they are able to find an entry to any system that they want to penetrate. And because of your lack of knowledge they will be able to do so.

If you are a JavaScript programmer you do not need to know how to program in assembly. But it would help if you are able to at least know what is going on down there.

Lee's non-technical background allows him to write about internet security in a clear way that is understandable to both IT professionals and people just like you who need simple answers to your security questions.