Sviluppo un'applicazione con WinForms / C #.
- Nel mio software ho una lista di oggetti, diciamo
List<Item> Items
. - C'è anche un altro elenco di oggetti, diciamo
List<Factor> Factors
. - Ogni elemento contiene più Fattori di output (informazioni che puoi estrarre dall'elemento).
- Inoltre, ogni elemento contiene più fattori di input (possono attivare una funzione nell'elemento. Ogni elemento richiede un diverso insieme di fattori).
Un esempio molto semplicistico (come lo pseudo-codice) della classe potrebbe essere:
class Factor
{
int Id { get; set; };
string Title;
string Description;
}
class Item1 : Item
{
List<Factor> OutputFactors { get; set; } //Factor1, Factor3
List<Factor> InputFactors { get; set; } //Factor4, Factor2, Factor7
...
}
class Item2 : Item
{
List<Factor> OutputFactors { get; set; } //Factor3, Factor5, Factor6
List<Factor> InputFactors { get; set; } //Factor1, Factor3
...
}
Domanda: in un dato List<Item>
come posso trovare tutti i possibili percorsi / combinazioni che possono attivare ogni elemento della lista.
Ad esempio, il codice precedente con Item1 e Item2 avrebbe come risultato:
--------Path1----------------
Get Factors from: Item1.OutputFactors[0] , Item1.OutputFactors[1]
Triggers: Item2.InputFactors
--------Path2----------------
Get Factors from: Item1.OutputFactors[0] , Item2.OutputFactors[0]
Triggers: Item2.InputFactors
--------Path3----------------
....
Nota: userò il codice in uno strumento per la penna che sviluppo, al fine di rintracciare tutti i possibili fattori di attacco in ogni pagina web di un dominio.