Last week we discussed the prerequisites and the various possible paths to become a hacker. If you chose C# Fundamentals as your homework assignment, then you learned the basics for learning how to code. Although you learned the basics of how to code specifically in C#, the concepts can be applied to most coding languages. This is important when you want to develop scripts or executables to develop defenses or launch attacks.
If you chose the Introduction to Linux course, then you learned all about the Linux operating system. This is an extremely important tool for the hacker because the source code is well documented and available for free distribution. This allows hackers to fully customize their OS to suit their specific needs. In addition, Linux has many security tools that can also be used to create or open attack vectors.
If you chose Internet 101, you learned the basic building blocks for traditional hacking. To penetrate systems or defend systems, you must know how information travels through the internet to a device. Although this class may seem elementary, the concepts and information are fundamental to understanding attack vectors and network vulnerabilities.
The most important thing that you should have learned from last week’s homework assignment is that there are free tools out there to learn how to hack. You will likely utilize those same resources again in the future.
Now that you know where to get information, let us begin with laying the foundation. The first concept to grasp are the basic buildings blocks of information.
The smallest unit of stored information is the bit or BInary digiT. The bit is either a 0 or 1. These 0s or 1s can be combined to create binary code. When 8 bits are combined, a byte is formed. Certain 7-bit and 8-bit patterns will form the basis for letters and numbers or ASCII. ASCII stands for the American Standard Code for Information Interchange.
This concept is important because it is also fundamental to digital transmission. These bits, 0s and 1s, also represent “on and off,” “yes and no,” and “true and false.” Binary as it pertains to computing, represents only two possible outcomes. This collection of 0s and 1s or binary are also referred to as “machine language.”
So how are these 0s and 1s transmitted through wires? The answer is pulse. Remember, 0s and 1s can also equal “on and off.” For example, take a flash light into a dark room. Turn the flash light on and off four times. You just made a pulse with your flashlight. You also produced the binary code 1010 or “on off on off.” Inside the computer, transistors achieve this same result by switching on and off. When these transistors switch on and off they are also allowing or stopping the flow of energy in a circuit. The lack of energy in a circuit would produce a 0 and the presence of additional energy in a circuit would produce a 1. These energy pulses occurring within the computer and flowing through the wires are transmitting binary code. These pulses of binary code are then received by the computer and translated in to ASCII, which we see as letters and numbers on our computer screens.
Some of you may be asking, “why are we learning this?” This has nothing to do with hacking. Let’s look at the samurai. They were masters of their profession. They had to understand every aspect of themselves, their weapons, and their adversary. Like I stated in our last class. I am not here to sell you “snake oil.” I am here to build you from the ground up to understand every facet of hacking. If you stick with this and learn the foundational knowledge first, you will thank me when it comes time to understand more complex concepts. If I have you intrigued, take some time throughout the week to read The Book of Five Rings. If you decide to read The Book of Five Rings, think of how you can apply Musashi’s principles of combat with swords to offensive and defensive hacking methods.
In the next lesson we will further explore how information travels over a network.