This documentation purpose is to describe the different classes composing DFF Application Programming Interface. Developing a DFF module implied that you use this API and implement several interfaces. We will in a first place present the general architecture of the framework. Then, we will talk about the different building blocks composing the core of the framework and their roles.
Warning
We will suppose that you already used DFF in the past and are familiar with the framework functioning. If you are not, it is recommended that you first go to our wiki where the basis about DFF are presented.
Note
It is recommended that you have some coding skills in Python or C++, or in the ideal case, both.
Classes of the API are devided into several modules. The main three of them are :
Libvfs
|
This library has a major importance while developing modules. It is made up with classes and interfaces defining modules (see class libvfs.mfso and class libvfs.fso). It also provides a way to create, open and read nodes (see class libvfs.Node). |
Libenv
|
This library is used to set up the environment in which the module will run. Each module can take several arguments an inputs, depending on its purpose (see class libenv.env and class libenv.config). They also generate results highly dependant on the type of the analyzed data (see class libenv.results) about its execution. |
Libvariant
|
This library is used to manipulate data using a generic type, called Variant (see class libvariant.Variant). Modules manipulate several types of data, such as string, signed or unsigned integers 8, 16, 32 and 64 bits, timestamps, etc. Without a generic type it would be painful to use them and manually do all conversion between types. |
Mode details are given in the next parts.