Currently Empty: £0.00
This course teaches more than just reverse engineering because as a malware analyst you need a variety of other skills. You will learn how to classify samples into malware types, how to identify malware families and how to determine file verdicts like clean, malicious, potentially unwanted programs, junk, grayware, or corrupt. Additionally, you will learn how malware persists, how to identify malicious autostart entries and clean infected systems.
The course aims to dispel common myths such as “trojan in a detection name means the file is a trojan horse” or “antivirus detection names are a malware classification”.
As a malware analyst with experience working at an antivirus company since 2015, I have trained many beginners in the field. I understand the usual pitfalls and the concepts that you need to grasp to become proficient. I focus on building strong foundations that make you flexible in the face of new malware advancements, rather than providing shortcuts with step-by-step recipes.
I will teach you how to differentiate between different types of files, including installers, wrappers, packed files, non-packed files, hybrid, and native compiled files. You will learn which tools to apply in which situations and how to analyse samples efficiently. To do that I give you example approaches that work for most situations.
This course is ideal for you if you already have some IT background, such as hobby or professional programmers, computer enthusiasts, administrators, computer science students, or gamers with an interest in the inner workings of software or IT security.
If you have a strong interest in the topic but lack the necessary IT background, I recommend that you learn programming first. Please refer to the course requirements for more information.
Tools
All the tools and web services that we use during the course are free:
-
Ghidra
-
x64dbg
-
VirtualBox
-
SysInternals Suite
-
PortexAnalyzer CLI and GUI
-
VirusTotal (without account)
-
Speakeasy by Mandiant
-
API Monitor
-
CyberChef
-
EXIFTool
-
Meld
-
VBinDiff
-
AnalyzePESig
-
DnSpy
-
C# Online Compiler programwiz
-
TriD
-
Detect-it-Easy
-
ReNamer
-
7zip
-
Notepad++
-
HxD
-
Malpedia
-
lnk_parser
Requirements
You should have a strong understanding of at least one programming language, such as Python, C, C++, Java, or C#. This is a crucial requirement for the course, not only because we create small scripts during the course but because reverse engineering needs an understanding of software as foundation. The specific language does not matter, as you cannot learn every language you may encounter during analysis anyways. The concepts of programming must be clear, though.
If you are not there yet, you should not buy this course and start learning C instead. C is great because it is low-level and will integrate well with x86 assembly language.
Additionally, you must be able to read (not write) x86 assembly to understand everything in the course. Without assembly you will only be able to understand two-thirds of the content. So if you consider starting this course right away and learning assembly alongside it, that should work fine.
During this course we look at samples that use the following execution environments:
-
x86, x64 assembly
-
.NET
-
Batch
-
PowerShell
-
Nullsoft scripts
However, you do not need to learn all of these languages. Because an analyst encounters new languages all the time, your skillset is rather in using the available documentation, manuals and help provided for those environments and languages. I also show you during the course how to use the documentation for ,e.g., PowerShell.
Out of scope
Malware analysis is a broad field, so there are inevitably topics that I will not teach during this course because they would rather require their own course. Some of these topics are: assembly language, programming, how computers work, URL and website analysis, networks, analysis of malware for other platforms than Windows, mobile malware, IoT malware.
Malware lab setup
Triage and file type basics
-
3Malware Analysis Lab
Overview to building your analysis lab and how to proceed if you already have a VM.
-
4Download links
Download links for VirtualBox, Defender Remover, course samples and Windows 10 Evaluation copy
-
5Installing VirtualBox Windows 10 VM
Install a VirtualBox VM with an evaluation copy of Windows 10.
-
6Installing VirtualBox Guest Additions
Add convenience features to VirtualBox
-
7Enabling hidden files view, removing Windows Defender
Remove Windows Defender from the malware lab to ensure smoothless malware analysis. Adjust the view settings to see hidden files and system files.
-
8Sample handling: Course samples and password protected archives
How we handle potential malware samples and make sure that you stay safe.
-
9Sample handling: Shared folder setup
We create a shared folder setup that allows to move files to and from the host and the guest system while also preventing infections to spill over to the host.
-
10Sample handling: Prevent execution via ACLs (Windows host only)
We change the access rights so that the files in shared folders cannot execute.
-
11Network, snapshots and first sample execution
We make sure that worms do not infect your home network and execute the first sample in the lab. Snapshots make it possible to set the VM back to a clean state after each malware execution.
-
12Disabling Windows updates
We disable Windows updates in the VM
-
13Safety rules summary
Summary of the lab setup and safety instructions when dealing with suspicious and malicious files and URLs.
-
14Safety rules quiz
Wrapped files and installers
-
15What is triage
Understand why triage is an important analysis step and what purposes it serves
-
16Download links
Tools and links that we use for this section.
-
17Lab Triage 1: Determine file types of unknown samples
We determine the file type of 5 different files using TrID and Detect-it-Easy.
-
18What is a file type
What a file type actually is and how it is different from file extensions. Can files have no file type or several file types at once?
-
19Lab Triage 2: Whole file examination
After figuring out a file type, we look for a format specification which is an official documentation of the data layout. What information are we looking for when reading specifications? How do we find the relevant parts of the sample?
The lesson also explains how to deal with some quirks of Windows shortcuts.
-
20Antivirus detection names and formats for malware
Coming from a malware analyst who works for an antivirus company: What are antivirus detection names really? Who creates them? How are they different from Caro naming conventions?
We cover also:
Current naming schemes of antivirus vendors
Default values
Basic components
-
21Deciphering antivirus detection names for malware
To interpret antivirus detection names correctly, we must be able to:
distinguish specific from unspecific detection names
know what certain keywords mean
identifiy names that describe antivirus detection technologies
understand that detection names are not a malware classification
understand why "Trojan" does not mean trojan horse
-
22Lab Triage 3: VirusTotal autoscans and first research
We put our knowledge about antivirus detection names to the test and interpret the detection names for our LNK sample. We find a candidate for the malware family and alias names of the family on malpedia.
-
23Lab Triage 4: Final analysis
Actual analysis of the sample's code. You learn how shortcut worms work and why you should not copy shortcut arguments from the properties window.
-
24Lab: Exercise solution
Full analysis solution for a second sample. You also learn how to update PowerShell Help and interpret unknown PowerShell commands.
-
25Triage Quiz
Malware Persistence and Disinfection Basics
-
26Finding the malware developer's code
Binaries do not only contain the code that the developer has written. What other code is there?
-
27Wrapped files
Wrappers create files that carry the whole execution environment with them. How do we identify the used wrapper and how do we extract embedded files?
-
28Tools and links
All tools and links we need for the labs in this section.
-
29Lab Wapped files 1: Triage of a wrapped file
Triage: We use trid.exe and Detect-it-Easy, but none of these tools can detect the wrapper correctly. How do we find out the wrapper anyways?
We also check the file's detection names and behavior on VirusTotal to get an idea how to extract it.
-
30Lab Wrapped files 2: Obtaining the script with ACLs
Learn how to use Sysinternals Process Monitor and Process Explorer, how to add proper filters to monitor the file in action. The wrapped file unpacks the payload into TEMP but deletes it faster than we can copy it. So we apply ACLs that prevent deletion operations in TEMP.
-
31Lab Wrapped files 3: Wrapped file payload analysis
Now that we got the payload, we analyse the code in Notepad++. We discover that it creates a PowerShell script that we did not extract so far. We modify the payload so that it creates the PowerShell script for us without deleting or executing it.
-
32Lab Wrapped files 4: Obtaining the script with APIMonitor
ACLs are not always a working solution, so we use APIMonitor this time to extract the payload. Learn how to set up APIMonitor to log API calls and how to set breakpoints.
-
33Installers
What are installers? What is their structure? How can we extract installation scripts and embedded files from installers?
-
34Lab Installers 1: Layer 1 Unpacking Nullsoft
We identify an NSIS (Nullsoft Scriptable Install System) installer and extract the first layer of this sample as well as the install script.
-
35Lab Installers 2: Layer 2 Extract 7zip SFX files
The second layer is another installer: A 7zip self-extracting archive. We extract the contained files.
-
36Lab Installers 3: Extract 7zip SFX configuration
We find out how 7zip self-extracting archives are built up and extract the configuration of the second layer sample, so that we know what file is executed by the installer.
-
37Lab Installers 4: Triage of multiple files
After unpacking the 7zip SFX we got a lot of files. We learn how to use PowerShell commands to run trid.exe and Detect-it-Easy on all of the files and print a report. That way we can determine interesting samples.
-
38Wrappers and installers quiz
Portable Executable format and .NET
-
39Auto Start Extensibility Points (ASEPs)
What are Auto Start Extensibility Points (ASEPs) and how are they used for malware persistence?
-
40The Windows Registry
The Windows registry is crucial to understand malware persistence on Windows.
Topics covered in this lecture:
structure of a registry entry
root keys and links between root keys
registry hives
value data types and what they are used for
-
41Links
-
42Lab: Services
New ASEPs appear all the time. How do we find out things on our own? We reverse how service creation and deletion works by using monitoring tools and sc.exe, thus, find out what we need to do to remove a malicious service.
-
43Lab Disinfection 1: Autoruns - Run, IFEO
We use disinfector_trainer to train system disinfection. The first scenario applies Run keys and IFEO. We remove the entries using Autoruns Sysinternals and regedit.exe.
-
44Lab Disinfection 2: RunOnce, Active Setup, Scheduled Tasks, LNKs
We use disinfector_trainer to train system disinfection. We remove persistence via RunOnce keys, Active Setup, Scheduled tasks and Windows shortcuts.
-
45Malware Persistence and Disinfection Quiz
File analysis verdicts
-
46Introduction to Portable Executable files
What is the Portable Executable format? What means endianness?
-
47Portable Executable format basics
The Portable Executable format explained.
-
48PortexAnalyzer, JRE and DnSpy download
Tool and specification links for PortexAnalyzerGUI, DnSpy and the PE specification.
-
49Lab PE 1: MS DOS stub, COFF file header, timestamps and REPRO builds
We examine a file with a Portable Executable viewer, namely, PortexAnalyzer. You learn how to interpret values in the MS DOS stub, the COFF file header and when timestamps are inaccurate or wrong.
-
50Lab PE 2: Optional header and section table
We examine a file with a Portable Executable viewer, namely, PortexAnalyzer. You learn how to interpret values in the Optional Header and the section table.
-
51Lab PE 3: Resources, icons, debug path, imports
We examine a file with a PortexAnalyzer and Resource Hacker. We look at resources, debug data and imports of a PE file, learn, what icon groups are, what version information is and what the imphash is.
-
52Lab PE 4: Anomalies and visualization
We look at file format anomalies with PortexAnalyzer and create a visualization of the file that shows the byteplot, entropy and PE layout of a specific file.
-
53Portable Executable metadata exercise
-
54Compilation and Interpretation
Language processor types (decompilors, interpreters, hybrid compilers) and how they influence our tools of choice when we reverse engineer samples.
-
55Lab .NET 1: .NET basics and triage
Triage of a hybrid-compiled file, a .NET assembly. How .NET works.
-
56Lab .NET 2: Running the file, DnSpy basics
Decompilation of .NET assemblies. You learn the basics of using DnSpy: assembly explorer, decompilation options, assembly meta data, finding main, when to disassemble .NET into IL code instead of using decompilation.
-
57Lab .NET 3: Code search in DnSpy
You learn the basics of using DnSpy: searching referenced strings in code, finding the developer's code for a file that contains auto generated GUI code, how to view .NET resources
-
58.NET and Portable Executable Quiz
Malware classification and analysis reports
-
59Introduction to file analysis verdicts and clean file analysis
An introduction to the section contents
-
60Analysis types
Analysis types and when to use them: static analysis, dynamic analysis, meta inspection, code inspection.
-
61File analysis verdicts
Understand verdicts that malware analysts give to files as a result of an analysis. What does each verdict mean and when should they be used?
-
62Clean vs malicious—approaches for clean file analysis
How do you know if a file is clean? We discuss challenging cases and what options you have to determine the verdict.
-
63Tools for binary diffing and finding hidden certificate data
We discuss tools for binary diffing and certificate analysis.
-
64Installing the bindiff and certificate tools
Download links for the tools we need in the lab.
-
65Lab diffing 1: Binary diffing with vbindiff and meld
Scenario: A known software publisher provides a download hash for their file. There are two download locations and for one of them the file hash is different. Is this a case of a maliciously patched software? How do we find the difference between those files?
-
66Lab diffing 2: Identify certificate manipulation
How do we identify certificate manipulation in files?
-
67How signature verification works
The basics of certificate structure in PE files and which areas of the file are used to calculate the authentihash.
-
68Lab diffing3: Force strict signature verification
What is strict signature verification and how can we enable it to combat CVE-2013-3900?
-
69Mapping detection names to file verdicts
Detection names of antivirus software have key words that indicate certain verdicts. What are these key words and what do they mean?
Ghidra basics
-
70Introduction to analysis reports
An introduction to the section contents
-
71Writing analysis reports
Introduction to writing analysis reports. We look at two types of reports: responding to an antivirus submission and a technical analysis blog article. What components should be added to such reports?
-
72Malware Classification
How we classify malware into types, families, variants, ...
-
73Malware types by propagation
What is a malware type and which types describe malware propagation? What is a trojan and why is it not a good term to be used for malware types?
-
74Malware types by payload behavior
Which types describe payload behavior? How do we determine the malware type if several types fit? What misunderstandings are there about certain malware types?
-
75Malware family identification
How can we identify a malware family? What information resources and strategies help us to do that?
-
76Tools and links
Tools and links for the lab
-
77Lab report writing 1: Main analysis of a downloader
We analyse the main code of a .NET malware and determine the malware type.
-
78Lab report writing 2: ICC profile extraction with exiftool
The next malware stage is hidden in an image. We use exiftool to extract the hidden and still encrypted data. Meanwhile we take notes for our analysis report.
-
79Lab report writing 3: Malware decryption with CyberChef
We use CyberChef to decrypt the final stage and we finalize our report.
-
80Lab report writing 4: Formatting, structure and tips for blog articles
We use Obsidian, a free markdown editor, to put the analysis notes into a format that is directly useable for blog articles. I provide some tips on blog article writing, e.g., how to prevent your blog from being detected by antivirus software but still showcase malware code from your analysis.
-
81SteamHide FinalMalware.exe analysis
Debugging basics with x64dbg
-
82Ghidra introduction
What is Ghidra? What do we learn in this section?
-
83Download link for Ghidra
The download location for Ghidra
-
84Lab preparation: Installing Ghidra
How to install Ghidra on your VM
-
85Lab Ghidra 1: New project, file import and autoanalysis
Creating new projects, importing files, autoanalysis of files in Ghidra
-
86Lab Ghidra 2: Windows in the codebrowser part 1
Ghidra windows and they are for: Listing window, decompiler, function graph. program trees
Also: Adjusting the layout of windows and components, basic navigation, different comment types, renaming variables and functions, fragments
-
87Lab Ghidra 3: Windows in the codebrowser part 2
Ghidra windows and they are for: Symbol tree, data type manager, console scripting, defined strings, function call graph
Also: Imports, exports, namespaces, functions, classes, entry point
-
88Lab finding main 1: MinGW and VisualStudio C++ applications
-
89Lab finding main 2: A more difficult application
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
Stars 5
170
Stars 4
57
Stars 3
10
Stars 2
1
Stars 1
0