Skip to main content

Learning assembly via Microcorruption

From time to time, I pull up the CS class homepages from Cal so I can brush up on stuff I learned/should have learned. It's kind of crazy to see what they're learning now, even in a lower division 3rd semester class (neural nets? MapReduce? Parallelism? We spent several lectures on Verilog and CPU design!). On a somewhat unrelated note -- why do CS professors/lecturers use Comic Sans in their PowerPoints?!

One specific reason I stalk these CS homepages is to read the lecture notes and materials on assembly. I've always had an irrational fear of assembly, ever since taking one of those CS classes and not doing so well... However, I always have to keep coming back to it for one reason or another -- usually by way of a CTF. After banging my head against the different problems from picoCTF (both 2013 and 2014) and slowly trying to figure out how to use gdb effectively, I finally understood how to get through the tutorial and level 1 of Microcorruption. This is both a sad and happy moment for me! Sad, because it's pathetic just how slow I learn. Happy, because I finally understood what was going on, and now I feel just that much more confident that I will learn assembly after all.

Comments

Popular posts from this blog

Compiling pgmodeler on Yosemite (with Homebrew)

Refer to  pgmodeler installation . Steps: Clone the pgmodeler git repo. Use Homebrew to install qt5 (5.4.2, see here ), libxml2, and postgresql. Edit the pgmodeler.pri (not .pro) file and change these variables: PGSQL_LIB = /usr/local/opt/postgresql/lib/libpq.dylib PGSQL_INC = /usr/local/opt/postgresql/include XML_INC = /usr/local/opt/libxml2/include/libxml2 XML_LIB = /usr/local/opt/libxml2/lib/libxml2.dylib Follow instructions to compile pgmodeler (you might need to put Qt's binaries in your PATH. I was lazy and didn't). $ /usr/local/opt/qt5/bin/qmake pgmodeler.pro $ make $ make install $ cd /Applications $ /usr/local/opt/qt5/bin/macdeployqt pgmodeler.app -executable=pgmodeler.app/Contents/MacOS/pgmodeler-ch -executable=pgmodeler.app/Contents/MacOS/pgmodeler-cli Then I was able to do $ open pgmodeler.app

pgmodeler build in Debian Jessie

This is my qmake version: $ qmake -v QMake version 3.0 Using Qt version 5.3.2 in /usr/lib/x86_64-linux-gnu I had to edit linuxdeploy.sh: 1. Add "-makefile" to the QMAKE_ARGS variable: $ qmake -h Usage: /usr/lib/x86_64-linux-gnu/qt5/bin/qmake [mode] [options] [files] where mode is either "-makefile" (default) or "-project" QMAKE_ARGS="-makefile -r -spec linux-clang" 2. Right before "Running qmake...", I added another line to include pgmodeler.pro in the qmake invocation: QMAKE_ARGS="$QMAKE_ARGS pgmodeler.pro" Then I ran ./linuxdeploy.sh -no-qt-libs (https://github.com/pgmodeler/pgmodeler/issues/674)

The end of summer

It's been a wild year. Gains and losses. COVID-19 and the shelter in place. Lately, fires. Today was a very dark day, literally. For about half the daylight hours, there was so much ash in the air that it looked like it was close to sunset, but it was definitely not anywhere near as beautiful. Red sun following us everywhere. Bubonic plague found on fleas in Lake Tahoe. The list goes on and on. Everyone is tired. Exhausted. Burnt out. There is no respite, just a new normal that seems like an even steeper climb than before. Sleep gives way to another day with no refreshment. Yes, that's how things seem. But there have also been bright moments. Time spent with family, especially with the little one. Growing and nurturing plants, building things, trying new recipes, going to the store to shop for dinner, reading books, coloring with crayons... We grow closer together, weaving together a blanket of love and memories that we wrap ourselves in.