| Package | Description |
|---|---|
| analysis | |
| matcher | |
| nfa | |
| regexcompiler |
| Modifier and Type | Field and Description |
|---|---|
protected NFAGraph |
AnalysisResults.originalGraph |
| Modifier and Type | Field and Description |
|---|---|
protected Map<NFAGraph,analysis.EdaAnalysisResults> |
NFAAnalyser.edaResultsCache |
protected Map<NFAGraph,IdaAnalysisResults> |
NFAAnalyser.idaResultsCache |
| Modifier and Type | Method and Description |
|---|---|
static NFAGraph |
NFAAnalysisTools.complementDfa(NFAGraph dfa) |
static NFAGraph |
NFAAnalysisTools.convertUpNFAToNFAGraph(NFAGraph m,
HashMap<NFAVertexND,UPNFAState> newStateMap) |
static NFAGraph |
NFAAnalysisTools.createFilter()
Creates an NFA graph representing the Mohri filter.
|
protected NFAGraph |
NFAAnalyser.createUnprioritisedNFAGraph(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.determinize(NFAGraph input,
Set<NFAVertexND> reachableFromStart,
Set<TransitionLabel> alphabet) |
static NFAGraph |
NFAAnalysisTools.dfaIntersection(NFAGraph m1,
NFAGraph m2) |
static NFAGraph |
NFAAnalyserFlattening.flattenNFA(NFAGraph m) |
static NFAGraph |
NFAAnalyserFlattening.flattenNFA2(NFAGraph m) |
NFAGraph |
NFAAnalyserInterface.EdaAnalysisResultsParallel.getMergedScc() |
NFAGraph |
AnalysisResults.getOriginalGraph() |
NFAGraph |
NFAAnalyserInterface.EdaAnalysisResultsESCC.getOriginalScc() |
NFAGraph |
NFAAnalyserInterface.EdaAnalysisResultsFilter.getPcScc() |
static NFAGraph |
NFAAnalysisTools.makeTrim(NFAGraph m)
Removes all useless states from an NFA graph.
|
static NFAGraph |
NFAAnalysisTools.makeTrimAlternative(NFAGraph m)
Removes all useless states from an NFA graph.
|
static NFAGraph |
NFAAnalysisTools.makeTrimFromStart(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.makeTrimUPNFA(NFAGraph m,
NFAGraph upnfa) |
static NFAGraph |
NFAAnalysisTools.productConstruction(NFAGraph m1,
NFAGraph m2,
HashMap<NFAEdge,TransitionLabel> originalWords) |
static NFAGraph |
NFAAnalysisTools.productConstructionAFA(NFAGraph m)
Calculates the product construction of a graph using the the Mohri
filter.
|
static NFAGraph |
NFAAnalysisTools.productConstructionAFAFA(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.productConstructionAFB(NFAGraph a,
NFAGraph b) |
| Modifier and Type | Method and Description |
|---|---|
static LinkedList<NFAGraph> |
NFAAnalysisTools.getEpsilonStronglyConnectedComponents(NFAGraph m)
Constructs a list of NFA graphs each representing a strongly connected
component containing only epsilon transitions in the graph given as
parameter.
|
static LinkedList<NFAGraph> |
NFAAnalysisTools.getStronglyConnectedComponents(NFAGraph m)
Constructs a list of NFA graphs each representing a strongly connected
component in the graph given as parameter.
|
static Map<NFAVertexND,NFAGraph> |
NFAAnalysisTools.mergeStronglyConnectedComponents(NFAGraph m,
boolean epsilon)
Creates a single state for each strongly connected component.
|
| Modifier and Type | Method and Description |
|---|---|
static String |
ExploitStringBuilder.buildPrefixString(NFAGraph m,
NFAVertexND finish)
Builds the string that takes the NFA to the state that shows EDA.
|
static String |
ExploitStringBuilder.buildPumpIntersect(NFAGraph pcscc,
NFAVertexND p,
NFAVertexND q)
This function builds the exploit string for a vulnerable regular
expression, in the cases where p and q were found in the scc.
|
static String |
ExploitStringBuilder.buildSuffixString(NFAGraph n,
NFAVertexND start) |
protected analysis.EdaAnalysisResults |
NFAAnalyserMerging.calculateEdaAnalysisResults(NFAGraph originalM) |
protected analysis.EdaAnalysisResults |
NFAAnalyserFlattening.calculateEdaAnalysisResults(NFAGraph originalM) |
protected abstract analysis.EdaAnalysisResults |
NFAAnalyser.calculateEdaAnalysisResults(NFAGraph originalM) |
protected analysis.EdaAnalysisResults |
NFAAnalyserMerging.calculateEdaUnprioritisedAnalysisResults(NFAGraph originalM) |
protected analysis.EdaAnalysisResults |
NFAAnalyserFlattening.calculateEdaUnprioritisedAnalysisResults(NFAGraph originalM) |
protected abstract analysis.EdaAnalysisResults |
NFAAnalyser.calculateEdaUnprioritisedAnalysisResults(NFAGraph originalM) |
protected IdaAnalysisResults |
NFAAnalyserMerging.calculateIdaAnalysisResults(NFAGraph originalM) |
protected IdaAnalysisResults |
NFAAnalyserFlattening.calculateIdaAnalysisResults(NFAGraph originalM) |
protected abstract IdaAnalysisResults |
NFAAnalyser.calculateIdaAnalysisResults(NFAGraph originalM) |
protected IdaAnalysisResults |
NFAAnalyserMerging.calculateIdaUnprioritisedAnalysisResults(NFAGraph originalM) |
protected IdaAnalysisResults |
NFAAnalyserFlattening.calculateIdaUnprioritisedAnalysisResults(NFAGraph originalM) |
protected abstract IdaAnalysisResults |
NFAAnalyser.calculateIdaUnprioritisedAnalysisResults(NFAGraph originalM) |
static NFAGraph |
NFAAnalysisTools.complementDfa(NFAGraph dfa) |
NFAAnalyserInterface.AnalysisResultsType |
NFAAnalyserInterface.containsEDA(NFAGraph m) |
NFAAnalyserInterface.AnalysisResultsType |
NFAAnalyser.containsEDA(NFAGraph originalM) |
NFAAnalyserInterface.AnalysisResultsType |
NFAAnalyserInterface.containsIDA(NFAGraph m) |
NFAAnalyserInterface.AnalysisResultsType |
NFAAnalyser.containsIDA(NFAGraph originalM) |
static NFAGraph |
NFAAnalysisTools.convertUpNFAToNFAGraph(NFAGraph m,
HashMap<NFAVertexND,UPNFAState> newStateMap) |
protected NFAGraph |
NFAAnalyser.createUnprioritisedNFAGraph(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.determinize(NFAGraph input,
Set<NFAVertexND> reachableFromStart,
Set<TransitionLabel> alphabet) |
static NFAGraph |
NFAAnalysisTools.dfaIntersection(NFAGraph m1,
NFAGraph m2) |
static LinkedList<NFAVertexND> |
NFAAnalyserFlattening.dfsFlatten(NFAGraph m,
NFAVertexND startVertex) |
protected analysis.EdaAnalysisResults |
NFAAnalyser.edaTestCaseFilter(NFAGraph originalM,
NFAGraph merged) |
protected analysis.EdaAnalysisResults |
NFAAnalyser.edaTestCaseParallel(NFAGraph originalM,
LinkedList<NFAGraph> sccsInFlat) |
protected analysis.EdaAnalysisResults |
NFAAnalyser.edaUnprioritisedAnalysis(NFAGraph m) |
ExploitString |
NFAAnalyserInterface.findEDAExploitString(NFAGraph m) |
ExploitString |
NFAAnalyser.findEDAExploitString(NFAGraph originalM) |
ExploitString |
NFAAnalyserInterface.findIDAExploitString(NFAGraph m) |
ExploitString |
NFAAnalyser.findIDAExploitString(NFAGraph originalM) |
static NFAGraph |
NFAAnalyserFlattening.flattenNFA(NFAGraph m) |
static NFAGraph |
NFAAnalyserFlattening.flattenNFA2(NFAGraph m) |
static Set<TransitionLabel> |
NFAAnalysisTools.getAlphabet(NFAGraph n) |
analysis.EdaAnalysisResults |
NFAAnalyserInterface.getEdaAnalysisResults(NFAGraph m) |
analysis.EdaAnalysisResults |
NFAAnalyser.getEdaAnalysisResults(NFAGraph m) |
static LinkedList<NFAGraph> |
NFAAnalysisTools.getEpsilonStronglyConnectedComponents(NFAGraph m)
Constructs a list of NFA graphs each representing a strongly connected
component containing only epsilon transitions in the graph given as
parameter.
|
IdaAnalysisResults |
NFAAnalyserInterface.getIdaAnalysisResults(NFAGraph m) |
IdaAnalysisResults |
NFAAnalyser.getIdaAnalysisResults(NFAGraph m) |
static LinkedList<NFAGraph> |
NFAAnalysisTools.getStronglyConnectedComponents(NFAGraph m)
Constructs a list of NFA graphs each representing a strongly connected
component in the graph given as parameter.
|
protected IdaAnalysisResults |
NFAAnalyser.idaTestCaseFilter(NFAGraph originalM,
NFAGraph flat) |
protected IdaAnalysisResults |
NFAAnalyser.idaUnprioritisedAnalysis(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.makeTrim(NFAGraph m)
Removes all useless states from an NFA graph.
|
static NFAGraph |
NFAAnalysisTools.makeTrimAlternative(NFAGraph m)
Removes all useless states from an NFA graph.
|
static NFAGraph |
NFAAnalysisTools.makeTrimFromStart(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.makeTrimUPNFA(NFAGraph m,
NFAGraph upnfa) |
static Map<NFAVertexND,NFAGraph> |
NFAAnalysisTools.mergeStronglyConnectedComponents(NFAGraph m,
boolean epsilon)
Creates a single state for each strongly connected component.
|
static HashMap<NFAVertexND,Integer> |
NFAAnalyserFlattening.numWalksFrom(NFAGraph m,
NFAVertexND s) |
static HashMap<NFAVertexND,Integer> |
NFAAnalysisTools.numWalksFrom(NFAGraph m,
NFAVertexND s)
Determines the number of walks between a vertex and all other vertices in
a given graph.
|
static void |
NFAAnalysisTools.prepareForFilter(NFAGraph m,
String modifyLabel,
String selfloopLabel)
Modifies an NFA graph so that it can be used with the Mohri filter.
|
static NFAGraph |
NFAAnalysisTools.productConstruction(NFAGraph m1,
NFAGraph m2,
HashMap<NFAEdge,TransitionLabel> originalWords) |
static NFAGraph |
NFAAnalysisTools.productConstructionAFA(NFAGraph m)
Calculates the product construction of a graph using the the Mohri
filter.
|
static NFAGraph |
NFAAnalysisTools.productConstructionAFAFA(NFAGraph m) |
static NFAGraph |
NFAAnalysisTools.productConstructionAFB(NFAGraph a,
NFAGraph b) |
static HashSet<NFAVertexND> |
NFAAnalysisTools.reachableWithEpsilon(NFAGraph n,
NFAVertexND v) |
protected AnalysisResults |
NFAAnalyser.searchEdaCache(NFAGraph originalM) |
protected AnalysisResults |
NFAAnalyser.searchIdaCache(NFAGraph originalM) |
static LinkedList<NFAEdge> |
NFAAnalysisTools.shortestPathBetween(NFAGraph m,
NFAVertexND start,
NFAVertexND finish) |
static LinkedList<NFAEdge> |
NFAAnalysisTools.shortestPathTo(NFAGraph m,
NFAVertexND finish)
This function finds the shortest path from the initial state in the NFA
to a certain finish state.
|
static HashMap<NFAVertexND,Integer> |
NFAAnalysisTools.topologicalSort(NFAGraph originalM)
A function that uses Kahn's algorithm to find the topological order of the vertices in
the graph.
|
static boolean |
NFAAnalysisTools.upNFAStateIsUseful(NFAGraph m,
NFAGraph upnfa,
UPNFAState upNFAState) |
| Modifier and Type | Method and Description |
|---|---|
protected analysis.EdaAnalysisResults |
NFAAnalyser.edaTestCaseParallel(NFAGraph originalM,
LinkedList<NFAGraph> sccsInFlat) |
| Constructor and Description |
|---|
AnalysisResults(NFAGraph originalGraph) |
IdaAnalysisResults(NFAGraph originalGraph,
analysis.IdaAnalysisResults.IdaCases idaCase) |
| Constructor and Description |
|---|
NFAMatcher(NFAGraph nfaGraph,
String inputString) |
| Modifier and Type | Method and Description |
|---|---|
NFAGraph |
NFAGraph.copy() |
NFAGraph |
NFAGraph.reverse() |
Copyright © 2021. All rights reserved.