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)

Building and installing CAN bus bundle on Kura/Eurotech Software Framework

The documentation is incomplete as of 11/25/2015:  http://esf.eurotech.com/docs/how-to-use-can-bus . It shows you how to setup the can0/can1 interfaces. I think I finally figured out the real steps to getting the CAN bus service working in Kura. I found this website somewhat useful:  https://tobiddev.wordpress.com/2015/03/23/one-bundle-project-modbus-and-eclipse-kura/ . It didn't tell me how to build a bundle, but I took a chance with the following and now I'm able to see my module loading the CanConnectionService in the Kura logs. First, build Kura from source following this guide:  https://wiki.eclipse.org/Kura/Getting_Started . You'll probably want to build it in Linux (I am using Debian Jessie) or possibly OS X (I didn't test it). For sure, it fails in Windows 8 at the create_installer.sh part, so I decided not to waste any more time on it. You basically need Kura built just enough so that you can load everything into Eclipse. I was able to do this using Eclipse...