"BOFH excuse 37: heavy gravity fluctuation, move computer to floor rapidly"

The what, who and why of hacking


What you are starting to read is an essay that strays from my usual topics and writing style. It is probably the first time I am publishing a document which does not directly address technological issues; instead, this time I will talk about the socio-technological aspects of a widespread, yet underground, phenomenon: hacking. What will not change is my intended audience, which again is hackers, though everybody can freely read this and all my other documents, as that is what should happen when someone publishes something. I sincerely hope you will find this an interesting and mind-tingling reading - whatever that means. Whoever you are.

The purpose of this document

This essay aims to define hacking and hackers analytically.
Or, at least, to define my idea about this matter: I do not claim to possess the ultimate truth about the issue. Since I consider myself as part of this people, some of my views may be too subjective or incomplete, maybe even biased, but it does not matter as long as I assert that this is only my opinion.
If I will have a tombstone when I die (unlikely event), I want this sentence written on it: Think for yourself. Question authority.

What is hacking?

Can dead philosophers shed some light on this issue?
Hacking est divisus in partes tres.
Let us start from the beginning. The word hacking has a double meaning to me, given that it is
  1. a discipline
  2. a mindset
Thus, I shall orderly describe both.

Hacking as a discipline

Hacking is a discipline, or an activity of the mind, because it manifests in countless different ways, each one with its history, customs, constant innovations, apprentices, pioneers, masters, quirks, good and bad practices, good and bad real-life examples, fanatics, disappointed, rules, literature, standards and unique features. Anyway, I think that all in all it comes down two three things, i.e. coding, reverse engineering and networking, which relate to each other in a Kantian/Hegelian process of thesis/antithesis/synthesis, and which pretty much absorb any other activity in hacking.


Coding is the first of the three I want to discuss, because it is the thesis in my model. It is the constructive/creative/positive moment of the triad, because it creates the foundations on which the technologies we are fascinated by are built. I did not use the word programming because that doesn't count non-programming languages such as markup languages (XML/HTML/XHTML should ring a bell - ding!).
As non-newbie coders probably know, writing down some code, fiddling with it until it works and forgetting it is all good and well only as long as that code is for private use and just runs on your own little box. That is why coding itself is not enough to make everything work, other than being one of the reasons behind the creation of software engineering. In a perfect world our code would be (not surprisingly) perfect; it would be everywhere fulfilling its duties, but since every sentence beginning with "in a perfect world" has the tendency to slam your sorry bottom back to the cold ground with impressive violence - as is the case with the current sentence - I must state there is a lot more to it. So, read on.

Reverse engineering

A lot of people are totally unaware of this subject. This, of course, does not imply it is worthless. Reverse engineering deals with understanding and possibly modifying a preexisting system. It represents the destructive/analyzing/"negative" moment, or the antithesis.
Think of compiled code, designed to be understood by a machine. Through techniques which are distinctive of this discipline you can understand it and then change it. Why should I do that, you may ask. Well, suppose there is a bug you cannot find in the source code. Suppose you do not even have the source code, because you are not dealing with free software or because it is lost in time. Suppose an old but excellent product needs to be adapted in order to work with new technologies. Suppose the system you are dealing with is so complex that even the methods it provides you to change it are not enough. Suppose you need to crack a software protection scheme. Suppose you want a program to do something it was not programmed for, maybe by exploiting a vulnerability. In all these (astonishingly common) scenarios you will need to do some reverse engineering.
This also represents a means to move towards freedom: taking back our right to adapt the software we use to our own taste and needs; this process, like a revolution, requires some destruction and tearing things apart to help rebuilding and creating something which matches our expectations.


