> guided learning path
Malware development: the learning path
A progressive course in malware internals: foundations, architecture, operating systems, configuration, communications, persistence, injection, evasion, capabilities, and engineering. Work through explanations, inert models, source studies, and exercises.
Progress is saved in this browser.
Module 01 · 3 lessons
Foundations
Follow program flow and learn to read real malware source.
- 1.1Program flow: from entry point to behaviorTrace execution through initialization, a decision, a handler, and cleanup before studying individual malware mechanisms.C
- 1.2Reading Mirai source: a string comparison trapRead a real comparison helper and explain how its return convention affects a caller’s branch.C
- 1.3Languages, platforms, and executable artifactsSeparate source language, executable format, processor architecture, and runtime dependencies when explaining a malware implementation.Concepts
Module 02 · 2 lessons
Program architecture
Understand how internal handlers are selected and organized.
- 2.1Malware architecture: command dispatch tablesMap command identifiers to handlers and trace known and unknown inputs through a function-pointer table.C
- 2.2Lifecycle: initialization, state, and failure pathsModel lifecycle transitions and explain why a selected operation, a completed operation, and a failed operation are different states.Python
Module 03 · 4 lessons
Memory and operating systems
Connect processes, threads, memory, executable formats, and API boundaries.
- 3.1Processes, threads, and memory ownershipExplain address-space ownership, thread execution, and why an address alone is insufficient to describe a memory operation.Concepts
- 3.2APIs, libraries, and security contextDistinguish a library dependency, an API call, and a successful privileged operation when reading an implementation.Concepts
- 3.3Platform abstractions: shared logic and native backendsIdentify which behavior belongs to shared program logic and which depends on Windows, Linux, or macOS interfaces.Python
- 3.4User mode, kernel components, and rootkit claimsDistinguish execution privilege, component type, and concealment behavior when examining kernel-related malware claims.Concepts
Module 04 · 1 Lesson
Configuration and data
Separate settings, serialized data, encoding, and cryptographic claims.
Module 05 · 2 lessons
Commands and communications
Read protocol boundaries, message state, and data movement.
- 5.1Messages, protocols, and data movementSeparate transport, message structure, command selection, collection, and transfer when studying communications code.Concepts
- 5.2Botnet architecture: topology, roles, and coordinationSeparate communication topology, message authority, and endpoint behavior using a static graph model.Python
Module 06 · 1 Lesson
Persistence and execution
Distinguish an execution trigger, a stored artifact, and its security context.
Module 07 · 1 Lesson
Process boundaries and injection
Understand execution location and the evidence needed to identify injection.
Module 08 · 2 lessons
Environment checks and obfuscation
Understand conditional behavior, packing, and the limits of environment signals.
- 8.1Anti-Debugging: IsDebuggerPresent (Windows)Explain how a debugger-presence check influences control flow and distinguish that signal from evidence of malicious behavior.C
- 8.2Environment signals, obfuscation, and packingSeparate an environment observation from a control-flow decision, and distinguish transformed bytes from the behavior they may represent.Concepts
Module 09 · 3 lessons
Collection, credentials, and impact
Study capability boundaries, credential lifecycles, ransomware, and data loss.
- 9.1Credential access, discovery, and capability boundariesExplain credential-related capabilities by separating access, representation, use, and outcome, without confusing discovery with privilege gain.Concepts
- 9.2Privilege escalation and lateral movement boundariesDistinguish a change in permissions from a change in execution location and explain the evidence required for each.Concepts
- 9.3Ransomware: data lifecycle, keys, and impactExplain ransomware-related implementation boundaries and distinguish changed data, encryption claims, recoverability, and confirmed impact.Concepts
Module 10 · 3 lessons
Builds, testing, and source studies
Connect build artifacts to source, test inert models, and complete a capstone.
- 10.1Builds, packaging, and component boundariesConnect source revisions, build choices, packaged components, and execution roles without treating a repository as a single executable.Concepts
- 10.2Testing inert models and interpreting observationsTest a local behavioral model and distinguish expected outcomes, observed outcomes, and untested assumptions.Python
- 10.3Capstone: explain a component from source to behaviorProduce an evidence-based component study connecting source, control flow, state, platform assumptions, and observed behavior.Concepts