Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
#+TITLE:Reverse Engineering notes for Yoda Stories #+AUTHOR:Archenoth #+EMAIL:archenoth@gmail.com :SETTINGS: #+STARTUP: hidestars inlineimages #+DRAWERS: SETTINGS :END: These are the notes I took while following along with Zachtronics' post about reverse engineering a binary file. ([[http://www.zachtronics.com/yoda-stories/][This one]]!) This is one particular discipline I'm both super-interested in, but also not overly skilled with, so something like this is perfect for me! I actually did a good portion of the Lisp code before creating an Org document for it, so a lot of the notes are looking back and explaining the code I already wrote--which admittedly underwent a few revisions before I even put it in revision control. I wasn't even going to make a Git Repo for it, but I've found myself explaining what I've been doing a lot recently, plus it's nice to have for my own reference! So, without further ado, [[./yodesk.org][here's the file]]! * Recommendations [[./yodesk.org][yodesk.org]] is best viewed in Org Mode, though GitHub renders it reasonably as well. (Though you'll miss out on the cool interactive bits) And speaking of interactive bits, in Org Mode, it's a bonus to have [[https://github.com/joaotavora/sly][SLY]] or [[https://github.com/slime/slime][SLIME]] running in the background with a Common Lisp implementation like [[http://www.sbcl.org/][SBCL]]. Preferably with [[https://www.quicklisp.org/beta/][QuickLisp]] installed to pull down [[https://www.xach.com/lisp/zpng/][ZPNG]] for the image extraction bits, though you can run the overall parser without it. * Tangling the source Since [[./yodesk.org][yodesk.org]] is a literate Org file, you can tangle the entire thing to [[./yodesk.lisp][yodesk.lisp]] and [[./palette.lisp][palette.lisp]] with =C-c C-v t= in Org Mode. There are already tangled versions of these files included with this repo--though if you make changes to the org file, this is how you can run it all separately!