Basic Static Analysis Techniques Flashcards
What is Static Analysis?
Static analysis describes the process of analyzing the code or structure of a program to
determine its function. The program is not run at that time.
What is Dynamic Analysis
The analyst actually runs the program
What do Antivirus tools rely on? Where is it stored?
File signatures, behaviors, and patterns. Antivirus databases, not the actual application
Malware writers can modify their code to prevent ___
Detection
What do hashes help with?
Identifying programs as legitimate
What is a string?
A sequence of characters.
What program can you use to search an executable for strings?
The Strings program in the Sysinternals Suite.
What format are strings stored in?
Either ASCII or Unicode
How do you terminate ASCII and Unicode strings
With a NULL terminator
What are obfuscated programs?
Programs whose execution the malware author has attempted to hide
What are packed programs?
A subset of obfuscated programs in which the malicious program is compresses and cannot be analyzed
What two types of programs strongly limit the ability to statically analyze malware
Obfuscated and packed programs
What is a packing file?
You open up an executable that causes another executable to run.
What type of files use Portable Executable (PE) format?
Windows executables, object code, and DLLs
What is the Portable Executable format?
It is a data structure that contains the information necessary for Windows to manage the wrapped executable code. Almost all files with executable code that is loaded by Windows is in the PE file format.
What are Imports?
Functions used by one program that are actually stored in a different program.
What are code libraries that contain functionality common to many programs an example of?
Imports
How are code libraries connected to the main executable?
Linking
What is the main executable?
The program being run
Why would programmer what to link imports?
So that they don’t need to re-implement certain functionality in multiple programs
What happens when a library is statically linked to an executable?
All code from that library is copied into the executable, which makes the executable grow in size
What is Static linking?
Linking in which the executable includes the files that the program needs
What is Dynamic linking?
~Linking in which the compiling and linking of code is put into a form that is loadable by programs at run time as well as link time.
What is the Imported Functions header?
A PE file header that includes information about the specific functions used by an executable.