• @henfredemars@infosec.pub
    link
    fedilink
    English
    111 hours ago

    I get to spend a surprising amount of time reading and writing assembly. I consider myself so lucky to be able to do this, and it’s true that after enough time you start seeing through it. The human mind is excellent at finding and seeing patterns. Code is no exception. It’s just another kind of data. Even the different compilers have their own flavor after a while.

    Curious to me that you began in Basic; my experience is that people continue to see their first language in other languages for some time, and the best reverse engineers I’ve met usually start with something unusual. My hypothesis is that when you start in a weird place, it brings all others closer together so that they appear not so different from each other. The distance between the top of the mountain of code and the deepest valley of flat data doesn’t seem so great if you start with, say, Lisp and you never considered that lists weren’t both code and data.

    I come from Matlab, and to this day I can’t see memory as anything but matrices.

    • @remotelove@lemmy.ca
      link
      fedilink
      English
      28 hours ago

      I taught myself QuickBasic as it was the only thing I knew that was related to copying C64 BASIC out of magazines. (QBasic was packaged with DOS 3.11 I think and I was able to get a full copy of QuickBasic somehow. That was about +30 years ago? Dunno. I was about 12 at the time.) I didn’t know what other languages were out there besides TurboPascal. I did learn simple Pascal, but that was a short chapter.

      I actually met someone else in the area that was learning to code, and of course, we wanted to write a game. The only way to code for a mouse at the time was to write an INT33 handler, so it kicked off our interest in asm. (I still use asm for MCU stuff on occasion, but it’s limited.) I quickly diverged into writing some really nifty… eh… “boot sector code” so that kicked off my career in security.

      And yeah, it’s the same phenomenon for me: I just think in terms of bits and bytes getting shifted around and I still refuse to believe in “magic”. (Slight jab at Rust coders there, but in good fun.)

      Fast forward to today, I train “kids” fresh out of college as part of my job now. The first thing I do is start giving them weird tasks that require they actually understand how something like an fopen() actually works.

      (Funny story. I refused to “show my work” in math class for simple f(x) problems as I viewed it as unoptimized code. Lulz. I was such an autistic dork.)