Introduction

Introduction

Hi. Glad you are reading my book. Hope it will be helpful to you. Why another book on cyber security? With each new book, comes new perspectives and insights. I have often heard the question, “How do I learn to be a hacker?” The usual answer is, ‘You either are or aren’t. It’s just something you do.’ I know this isn’t true. While there are some innate skills you can be born with; the mindset can be taught. I know, just as with other habits and ideas, these mindsets can be cultivated in people. I will show you what I do to cultivate those habits and ideas. I have an off-the-beaten path answer to the question, “How do I learn to be a hacker?” And, as I am often told, it is not what I say. It is how I say it, that is so convincing.

Why this book? The computer world is a fast changing world. The hardware, software and tools are constantly changing. This includes hacking techniques and tools. Links become outdated quickly. Of late, in cyber security bug bounties have sprung up. Now, that has expanded to crowdsourcing bug bounties and software testing. Still, some things never change. They just permutate into fresh scenes with new technologies. This book collates a lot of timeless hacking ideas as well as current software, tools and links.

This brings us to a major point. You have to enjoy change and constantly learning things to enjoy cyber security research and bug busting. There will always be something new. A new operating system, new hardware, not as often but, a new programming language perhaps; new encryption schemes and more. There will always be new terminology. I have found that companies love to rename old tech terms with new tech terms. This makes their books less intelligible to those uninitiated in the newspeak. It probably also makes their products proprietary and subject to some patent law.

Ex. Granules, slices, sectors, tracks all mean the same division of a disk. Just that granule and slice was used by Radio Shack’s TRS-80 and; sectors and tracks are IBM terms. By the way, is that a disk or platter?

This book was written with different aspects in mind. I am sure different people will have different take aways. I am a computer scientist and professional. Among the things I do professionally are technical writing, documentation, run books, user & technical documentation. Also, I reverse engineer. I have done a lot of reverse engineering and figuring out stuff. Troubleshooting. Also, I am a software engineer. Design programs. Program programs. Troubleshoot programming languages to figure out how programming constructs work. Also, I have been an adjunct professor of computer science. I will endeavor to use my all those skills, especially my knowledge, teaching and writing skills to provide some knowledge and insight into cyber security and hacking. This is not just a theoretical book but, also a practical how to guide, with real examples.

Reverse engineering, troubleshooting and hacking require a certain mindset to maintain one’s calm and keep one’s blood pressure low. You will need to cultivate a certain mindset to succeed at such tasks.

Don’t get frustrated when things don’t work the way they are supposed to.

Don’t get absorbed and lost in trying to figure something out. Let things go and come back to them later. Everyone has to learn their limit. If you aren’t calm, you can’t think. If you can’t think, you can’t solve the puzzle.

This book is written on 2 levels with 2 target audiences; adults and teenagers. Everyone can read the whole book. However, at times certain suggestions will be directed more towards one audience than the other. A change of font will be used when the discussion is directed more towards a teenager than an adult.

Who this book is for?

  • Newbies to hacking, reverse engineering and cyber security.
  • College Students studying cyber security seeking a practical outlook.
  • Hobbyists who want to know more about threats to their computers and defenses—in real terms.
  • Computer Enthusiasts
  • Teenagers interested in a career in cyber security, network security and digital forensic analysis.

You will need a plan. There’s a lot to do; a lot to know and; a lot to learn. You have to develop some traits. You have to learn some programming languages. You have to learn something about operating systems and networks. You have to build a lab.

As I will discuss in the chapter “Getting Into Gear”, some of these tasks will require a little work every day. Like piano practice. Other tasks, will require dedicating some time, an hour or more, at least once, if not more, a week. For example, when it comes to learning a programming language, you will have to read up on the language and practice programming in that language. To have any success, you will need to do that, at least for an hour a day, several times a week.

You will have to pace yourself, learning all the different programming languages, operating systems, network protocols, email clients or browsers. The important thing, is not to take on too much at once. The amount of information referenced in this book is equivalent to a college degree. With all the books and time you will have to put in, it will add up to having done an equivalent of a college level degree program. Do not be daunted by the amount of work or time it will take. With patience and persistence, you can achieve your goal.

Personally, I recommend concentrating on one thing at time. That works for most people. Some people need the stimulation of switching from one subject to another from time to time. This works better for some. Just don’t stretch yourself too thin and study too many subjects at once. Think back to school. How many courses / classes did you take a day or during a semester? You can handle more than one subject at a time.

You can start to hack particular technologies, once you have some baseline knowledge. For the most part, once you have some programming language knowledge and some operating system knowledge; you can get started.

My intention is to provide the road map for all the necessary knowledge to be a computer hacker. Those areas [of knowledge] that merely require an overview, I will just give an overview. Some areas I will explain, specific critical pieces. Other areas I will refer you to appropriate literature, books, that cover that subject in depth. I am not going in depth into a subject that is taught well, in another book. There simply isn’t space for me to cover all the topics. That would require a set of volumes. So, I will refer you to other resources or books, from time to time.

A word about electronic references. Links can be quite volatile. Web sites are often not kept up. But, many of these sites have been around for quite some time. I can say, that I have gone through these web sites and when I do give a link, I did go there at least once and; it is a site that has quality information.

Doing your own follow up reading in the areas I mention with the resources I mention, is part of your hacker training. You have to learn to learn. You have to learn to take what facts you have and move forward with them.

For example, the C programming language is essential knowledge to hacking. I am telling you that now. I will repeat that in the chapter on Programming Languages. I will give some recommendations to compilers, IDE [Interactive Development Environments] but, I will not teach you the programming language C or C++. There are lots of books for that. The best, the classic, is “The C Programming Language” by Brian W. Kernigham and Dennis M. Ritchie. The guys who made the language wrote a book on how to program in the language. Good idea to read it.

Get a copy. Read it. Study it. Go to the hacker site I mention [www.hackerrank.com] to practice. I won’t be teaching how to program in C here.

Computers Doth Make Fools of Men

Anonymous

A word about programming and hacking in general, it requires patience. It can be very frustrating. Your logic will not always produce the results you expect. The results can be quite funny and humbling. You will need to learn to deal with this frustration.

As Rousseau would say, “Life is full of hardships”1. Bearing that in mind, may help. Considering the hardship temporary will help too2. Clearly, these things are doable and soluble. Other people write programs and solve these problems. Not everyone who does, is a genius, as portrayed on TV. Many are ordinary people, with average intelligence, who just work hard at it.

Consider your journey to be a hacker, like that of Jean-Franҫois Champollion. Champollion is the man who deciphered the Rosetta Stone. He figured out that hieroglyphics were a rebus. Pictures whose words started with certain sounds, were used as symbols for those sounds. Years prior to the finding of the Rosetta Stone, he studied many things in order to achieve his life goal of deciphering hieroglyphics. This included several languages, Coptic among them.

There are several things that you will have to learn. Then, you must learn how to use that knowledge and skills. But, once you do, a hacker you will be.

1Emile, by Rousseau

2Learned Optimism, by Martin Seligman