C# Module Interface Reference
This section describes interfaces that a C# attack module should implement.
Interface ICSModuleFactory
A C# attack module should implement a class named CSModuleFactory (it will be loaded by AppSpider by name) which should be derived from the following interface:
public interface
ICSModuleFactory
{
bool
CreateModule(Guid
moduleGuid, out
ICSModule
module);
}
Method | Description |
---|---|
CreateModule | This function is invoked to create an instance of the Attack Module. Parameters: moduleGuid - GUID of the module. This parameter is used by the class factory to decide which module to instantiates if the DLL implements multiple Attack Modules. module [out, retval] - output parameter initialized with the module reference Return value: True - if operation was successful False - if operation failed |
Interface ICSModule
Every Attack Module should implement the following interface:
public interface
ICSModule
{
void
Load(uint moduleRunnerId);
void
InitForScan();
void
UninitForScan();
void
InitForAttackConfig();
void
UninitForAttackConfig();
void
InitForCrawlResult();
void
UninitForCrawlResult();
void
InitForAttackPoint();
void
UninitForAttackPoint();
bool
AttackPointIsRelevant();
uint
CalculateNumberOfAttacks();
bool
RunAttack(uint attackIndex);
void
RunPassiveAnalysis();
}
Method | Description |
---|---|
Load |
This function is invoked immediately after a module is created by ICSModuleFactory::CreateModule. The purpose of this function in to bind a C# Attack Module object to a ModuleRunner object. Parameters:
|
InitForScan |
Not invoked, reserved for future versions |
UninitForScan |
Not invoked, reserved for future versions |
InitForAttackConfig |
Not invoked, reserved for future versions |
UninitForAttackConfig |
Not invoked, reserved for future versions |
InitForCrawlResult |
Not invoked, reserved for future versions |
UninitForCrawlResult |
Not invoked, reserved for future versions |
InitForAttackPoint |
Not invoked, reserved for future versions |
UninitForAttackPoint |
Not invoked, reserved for future versions |
AttackPointIsRelevant |
Not invoked, reserved for future versions |
CalculateNumberOfAttacks |
Calculates number of attacks for a given Attack Point and Attack Configuration. If the module is not interested in a given Attack Point it should return zero. |
RunAttack |
This function is invoked to run an active attack. Parameters:
Return value:
|
RunPassiveAnalysis |
This function is invoked to run passive analysis on the response. |
What's Next?