Taking a look at Hacking Team's Code

Disclaimer: I'm super unqualified to comment on this code - I'm not a professional programmer, and a lot of the languages in the codebase are ones I'm unfamiliar with. Also please don't sue me, it's not like you'll get your reputation back. Or any money, for that matter.

So a short while ago the company HackingTeam was compromised, and all of their emails, source code and files were leaked in a big ol' torrent. For those of you who don't know, Hacking Team are a Milan-based company which contracts surveillance software out to major governments - although, they've repeatedly stated that they don't service oppressive regimes (more on that later).

The torrent's about 400GB, which I don't currently have the time or space to get a hold of, but luckily some kind folks pushed the all the source code to a bunch of Github repositories under the user HackedTeam.

Scrolling through the repositories tab, it's looking like the favourite languages are C and C++, with a fair bit of Ruby, some Python and smatterings of ActionScript and Vala (along with a few others). I'll probably concentrate mostly on the Ruby and Python, since although I'm not too rusty in C, the documentation quality in this codebase is uniformly awful.

Anyway, let's have a good look through this codebase!

Heh. Okay, no, seriously, let's have an actual look at what the code is doing...

...other than violating intergalactic law by using literal tab characters to indent Python source files, that is.

I'm probably not going to understand even a hundredth of the codebase, but it'll be fun nonetheless. Here's all the repositories from the HackedTeam user available at the time of writing:

Since I'm a big Linux fan, I'm thinking it'll be interesting to see what core-linux has to offer.

No sign of a README, but let's see what Makefile and VERSION tell us about the project:

Very minimalist, sure, but I still have no idea what this project does. All /doc contains is this TODO:

|> TODO <|

- PROCESS (window, onfocus)
- SCREENSAVER (other than gnome-screensaver)

- DESTROY (permanent)
- SYNCHRONIZE (bandwidth, maxdelay, mindelay, proxy, stop on success)

Still no real information about what exactly the project does, but we've got some scraps. I'll poke around a bit and report back.