2010-09-11 02:12:39 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< title > Snort AI preprocessor module: Module for the correlation of hyperalerts< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javaScript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body onload = 'searchBox.OnSelectItem(0);' >
<!-- Generated by Doxygen 1.7.1 -->
< script type = "text/javascript" > < ! - -
var searchBox = new SearchBox("searchBox", "search",false,'Search');
-->< / script >
< div class = "navigation" id = "top" >
< div class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main Page< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Data Structures< / span > < / a > < / li >
< li > < a href = "files.html" > < span > Files< / span > < / a > < / li >
< li id = "searchli" >
< div id = "MSearchBox" class = "MSearchBoxInactive" >
< span class = "left" >
< img id = "MSearchSelect" src = "search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
< input type = "text" id = "MSearchField" value = "Search" accesskey = "S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
< / span > < span class = "right" >
< a id = "MSearchClose" href = "javascript:searchBox.CloseResultsWindow()" > < img id = "MSearchCloseImg" border = "0" src = "search/close.png" alt = "" / > < / a >
< / span >
< / div >
< / li >
< / ul >
< / div >
< / div >
< div class = "header" >
< div class = "summary" >
< a href = "#nested-classes" > Data Structures< / a > |
< a href = "#enum-members" > Enumerations< / a > |
< a href = "#func-members" > Functions< / a > |
< a href = "#var-members" > Variables< / a > < / div >
< div class = "headertitle" >
< h1 > Module for the correlation of hyperalerts< / h1 > < / div >
< / div >
< div class = "contents" >
< table class = "memberdecls" >
< tr > < td colspan = "2" > < h2 > < a name = "nested-classes" > < / a >
Data Structures< / h2 > < / td > < / tr >
2010-09-11 12:45:30 +02:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > struct < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "structAI__alert__correlation.html" > AI_alert_correlation< / a > < / td > < / tr >
2010-09-11 02:12:39 +02:00
< tr > < td colspan = "2" > < h2 > < a name = "enum-members" > < / a >
Enumerations< / h2 > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > enum < / td > < td class = "memItemRight" valign = "bottom" > { < br / >
< a class = "el" href = "group__correlation.html#gga06fc87d81c62e9abb8790b6e5713c55ba0b3b5f651ab0c6355666ff7b1c778af8" > inHyperAlert< / a > ,
< a class = "el" href = "group__correlation.html#gga06fc87d81c62e9abb8790b6e5713c55ba52d913c46f650f89a5da3ff4bfb7a45d" > inSnortIdTag< / a > ,
< a class = "el" href = "group__correlation.html#gga06fc87d81c62e9abb8790b6e5713c55ba828f2ec4acb20bae9b9c9fb0c5e0881f" > inPreTag< / a > ,
< a class = "el" href = "group__correlation.html#gga06fc87d81c62e9abb8790b6e5713c55baf6430d8e5b9791cca74ec3b325a8339f" > inPostTag< / a > ,
< br / >
< a class = "el" href = "group__correlation.html#gga06fc87d81c62e9abb8790b6e5713c55ba551d1861515058fbfe34955d4170ae67" > TAG_NUM< / a >
< br / >
}< / td > < / tr >
< tr > < td colspan = "2" > < h2 > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
2010-09-11 12:45:30 +02:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > double < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#ga130e82017fc0abcb76b1a7740ae2f4df" > _AI_correlation_coefficient< / a > (< a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > *a, < a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > *b)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Compute the correlation coefficient between two alerts, as INTERSECTION(pre(B), post(A) / UNION(pre(B), post(A)). < a href = "#ga130e82017fc0abcb76b1a7740ae2f4df" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#ga0d094eae1d014d89a2de21263fa747da" > _AI_macro_subst< / a > (< a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > **alert)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Substitute the macros in hyperalert pre-conditions and post-conditions with their associated values. < a href = "#ga0d094eae1d014d89a2de21263fa747da" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > PRIVATE < a class = "el" href = "structAI__hyperalert__info.html" > AI_hyperalert_info< / a > * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#ga929e5c17fdb247a998d83ed6a4ae5a65" > _AI_hyperalert_from_XML< / a > (< a class = "el" href = "structAI__hyperalert__key.html" > AI_hyperalert_key< / a > key)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Parse info about a hyperalert from a correlation XML file, if it exists. < a href = "#ga929e5c17fdb247a998d83ed6a4ae5a65" > < / a > < br / > < / td > < / tr >
2010-09-11 02:12:39 +02:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#ga939353a4e15de7a8f4145ab986f584be" > AI_alert_correlation_thread< / a > (void *arg)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Thread for correlating clustered alerts. < a href = "#ga939353a4e15de7a8f4145ab986f584be" > < / a > < br / > < / td > < / tr >
< tr > < td colspan = "2" > < h2 > < a name = "var-members" > < / a >
Variables< / h2 > < / td > < / tr >
2010-09-11 12:45:30 +02:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > PRIVATE < a class = "el" href = "structAI__hyperalert__info.html" > AI_hyperalert_info< / a > * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#gae56c79aa018caaeebeeb709a9e51c9c2" > hyperalerts< / a > = NULL< / td > < / tr >
2010-09-11 02:12:39 +02:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > PRIVATE < a class = "el" href = "structAI__config.html" > AI_config< / a > * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#gaad7a982b6016390e7cd1164bd7db8bca" > conf< / a > = NULL< / td > < / tr >
2010-09-11 12:45:30 +02:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > PRIVATE < a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#gae837fc04e61c0eb052f997c54b4fd9fe" > alerts< / a > = NULL< / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > PRIVATE < a class = "el" href = "structAI__alert__correlation.html" > AI_alert_correlation< / a > * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#ga701934a296c51f2397d24e8bf4a9f021" > correlation_table< / a > = NULL< / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > PRIVATE < a class = "el" href = "spp__ai_8h.html#a3e5b8192e7d9ffaf3542f1210aec18dd" > BOOL< / a > < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__correlation.html#gafebc81c042a632dc987e113b7f390274" > lock_flag< / a > = false< / td > < / tr >
2010-09-11 02:12:39 +02:00
< / table >
< hr / > < h2 > Enumeration Type Documentation< / h2 >
< a class = "anchor" id = "ga06fc87d81c62e9abb8790b6e5713c55b" > < / a > <!-- doxytag: member="correlation.c::@0" ref="ga06fc87d81c62e9abb8790b6e5713c55b" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > anonymous enum< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Enumeration for the types of XML tags < / p >
< dl > < dt > < b > Enumerator: < / b > < / dt > < dd > < table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "gga06fc87d81c62e9abb8790b6e5713c55ba0b3b5f651ab0c6355666ff7b1c778af8" > < / a > <!-- doxytag: member="inHyperAlert" ref="gga06fc87d81c62e9abb8790b6e5713c55ba0b3b5f651ab0c6355666ff7b1c778af8" args="" --> inHyperAlert< / em > < / td > < td >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "gga06fc87d81c62e9abb8790b6e5713c55ba52d913c46f650f89a5da3ff4bfb7a45d" > < / a > <!-- doxytag: member="inSnortIdTag" ref="gga06fc87d81c62e9abb8790b6e5713c55ba52d913c46f650f89a5da3ff4bfb7a45d" args="" --> inSnortIdTag< / em > < / td > < td >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "gga06fc87d81c62e9abb8790b6e5713c55ba828f2ec4acb20bae9b9c9fb0c5e0881f" > < / a > <!-- doxytag: member="inPreTag" ref="gga06fc87d81c62e9abb8790b6e5713c55ba828f2ec4acb20bae9b9c9fb0c5e0881f" args="" --> inPreTag< / em > < / td > < td >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "gga06fc87d81c62e9abb8790b6e5713c55baf6430d8e5b9791cca74ec3b325a8339f" > < / a > <!-- doxytag: member="inPostTag" ref="gga06fc87d81c62e9abb8790b6e5713c55baf6430d8e5b9791cca74ec3b325a8339f" args="" --> inPostTag< / em > < / td > < td >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "gga06fc87d81c62e9abb8790b6e5713c55ba551d1861515058fbfe34955d4170ae67" > < / a > <!-- doxytag: member="TAG_NUM" ref="gga06fc87d81c62e9abb8790b6e5713c55ba551d1861515058fbfe34955d4170ae67" args="" --> TAG_NUM< / em > < / td > < td >
< / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< hr / > < h2 > Function Documentation< / h2 >
2010-09-11 12:45:30 +02:00
< a class = "anchor" id = "ga130e82017fc0abcb76b1a7740ae2f4df" > < / a > <!-- doxytag: member="correlation.c::_AI_correlation_coefficient" ref="ga130e82017fc0abcb76b1a7740ae2f4df" args="(AI_snort_alert *a, AI_snort_alert *b)" -->
2010-09-11 02:12:39 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2010-09-11 12:45:30 +02:00
< td class = "memname" > double _AI_correlation_coefficient < / td >
2010-09-11 02:12:39 +02:00
< td > (< / td >
2010-09-11 12:45:30 +02:00
< td class = "paramtype" > < a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > * < / td >
< td class = "paramname" > < em > a< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > < a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > * < / td >
< td class = "paramname" > < em > b< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Compute the correlation coefficient between two alerts, as INTERSECTION(pre(B), post(A) / UNION(pre(B), post(A)). < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > a< / em > < / td > < td > Alert a < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > b< / em > < / td > < td > Alert b < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > The correlation coefficient between A and B as coefficient in [0,1] < / dd > < / dl >
< / div >
< / div >
< a class = "anchor" id = "ga929e5c17fdb247a998d83ed6a4ae5a65" > < / a > <!-- doxytag: member="correlation.c::_AI_hyperalert_from_XML" ref="ga929e5c17fdb247a998d83ed6a4ae5a65" args="(AI_hyperalert_key key)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > PRIVATE < a class = "el" href = "structAI__hyperalert__info.html" > AI_hyperalert_info< / a > * _AI_hyperalert_from_XML < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "structAI__hyperalert__key.html" > AI_hyperalert_key< / a > < / td >
2010-09-11 02:12:39 +02:00
< td class = "paramname" > < em > key< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Parse info about a hyperalert from a correlation XML file, if it exists. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > key< / em > < / td > < td > Key (gid, sid, rev) identifying the alert < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > A hyperalert structure containing the info about the current alert, if the XML file was found < / dd > < / dl >
2010-09-11 12:45:30 +02:00
< / div >
< / div >
< a class = "anchor" id = "ga0d094eae1d014d89a2de21263fa747da" > < / a > <!-- doxytag: member="correlation.c::_AI_macro_subst" ref="ga0d094eae1d014d89a2de21263fa747da" args="(AI_snort_alert **alert)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void _AI_macro_subst < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > ** < / td >
< td class = "paramname" > < em > alert< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Substitute the macros in hyperalert pre-conditions and post-conditions with their associated values. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > alert< / em > < / td > < td > Reference to the hyperalert to work on < / td > < / tr >
< / table >
< / dd >
< / dl >
2010-09-11 02:12:39 +02:00
< / div >
< / div >
< a class = "anchor" id = "ga939353a4e15de7a8f4145ab986f584be" > < / a > <!-- doxytag: member="correlation.c::AI_alert_correlation_thread" ref="ga939353a4e15de7a8f4145ab986f584be" args="(void *arg)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* AI_alert_correlation_thread < / td >
< td > (< / td >
< td class = "paramtype" > void * < / td >
< td class = "paramname" > < em > arg< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Thread for correlating clustered alerts. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > arg< / em > < / td > < td > Void pointer to module's configuration < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< hr / > < h2 > Variable Documentation< / h2 >
2010-09-11 12:45:30 +02:00
< a class = "anchor" id = "gae837fc04e61c0eb052f997c54b4fd9fe" > < / a > <!-- doxytag: member="correlation.c::alerts" ref="gae837fc04e61c0eb052f997c54b4fd9fe" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > PRIVATE < a class = "el" href = "struct__AI__snort__alert.html" > AI_snort_alert< / a > * < a class = "el" href = "group__correlation.html#gae837fc04e61c0eb052f997c54b4fd9fe" > alerts< / a > = NULL< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< / div >
< / div >
2010-09-11 02:12:39 +02:00
< a class = "anchor" id = "gaad7a982b6016390e7cd1164bd7db8bca" > < / a > <!-- doxytag: member="correlation.c::conf" ref="gaad7a982b6016390e7cd1164bd7db8bca" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > PRIVATE < a class = "el" href = "structAI__config.html" > AI_config< / a > * < a class = "el" href = "group__correlation.html#gaad7a982b6016390e7cd1164bd7db8bca" > conf< / a > = NULL< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< / div >
< / div >
2010-09-11 12:45:30 +02:00
< a class = "anchor" id = "ga701934a296c51f2397d24e8bf4a9f021" > < / a > <!-- doxytag: member="correlation.c::correlation_table" ref="ga701934a296c51f2397d24e8bf4a9f021" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > PRIVATE < a class = "el" href = "structAI__alert__correlation.html" > AI_alert_correlation< / a > * < a class = "el" href = "group__correlation.html#ga701934a296c51f2397d24e8bf4a9f021" > correlation_table< / a > = NULL< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "gae56c79aa018caaeebeeb709a9e51c9c2" > < / a > <!-- doxytag: member="correlation.c::hyperalerts" ref="gae56c79aa018caaeebeeb709a9e51c9c2" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > PRIVATE < a class = "el" href = "structAI__hyperalert__info.html" > AI_hyperalert_info< / a > * < a class = "el" href = "group__correlation.html#gae56c79aa018caaeebeeb709a9e51c9c2" > hyperalerts< / a > = NULL< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< / div >
< / div >
< a class = "anchor" id = "gafebc81c042a632dc987e113b7f390274" > < / a > <!-- doxytag: member="correlation.c::lock_flag" ref="gafebc81c042a632dc987e113b7f390274" args="" -->
2010-09-11 02:12:39 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2010-09-11 12:45:30 +02:00
< td class = "memname" > PRIVATE < a class = "el" href = "spp__ai_8h.html#a3e5b8192e7d9ffaf3542f1210aec18dd" > BOOL< / a > < a class = "el" href = "group__correlation.html#gafebc81c042a632dc987e113b7f390274" > lock_flag< / a > = false< / td >
2010-09-11 02:12:39 +02:00
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< / div >
< / div >
< / div >
<!-- - window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(0)" > < span class = "SelectionMark" > < / span > All< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(1)" > < span class = "SelectionMark" > < / span > Data Structures< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(2)" > < span class = "SelectionMark" > < / span > Files< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(3)" > < span class = "SelectionMark" > < / span > Functions< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(4)" > < span class = "SelectionMark" > < / span > Variables< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(5)" > < span class = "SelectionMark" > < / span > Typedefs< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(6)" > < span class = "SelectionMark" > < / span > Enumerations< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(7)" > < span class = "SelectionMark" > < / span > Enumerator< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(8)" > < span class = "SelectionMark" > < / span > Defines< / a > < / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
2010-09-11 12:45:30 +02:00
< hr class = "footer" / > < address class = "footer" > < small > Generated on Sat Sep 11 2010 12:45:18 for Snort AI preprocessor module by
2010-09-11 02:12:39 +02:00
< a href = "http://www.doxygen.org/index.html" >
< img class = "footer" src = "doxygen.png" alt = "doxygen" / > < / a > 1.7.1 < / small > < / address >
< / body >
< / html >