-
Notifications
You must be signed in to change notification settings - Fork 28
Developer Guide
This guide is for anyone who wants to develop their own DropEngine modules. It is highly recommended that you familiarize yourself with DropEngine both at an operational and conceptual level prior to working through this guide. If you haven't read the rest of the docs yet, start there.
From a developer's perspective, a module is dynamically loaded Python code that is executed by DropEngine during the payload creation process to accomplish one of the following tasks:
- generate payload components
- obfuscate or encrypt the payload
- generate dependencies for other module types (e.g. generating encryption keys for crypter modules)
All of DropEngine’s module types can be placed into one of the following broad categories:
- Input module – desc exists
- Output module – desc exists
- Mutator – desc exists
Both input modules and mutators are relatively straightforward and consist of a single Python file containing a class definition that follows a standardized format. The structure of these module categories are covered in the following subsections: