I’m planning on learning Malware Analysis and Reverse Engineering, but was wondering if someone could help clarify a few questions that I have regarding Assembly.
1. The primary Architecture I should focus on should be x86 and possibly ARMS down the road right? x86 because that’s what most pc are run on, and ARMS for mobile devices such as android… once I have the x86 covered?
2. After some research, the followings seem to be recommended the most when it comes to learning materials for Assembly:
Art of Assembly Languages
Programming from the Ground Up
Assembly Language Step by Step Programming with Linux
However, some of these materials use NASM, while others use MASM (Microsoft Assembler) or AS (GNU Assembler).
Furthermore, some uses Linux while others are using Windows as their platform. And when it comes to Assembly, the Assembler you use and the platform you use make a difference right? Since the syntax are different for each Assembler (at&t vs intel), and based on the OS you use, the opcodes, system calls are also different as the Assembly code will often interact with the system you’re operating on correct?
So I’m kind of confused as to which book I should use at the moment since they use different assembler and OS platforms. Or does it not make much of a difference?
While i’m using Linux as my main OS, does it make sense to learn Assembly on a Linux if Malware Analaysis largely focuses on malwares that are targetting the Windows Operating System?
3. This is more of a general question on Malware Analysis instead of Assembly, but if I plan on getting more involved in Malware Analysis, what platform is more suitable for this type of work? Linux or Windows? Are there essential tools of the trade that are only available for Windows? or does it not really matter as there are great static testing tools available for both, and others could easily be installed on the VM for dynamic analysis if neeed be?