Computer science is such a large field. It’s a fractal, an infinity of possible jobs, research positions, studies, ideas, and puzzles. I think the main reasons for this are simply 1) computers are everywhere, and 2) computers can be made to do most everything.I mean, it’s gotten to the point where everything and it’s inanimate kid sister has a computer inside it, running as stripped down linux.

So there’s a lot of different sub-fields I can focus on, but for now, the main computer science related interests I have are security and low-level, embedded computing.

The security focus is me learning more about the vocabulary of cybersecurity (which is a word you apparently only use if you’re the government and/or want to get laughed at. The “correct” word is normally infosec, short for information security. Why that’s correct, no one seems willing to say), and understanding what exploits and malware actually are.Growing up with computers, you get the bogeyman of viruses and hackers, but no one ever really explains what the heck they’re doing, or how you genuinely avoid attacks (beyond “don’t go to porn sites”, but that’s never really verbalized to a 7 year old who wants to go to neopets, just vague unease). And really, it just seems fun. It’s being clever and tricky and using the rules against how they’re supposedto work, to get what you want. That’s just enjoyable to me on some level. And security is such a large field too! Cloud security, network sysadmin, penetration tester, security researcher, malware analysts, computer forensics, etc. etc. The whole world there seems strange and fascinating compared to the world I currently live in (web development. JavaScript is proof there is no god), and I want to explore.

The other main interest right now is low-level embedded computing. Which is a fancy way of saying I want to reverse engineer and hack into different embedded computers because I just want to see what’s there. I know on an intellectual level routers or modems are probably just linux computers, since the need to deal with TCP/IP stuff, but I can’t say for sure. I want to be able to connect to a router and actually access what linux they’re running and poke around. I also like the idea of learning and playing more with the interface between the hardware and software. Understanding assembly so I can get to the point I can physically trace through a piece of hardware to see where the electricity goes as it calculates something seems literally magical to me. Truly grokking from the hardware level up to C and more abstract languages would make me feel like i have a true grasp of computers. Or at least a good start.

So, the interesting part: what the heck I’m doing, since I’m so interested in those two things right now. They are:

  • Finding CTFs and doing them. Right now I’m still trying to get a good overview of the security field to see where I want to drill down in (pen testing and malwayre analyst sounds the most interesting, but I don’t know what I don’t know). I’ve already completed the https://picoctf.comCTF (yes, it’s technically for middle schoolers. But I beat a cyborg, so deal with it) I’ve also completed the bandit wargame on Over The Wire, which was fun. I’m thinking I’ll do a write up on both, to prove it. Then go on to other CTFs I can find.

  • Routers! I got two routers from Goodwill for cheap (3 and 4 bucks respectively) and I plan to take them about, try to find out what makes them tick, and probably either blow them up or brick ‘em. Either way, should be fun. I plan on using the break down of info from hack the world (http://jcjc-dev.com/2016/04/08/reversing-huawei-router-1-find-uart/) to give me some sort of starting point.

  • Reading! Enjoying the wide, wide world of books and periodicals. Namely, from No Starch Press, I have The Penetration Tester’s Handbook, Practical Malware Analysis, and Hacking: The Art of Exploitation. The first two do have walkthroughs and practice problems, so I hope to walk through them, as well as reading.

Yes, the start of something beautiful. Or at least something to keep me busy.