Courses
Assembly
I completed a bachelors degree in computer science at the University of Nebraska at Kearney. I received my Masters and Ph.D. at Kansas State University. I have taught Computer Science, assembly and reverse engineering for 7 years at the collegiate level. I have been called as an expert witness on more than a dozen Federal Cases, where he reverse engineered the NIT code provided by the government. My expert declarations have been used by the ACLU in their "Challenging government hacking in criminal cases" guide for attorneys. Lawyers call me in to explain, analyze and help them understand the meaning of digital evidence.
After I received my Ph.D. I moved to Madison SD to teach at Dakota State University. There I decided to specialize in Reverse Engineering. This is where I learned how to program in Assembly. I enjoyed the challenge end thrill of programming at the lowest level. At DSU I built up the assembly programming class to meet the standards required for Reverse Engineering. After attending many different Cybrary courses, I decided that I could give back to the community by providing a course that provides a great base for Reverse Engineers.
I enjoy programming in assembly language. The creation of binary programs that can be used in as challenges in capture the flags is very interesting challenge. One of the fun parts of this is trying to hide the true execution of the programmer. For many platforms, I create a variety of different challenge levels. Some easy challenges for first time reverses and then increased difficulty for the more advance crowd. Examples of hiding the true execution include, using return-oriented programming (ROP), string obfuscation and encryption. Each platform requires some knowledge of the architecture and how mnemonics and memory make for fun learning cyber security skills.
I am married and have 3 kids. They enjoy soccer, baseball, reading and even some Python programming. My wife lets me collect Legos (technic and Star Wars) and build wooden projects out of recycled barn boards. I also enjoy coaching, gardening, teaching and programming as well. Languages that I enjoy programming in include Java, Python, Bash, C, C++ and of course Assembly.