Reverse engineering the universe

In the life of a reverse engineer, your work changes the way you think. Everything is a mystery waiting to be solved. In my last post about hacking I said the hacking mindset is to keep learning, to have a thirst for knowledge. This article is for those looking to improve their curiosity, and reasoning skills. Not all of it will apply only to techies, but some (most all) to the average Joe.

To start with my hobby of reverse engineering requires an inquisitive mindset. Asking such questions as "why are they moving EAX to EBX? What did that do in the long run?" Because in programming everything has a purpose, what was the designers goal when they coded a certain block, why did the compiler code it a certain way.
But something that will set the basis for our discussion, is when you don't have the code. What if you input data and just get something back. You can't be sure why, your not even certain how the computer came to the conclusion that it did. For instance with web apps, you input a number and the website may spit back something else. Why? What algebraic equation lead the server to reply as it did? In order to find that out you need to submit a massive amount of information repeatedly and look for a pattern. So if it were numbers in a form (since this something easy to use as an example and you may never run across this) you may input 1 then 2, 3, 4... And so on. Recording each reply over time you may be able to guess what the reply will be. If you guess it now it's time to write your own formula that would be able to spit out the same answers. This is simply one way to think, trying to discover what is working under the hood.

I've always thought like this. Since I was a little kid I would stare at things trying to see what the item was hiding. I recall as a child I was at a small engine shop and I didn't really know much about tools. I noticed a drill press (for those that don't know what this is google it) on a table. I didn't know what it was, but I could tell by the drill bit it was used to drill. Obviously the platform was to place the part being drilled and you would pull one of the 3 handles that would spin around to lower the bit towards the platform. As a small child I wondered, how does the handle lower the drill bit (as a kid I may have had a different name for the bit being as ignorant as I was).
Upon closer examination I noticed as I lowered the drill, a bar that it was set into would lower and this bar had ridges on it. I began to think about it and realized the spinning handles must have been connected to a gear that, as you twisted, would fit into the ridges and push the bar (and drill bit) down. Now I know this isn't anything profound but for a kid this is a treasure and I was proud of myself. If everyone would apply this kind of thinking to everyday objects we would start understanding the world and how the universe works. I'll give you a more recent example now.

I love math, numbers are the language of the universe. So I spend many sleepless nights laying in bed looking for patterns or simply running through the ones I already know. One I have recently been running through is that when multiplying by 11 you can simply add half the previous digit to the one your working on all the way to the end of the number. For example:
243 X 11

  • The 3 in the ones spot can come straight down to the ones
  • Add the 4 in tens spot to the half of 3 (no fractions) in the ones to get 5 (4+1 the one is half or 3) it comes down to the tens spot
  • now add the 2 in the hundreds to half of 4 in the tens and bring the 4 (2+2) down to the hundreds
  • Now add half of 2 in the hundreds to the imaginary 0 and bring the 1 (0+1) down to the thousands
  • This gives you 1,453
    Now this is an amazing thing that numbers do but to know that isn't enough. The question is why? Why does this happen?
    Well what happens when you multiply by 11? When you multiple by a 2 digit number you normally multiply 1 digit at a time. Then add your results. So:
  • The 1 in the ones place times 243 equals 243
  • The 10 in the tens place time 243 equals 2430
    Mao what happens when you add them together?
    2430
    +243
    notice you are doing exactly what we did earlier, adding the previous digit to the one your working with! There are many algorithms that work like this and it makes math easier to know them, but it also unlocks the universe.
    So I know this isn't a powerful conclusion but go out there, and hack the universe. Make understanding your lifestyle! Look at every day objects and reverse engineer them, figure them out. This mindset will consume you and make your life more meaningful.

**this comes from my blog thehackerjourney.wordpress.com **