1.
In the context of malware analysis, what does the term "patching" refer to?
Correct Answer
D. Modifying a compiled executable to change its functionality without having to recompile it.
Explanation
Malware analysts frequently patch the malicious program to modify how it executes, even though they typically don't have access to the program's original source code. For instance, the analyst might locate a defensive measure built into the specimen to confuse the analyst, and use patching to render that measure ineffective.
2.
Which of the following assembly instructions is least likely to be used by malicious code to perform a jump?
Correct Answer
B. XOR
Explanation
Malicious code typically uses assembly instructions like JMP, RET, and CALL to perform jumps and alter the flow of execution. However, XOR is least likely to be used for this purpose. XOR is primarily used for bitwise operations and data manipulation, rather than controlling program flow. It is less commonly used for branching or jumping within a program, making it an unlikely choice for malicious code seeking to perform a jump.
3.
Which of the following defensive measures do malware authors use to encode the original executable to protect it against static code analysis?
Correct Answer
D. Packing the malicious executable
Explanation
By using a "packing" utility, malware authors encode, encrypt or obfuscate the original executable, making it more difficult to analyze using static code analysis techniques. In such cases, the reverse-engineer typically has to unpack the program using a variety of approaches that might be challenging and time-consuming.
4.
Which of the following terms refers to a field in the PE header that specifies the address of the instruction that the OS should execute first after loading the executable?
Correct Answer
C. Entry Point
Explanation
The PE ("Portable Executable") header of a Windows executable stores critical information about the program that allows the Windows operating system to properly run the executable. One of the fields stores in the header is the Entry Point. This field stores the address of the instruction within the program that the operating system needs to execute first to begin running the program.
5.
Which of the following system calls is most likely to be used by a keylogger?
Correct Answer
D. GetAsyncKeyState
Explanation
GetAsyncKeyState determines whether the specified key is pressed at the moment when this system call is made. One of the ways a keylogger can spy on the user's keyboard activities is to repeatedly iterate through all likely key values, checking whether each key is pressed.
6.
Which of the following Windows registry keys is most useful for malware that aims at maintaining persistent presence on the infected system?
Correct Answer
A. HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Explanation
A malicious program usually wants to ensure that it continues to run on the system even after a reboot. There are numerous ways of accomplishing this, including adding an entry to the HKLM\Software\Microsoft\Windows\CurrentVersion\Run registry key that points to the specimen's file.
7.
What are the two most common phases of malware analysis?
Correct Answer
A. Behavioral and code analysis
Explanation
Behavioral analysis examines the malware specimen's interactions with its environment: the file system, the registry (if on Windows), the network, as well as other processes and OS components. As the malware investigator notices interesting behavioral characteristics, he or she modifies the laboratory environment to evoke new characteristics. Code analysis reverse-engineers the malicious program to understand the code that implements the specimen's behavior. When looking at compiled programs, this process involves using a disassembler, a debugger and, perhaps, a decompiler to examine the program's low-level assembly or byte-code instructions.
8.
Which of the following tools best supports the concept of breakpoints?
Correct Answer
A. Debugger
Explanation
A debugger lets the malware analyst step through the most interesting parts of the code, interacting with it and observing the effects of its instructions to understand its purpose. A breakpoint is a condition defined by the analyst that tells the debugger when it should pause the execution of the program, allowing the analyst to interact with the program with the help of the debugger's capabilities.
9.
Which x86 register is most commonly used for storing a function's return value in an assembler?
Correct Answer
C. EAX
Explanation
The x86 instruction set supports several general-purpose registers. EAX is one of them. Although general-purpose registers could be used by the program for any purpose, EAX is often used as the placeholder for storing the return value of a function.
10.
Which mechanism is malware least likely to use when defending itself against analysis?
Correct Answer
D. Detecting the presence of a debugger
Explanation
Based on the options provided, the correct answer is D. Detecting the presence of a debugger. Malware is least likely to use this mechanism when defending itself against analysis. Detecting the presence of a debugger is a common defensive technique used by malware to evade detection and analysis. However, the other options listed (A. Inserting junk code instructions, B. Employing polarization techniques, and C. Making use of "tricky" jump instructions) are more commonly employed by malware to obfuscate its code and make analysis more difficult.