Previous post

Next post

Welcome to the first Post in the ‘Reverse Engineering Basics’ series. In this post, i’ll give a quick overview of what will be covered.

This series will operate in the environment of Ubuntu 16.04. For windows users, It is recommended that you try following along in a virtual machine, or by using the Windows Linux Subsystem.

FAQ:

What are the recommended prerequisites for the series?

It is recommended that anyone following the series would have at least a basic understanding of C and C++, an appreciation of the basics of x86 or ARM assembly and some experience with linux.

Do I need to know x86, x86_64, ARM or MIPS?

Some basic knowlege or further reading about x86 is recommended. I will probably talk about x86_64 and ARM and provide examples with many of the exercises. I’m not sure whether I will mention much about MIPS, but I may include it at some point.

Why bother learning assembly in $CURRENTYEAR?

Traditionally, assembly has been very useful to learn for the uses of optimising and streamlining code, however most modern compilers nowadays can typically optimise far better than most people. However, understanding assembly can be very useful when it comes to security/malware research, and for reverse engineering of course. It can also help you understand and debug code by having a deeper understanding of what your code is doing.

Wow, you’re very smart.

That’s not a question, but thanks.

   

Credit to the following sources, books, people and articles for helping make the series:

https://sensepost.com/blogstatic/2014/01/SensePost_crash_course_in_x86_assembly-.pdf

https://www.tutorialspoint.com/assembly_programming

https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w

https://sensepost.com/blogstatic/2014/01/SensePost_crash_course_in_x86_assembly-.pdf

https://github.com/wtsxDev/reverse-engineering

https://beginners.re/


x89k

Python, C, Reverse Engineering, Security