Machine Language is a must knowledge that IT-related staff learns during their studies era. Malware Researcher can be considered as one of the fields that Machine Language can use in their professional career. In this post, I would like to focus on IA-32 Assembly Language where hope it will useful to those people out there.
Introduction of Machine Language
Before we went deeper into IA-32 Assembly Language, we need to learn the basic and history of Machine Language.
Those are the categories that need to learn Machine Language or Assembly Language:
- Shellcode Programmer
- Bug Hunters
- Malware Analysts
- Code Exploit Writers
- Reverse Code Engineers
- Software Vulnerability Analysts
History of Machine Language
Machine Language was invented in 1957 by IBM team that been led by John Backus which they introduce FORTRAN language. The name coming from FORmula TRANslating system that include components that very simple and easy to the programming.
Since then, Machine language has involved and has become a computer program that CPU and programmer can be executed directly and those will cause the CPU to perform a very specific task like to load, store, jump and a lot more.
Basic of Machine Language
Machine Language only understood the binary format that can be used here are 0 and 1 such as the example “Hello World” below:
Function that people need to know when analyse the Assembly Language such as follows:
IA-32 Assembly Language
IA-32 Assembly Language architecture should be supporting an address-size attribute either 16 or 32-bits but IA-32 assembler have only support attribute of 32 bits.
Example of the IA-32 Assembly Language can be seen as mentioned below:
add eax, ebx ; EAX = EAX + EBX
The format that been shown above are can be such as follows:
[label] mnemonic [operands] [; comment]
Let study further on the format above which mean something like below:
- Label: this function can be used to show the CPU on identifier or constant
- Mnemonic: this function can be show as verifies as the purpose of the statement. Depending on the line either contain label or comment, Mnemonic will not requirement for the statement.
- Operands: this function will identify either the data or statement can be manipulate.
- Comment: Text statement to show the purpose of the statement.