Unlike reverse engineering, networking is under everyone's not-amazed-enough eyes. But when I explain to somebody how their voice gets from their cellular phone to their friend's they always exhibit that dead fish gaze the reader (if hacker) probably knows well.
Anyway, we have come to the summa of the triad: the synthesis, which is the conflict solving, sharing and "improving together" phase. Networking is the means through which software manifests its natural tendency to improve in time. Think about it. As I write, the year 2007 is slowly coming to its conclusion, and a computer with no uplink is almost only useful as paperweight. Have you ever wondered why software and wine (the beverage, not the emulator) are almost the only things that improve with age? Networking allows a user to notify the developer about a bug, and the latter to distribute the version which - hopefully - corrects it. Documents and standards can easily be made accessible by anyone, and just a few seconds after their completion. Surveys and statistics can be made with great amounts of people in order to let the users decide what the worst problems are, and focus on solving them. Warnings about (incidentally/intentionally) misbehaving software can reach the users instantly. Instead, cars break, clothes wear out, interpersonal relationships deteriorate, people die (terminating the few long-lasting relationships anyway). This is the power of networking: helping people in the natural process of sharing their ideas - and the pictures they took on their holiday. Helping hackers improve current technology.

Hacking as a mindset

Practicing the aforementioned activities does not make you a hacker as much as banging your head on a piano does not make you a composer. Apart from being involved in these practices, hackers share a common mindset.
This mindset fits my model, because it presents the following three distinguishing features:
  1. technological creativity
  2. analytical skills
  3. curiosity

Technological creativity

The main hacker activity is obviously hacking. What is a hack? A hack is a creative, elegant and quick solution to a preexisting problem. The main focus here is getting things to work, whatever the cost. Whether the solution is a ten lines long regex, an inline asm patch to a c++ source or a piece of duct tape, what drives hackers is the Eureka, the "I did it" part of the process. Once it is done, the interest and attention span to the matter decrease. These hacks are essentially unprecedented ways to do something, at least as far as the hacker knows, so this activity requires a great deal of creativity. I applied the term technological to this creativity, because it is the common denominator of hackers: not all of them have let go of what keeps them from expressing in other fields, such as music and art in general. Some did, though.

Analytical skills

Analytical skills are essential to hackers. Learning a new language, be it one understood by people or by machines, can become an almost trivial task if you are pretty packed with this kind of skills, and hackers generally are. This ability set is what is needed to easily understand things. Since hackers have little to no trouble in understanding what they see/read/study, the fun has to be elsewhere, namely in the discovery - the hack, again. Often, possessing an analytical mind makes its owner disregard memory as being futile, and memorizing as a task that should be assigned to machines rather than to humans. Instead, they consider the ability to quickly retrieve the information they need to be invaluable.


Curiosity is what binds the other two features I listed and what is needed to drive the whole hacking process. Having great analytical skills does not imply they will be used; the same holds for creativity. And hackers are generally lazy. That is when curiosity comes in: it drives hackers to hacking. All in all, curiosity is just a desire to increase your knowledge, and without that knowledge hackers simply would not hack.

The purpose of hacking

Hackers exist to improve systems, and that's it. The question is then: what systems will they improve in the future? Note that what follows is an utopian and vague "future plan" for the earth, inspired by sci-fi works and naive in many ways, so take it for what it is.

Through time, hackers were enabled (by previous generations of hackers) to deal with increasingly complex technology. Soon enough, hackers will start to be interested in improving the earth, and in general what keeps humans alive. In order to do that, I think that the creation of a self-sufficient abstract environment will be needed. A virtual machine inhabited by the earth's population and kept functional by automata living outside of it. Think about the JVM: the code that runs inside of it is happier, because it does not have to deal with the underlying complexity and variety of hardware and software platforms. Of course, someone had to create this abstract environment. The same will hopefully hold for mankind: humans will live inside of this environment, without having to deal with non-working bodies and things. Only their mind will exist, and will be free to do anything, without bounds. No one will die, time will not deteriorate anything, and so its meaning will vanish. People's ideas will exist both inside and outside of their minds, since there will be no difference. This abstraction will boost the creativity of mankind to its upper limit, so the moment this environment is created will see humanity begin to evolve much faster, heading towards a perfection that cannot be achieved outside of it. People's bodies will not physically exist, and people's minds will be way more easily healed from diseases than they are now; this will take every human to a state of perfect health, a solid ground for happiness and creativity. The purpose of hacking will be fulfilled, and everyone will be able to create technology (or, should I say logic?) by themselves, just like hackers did because of something weird in their DNA. So, at the same time there will be no hackers, and everyone will be a hacker.
This web site is written in XHTML 1.0 Strict and CSS 2.
It is licensed under a Creative Commons Attribution-Noncommercial 3.0 License.