<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>OpenRCE: Blog</title>
        <link>http://www.openrce.org/rss/feeds/blog</link>
        <description>OpenRCE: The Open Reverse Code Engineering Community</description>
                <item>
            <title>Fredet v1.3</title>
                            <pubDate>Tue, 04 Dec 2007 05:50:48 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/984/Fredet_v1.3</link>
                                        <author>mandingo &lt;email-suppressed@example.com&gt;</author>
                                                    <description>&lt;b&gt;Description&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Fredet means &amp;quot;Flexible Regular Expresion Data Extraction Tool&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The purpose of this tool is to facilitate the extraction of information contained in files using advanced regular expressions.&lt;br /&gt;
&lt;br /&gt;
Fredet allows nest and combine regular expressions, define fields to facilitate the extraction information to others, generate new &amp;quot;checks&amp;quot; by simply editing a text file (config.xml), and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requirements&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To work properly, the current version of &amp;quot;Fredet&amp;quot; needs:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* A Perl interpreter installed&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Curl binary for http requets&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Help&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
fredet v1.3 - &amp;quot;Flexible Regular Expresion Data Extraction Tool&amp;quot;&lt;br /&gt;
(C) Copyleft 2007, created by Mandingo # http://www.yoire.com&lt;br /&gt;
&lt;br /&gt;
Available checks (edit config.xml for checks management):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find comments in HTML file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;jpg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extract jpg files to disk&lt;br /&gt;
&amp;nbsp;&amp;nbsp;emails&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find email addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;werrors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Typical Web Errors&lt;br /&gt;
&amp;nbsp;&amp;nbsp;winfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Typical Web Info&lt;br /&gt;
&amp;nbsp;&amp;nbsp;asf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action script dangerous functions&lt;br /&gt;
&amp;nbsp;&amp;nbsp;title&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find titles in HTML files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dotnet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find .net error messages in HTML files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extract words from files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;ips&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find local IP addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find local paths&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dbs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find database error messages&lt;br /&gt;
&amp;nbsp;&amp;nbsp;links&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find links in files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dlinks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find dynamic links in files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find comments in HTML files&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet [[options] [&amp;lt;check&amp;gt;] [&amp;lt;format&amp;gt;] [&amp;lt;file|dir|url&amp;gt;] [&amp;lt;postData&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print filename before each line&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read data from standard input (STDIN)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -O&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display matching offsets&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -w&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sliding window mode (experimental)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XML output mode&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -m &amp;lt;regexp&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match this &amp;lt;regexp&amp;gt; (&amp;lt;check&amp;gt; won't be used)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -c &amp;lt;config_file&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;config file (def. config.xml)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -b &amp;lt;block_size&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; block size used for reading files (def. 5242880 bytes)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -o &amp;lt;out_file_fmt&amp;gt;&amp;nbsp;&amp;nbsp; dump results to disk using &amp;lt;out_file_fmt&amp;gt; format string&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet emails&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet emails example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet emails name example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet emails '$0;$1' example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet words http://www.google.com&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet -m '\d+' example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet -o 'file_$count.jpg' jpg image.bin&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage examples&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 1, getting more information about a &amp;quot;check&amp;quot;:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl emails&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find email addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;match[1].regexp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (?-xism:(\w+?)@([^\.]+)\.\w+(?=[&amp;lt;&amp;gt;\'\&amp;quot;\s]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;match[1].display&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;found email address: $0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.domain&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$2&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails &amp;lt;file&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails [field1] [field2] [...] &amp;lt;file&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails ['&amp;lt;format&amp;gt;'] &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails name example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails '$0;$1' example.txt&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* description: check name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* match[1].regexp: this check n&ordm;1 regular expresion&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* match[1].display: format used (optional) to display this regexp results&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* email: this name will be assigned to the first field of the regular expression&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* name: name for the second field&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* domain: name for the third field&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 2a, extracting email addresses present in &amp;quot;example.txt&amp;quot; file:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl emails example.txt&lt;br /&gt;
found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;br /&gt;
./fredet.pl emails email example.txt&lt;br /&gt;
j0hn@foo-ar.us&lt;br /&gt;
&lt;br /&gt;
./fredet.pl emails '$0;$1;$2' example.txt&lt;br /&gt;
j0hn@foo-ar.us;j0hn;foo-ar&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;example.txt&amp;quot; file has the following lines:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Try our wargames at &amp;lt;!--comment--&amp;gt;http://www.yoire.com, and enjoy it&amp;nbsp;&amp;nbsp;&lt;br /&gt;
invalid@email&lt;br /&gt;
//this is a comment&lt;br /&gt;
&amp;lt;!--172.18.1.2,j0hn@foo-ar.us c:windows&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
The definition of this &amp;quot;check&amp;quot; is stored inside &amp;quot;config.xml&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;check name=&amp;quot;emails&amp;quot; description=&amp;quot;find email addresses&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;found email address: $0&amp;quot;&amp;gt;(\w+?)@([^\.]+)\.\w+(?=[&amp;lt;&amp;gt;\'\&amp;quot;\s])&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;email&amp;quot; index=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;name&amp;quot; index=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;domain&amp;quot; index=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 2b, same as before using pipes:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
cat example.txt|./fredet.pl -s emails&lt;br /&gt;
found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 2c, &amp;quot;fredet&amp;quot;+&amp;quot;find&amp;quot; to process multiple files at once:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
find . -exec ./fredet.pl -f emails \{\} \;&lt;br /&gt;
./example.txt:found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Note: the &amp;quot;-f&amp;quot; option will shown the name of the opened file for each result.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 3, using regular expresions from command line:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl -m '\d+' example.txt&lt;br /&gt;
172&lt;br /&gt;
18&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
0&lt;br /&gt;
192&lt;br /&gt;
168&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 4a, working with URLs insead of files:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl words http://www.google.com&lt;br /&gt;
HTML&lt;br /&gt;
HEAD&lt;br /&gt;
meta&lt;br /&gt;
http&lt;br /&gt;
equiv&lt;br /&gt;
content&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
It's possible to send POST data after the URL; it's recommended to enclose it between quotes.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 4b, URL+POST:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl words http://www.google.com 'var1=param1&amp;amp;var2=param2'&lt;br /&gt;
html&lt;br /&gt;
head&lt;br /&gt;
meta&lt;br /&gt;
http&lt;br /&gt;
equiv&lt;br /&gt;
content&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 5, working with large files:&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
From version 1.2, it's possible to work with large binary files. The default block size is 1MB, but it's possible to change it using the new parameter -b&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sudo ./fredet.pl -b 524288 ips /dev/mem&lt;br /&gt;
192.168.0.0&lt;br /&gt;
10.0.0.0&lt;br /&gt;
172.16.0.0&lt;br /&gt;
172.18.1.130&lt;br /&gt;
172.18.1.239&lt;br /&gt;
172.16.176.102&lt;br /&gt;
172.174.35.4&lt;br /&gt;
192.26.10.2&lt;br /&gt;
10.46.174.27&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 6, extracting all &amp;quot;jpg&amp;quot; files from a binary image:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl -o 'image_$count.jpg' jpg 8-jpeg-search.dd&lt;br /&gt;
image_0001.jpg&lt;br /&gt;
image_0002.jpg&lt;br /&gt;
image_0003.jpg&lt;br /&gt;
image_0004.jpg&lt;br /&gt;
image_0005.jpg&lt;br /&gt;
image_0006.jpg&lt;br /&gt;
image_0007.jpg&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Config.xml&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
All the checks are configured inside this file. This is the basic format of a check:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;check name&amp;quot; description=&amp;quot;'check' description&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match[ modifiers=&amp;quot;modifiers&amp;quot;][display=&amp;quot;format&amp;quot;][output=&amp;quot;output_file&amp;quot;]&amp;gt;regexp&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[more &amp;quot;match&amp;quot; definitions]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;field name=&amp;quot;field name&amp;quot; index=&amp;quot;num1&amp;quot;/&amp;gt;]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;field name=&amp;quot;field name&amp;quot; index=&amp;quot;num2&amp;quot;/&amp;gt;]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[more &amp;quot;field&amp;quot; definitions]&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Next are real examples. This first example extracts the words (whose length &amp;gt;=3) of a file:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;words&amp;quot; description=&amp;quot;extract words from files&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match modifiers=&amp;quot;i&amp;quot; display=&amp;quot;$1&amp;quot;&amp;gt;([a-z]{3,}?)\&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
This example may help to extract the dynamic links inside a downloaded HTML page:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;dlinks&amp;quot; description=&amp;quot;find dynamic links in files&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;$1 $2&amp;quot;&amp;gt;(\w+)=[\&amp;quot;\']?(https*://.+\?.+?=.+?(?=[,\s\&amp;quot;\'&amp;lt;&amp;gt;]))&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;txt $0&amp;quot;&amp;gt;(?!=[\&amp;quot;\'])(https*://.+\?.+?=.+?(?=[,\s&amp;lt;&amp;gt;\&amp;quot;\']))&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;quot;display&amp;quot; is an optional parameter that allows us to specify the output format for this regexp&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;quot;modifiers&amp;quot; may be added to the regular expression; for example, &amp;quot;i&amp;quot; makes the regexp &amp;quot;case-insensitive.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Download &lt;a href=&quot;http://www.yoire.com/downloads/fredet13.tgz&quot;&gt;Fredet v1.3&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Fredet v1.2</title>
                            <pubDate>Thu, 29 Nov 2007 06:02:57 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/975/Fredet_v1.2</link>
                                        <author>mandingo &lt;email-suppressed@example.com&gt;</author>
                                                    <description>&lt;b&gt;Description&lt;/b&gt;&lt;br /&gt;
Fredet means &amp;quot;Flexible Regular Expresion Data Extraction Tool&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The purpose of this tool is to facilitate the extraction of information contained in files using advanced regular expressions.&lt;br /&gt;
&lt;br /&gt;
Fredet allows nest and combine regular expressions, define fields to facilitate the extraction information to others, generate new &amp;quot;checks&amp;quot; by simply editing a text file (config.xml), and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requirements&lt;/b&gt;&lt;br /&gt;
To work properly, the current version of &amp;quot;Fredet&amp;quot; needs:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* A Unix / Linux or Windows operating system&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* with a Perl interpreter and &amp;quot;File:: Basename&amp;quot; installed&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Help&lt;/b&gt;&lt;code&gt;&lt;br /&gt;
fredet v1.2 - &amp;quot;Flexible Regular Expresion Data Extraction Tool&amp;quot;&lt;br /&gt;
(C) Copyleft 2007, created by Mandingo # http://www.yoire.com&lt;br /&gt;
&lt;br /&gt;
Available checks (edit config.xml for checks management):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;werrors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Typical Web Errors&lt;br /&gt;
&amp;nbsp;&amp;nbsp;winfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Typical Web Info&lt;br /&gt;
&amp;nbsp;&amp;nbsp;asf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action script dangerous functions&lt;br /&gt;
&amp;nbsp;&amp;nbsp;title&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find titles in HTML files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dotnet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find .net error messages in HTML files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extract words from files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;emails&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find email addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;ips&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find local IP addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find local paths&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dbs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find database error messages&lt;br /&gt;
&amp;nbsp;&amp;nbsp;links&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find links in files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dlinks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find dynamic links in files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find comments in HTML file&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl [options] [[&amp;lt;check&amp;gt;] [&amp;lt;format&amp;gt;] &amp;lt;file&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print filename before each line&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read data from standard input (STDIN)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -m &amp;lt;regexp&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match this &amp;lt;regexp&amp;gt; (&amp;lt;check&amp;gt; won't be used)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -b &amp;lt;block_size&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; block size used for reading files (def. 1048576 bytes)&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails name example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails '$0;$1' example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl words http://www.google.com&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl -m '\d+' example.txt&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage examples&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 1, getting more information about a &amp;quot;check&amp;quot;:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl emails&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find email addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;match[1].regexp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (?-xism:(\w+?)@([^\.]+)\.\w+(?=[&amp;lt;&amp;gt;\'\&amp;quot;\s]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;match[1].display&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;found email address: $0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.domain&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$2&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails &amp;lt;file&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails [field1] [field2] [...] &amp;lt;file&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails ['&amp;lt;format&amp;gt;'] &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails name example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails '$0;$1' example.txt&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* description: check name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* match[1].regexp: this check n&ordm;1 regular expresion&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* match[1].display: format used (optional) to display this regexp results&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* email: this name will be assigned to the first field of the regular expression&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* name: name for the second field&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* domain: name for the third field&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 2a, extracting email addresses present in &amp;quot;example.txt&amp;quot; file:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl emails example.txt&lt;br /&gt;
found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;br /&gt;
./fredet.pl emails email example.txt&lt;br /&gt;
j0hn@foo-ar.us&lt;br /&gt;
&lt;br /&gt;
./fredet.pl emails '$0;$1;$2' example.txt&lt;br /&gt;
j0hn@foo-ar.us;j0hn;foo-ar&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Where &amp;quot;example.txt&amp;quot; file has the following lines:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Try our wargames at &amp;lt;!--comment--&amp;gt;http://www.yoire.com, and enjoy it&amp;nbsp;&amp;nbsp;&lt;br /&gt;
invalid@email&lt;br /&gt;
//this is a comment&lt;br /&gt;
&amp;lt;!--172.18.1.2,j0hn@foo-ar.us c:windows&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
The definition of this &amp;quot;check&amp;quot; is stored inside &amp;quot;config.xml&amp;quot;:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;check name=&amp;quot;emails&amp;quot; description=&amp;quot;find email addresses&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;found email address: $0&amp;quot;&amp;gt;(\w+?)@([^\.]+)\.\w+(?=[&amp;lt;&amp;gt;\'\&amp;quot;\s])&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;email&amp;quot; index=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;name&amp;quot; index=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;domain&amp;quot; index=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 2b, same as before using pipes:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
cat example.txt|./fredet.pl -s emails&lt;br /&gt;
found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 2c, &amp;quot;fredet&amp;quot;+&amp;quot;find&amp;quot; to process multiple files at once:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
find . -exec ./fredet.pl -f emails {} ;&lt;br /&gt;
./example.txt:found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Note: the &amp;quot;-f&amp;quot; option will shown the name of the opened file for each result.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 3, using regular expresions from command line:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl -m '\d+' example.txt&lt;br /&gt;
172&lt;br /&gt;
18&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
0&lt;br /&gt;
192&lt;br /&gt;
168&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;i&gt;Example 4a, working with URLs insead of files:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl words http://www.google.com&lt;br /&gt;
HTML&lt;br /&gt;
HEAD&lt;br /&gt;
meta&lt;br /&gt;
http&lt;br /&gt;
equiv&lt;br /&gt;
content&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
It's possible to send POST data after the URL; it's recommended to enclose it between quotes.&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 4b, URL+POST:&lt;/i&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl words http://www.google.com 'var1=param1&amp;amp;var2=param2'&lt;br /&gt;
html&lt;br /&gt;
head&lt;br /&gt;
meta&lt;br /&gt;
http&lt;br /&gt;
equiv&lt;br /&gt;
content&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Example 5, working with large files:&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
From version 1.2, it's possible to work with large binary files. The default block size is 1MB, but it's possible to change it using the new parameter -b&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sudo ./fredet.pl -b 524288 ips /dev/mem&lt;br /&gt;
192.168.0.0&lt;br /&gt;
10.0.0.0&lt;br /&gt;
172.16.0.0&lt;br /&gt;
172.18.1.130&lt;br /&gt;
172.18.1.239&lt;br /&gt;
172.16.176.102&lt;br /&gt;
172.174.35.4&lt;br /&gt;
192.26.10.2&lt;br /&gt;
10.46.174.27&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;b&gt;Config.xml&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
All the checks are configured inside this file. This is the basic format of a check:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;check name&amp;quot; description=&amp;quot;'check' description&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match[ modifiers=&amp;quot;modifiers&amp;quot;][display=&amp;quot;format&amp;quot;]&amp;gt;regexp&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[more &amp;quot;match&amp;quot; definitions]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;field name=&amp;quot;field name&amp;quot; index=&amp;quot;num1&amp;quot;/&amp;gt;]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;field name=&amp;quot;field name&amp;quot; index=&amp;quot;num2&amp;quot;/&amp;gt;]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[more &amp;quot;field&amp;quot; definitions]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Next are real examples. This first example extracts the words (whose length &amp;gt;=3) of a file:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;words&amp;quot; description=&amp;quot;extract words from files&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match modifiers=&amp;quot;i&amp;quot; display=&amp;quot;$1&amp;quot;&amp;gt;([a-z]{3,}?)\w&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
This example may help to extract the dynamic links inside a downloaded HTML page:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;dlinks&amp;quot; description=&amp;quot;find dynamic links in files&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;$1 $2&amp;quot;&amp;gt;(\w+)=[\&amp;quot;\']?(https*://.+\?.+?=.+?(?=[,\s\&amp;quot;\'&amp;lt;&amp;gt;]))&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;txt $0&amp;quot;&amp;gt;(?!=[\&amp;quot;\'])(https*://.+\?.+?=.+?(?=[,\s&amp;lt;&amp;gt;\&amp;quot;\']))&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;quot;display&amp;quot; is an optional parameter that allows us to specify the output format for this regexp&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;quot;modifiers&amp;quot; may be added to the regular expression; for example, &amp;quot;i&amp;quot; makes the regexp &amp;quot;case-insensitive.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download&lt;/b&gt; &lt;a href=&quot;http://www.yoire.com/downloads/fredet12.tgz&quot;&gt;Fredet v1.2&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Fredet v1.1</title>
                            <pubDate>Tue, 27 Nov 2007 05:52:17 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/972/Fredet_v1.1</link>
                                        <author>mandingo &lt;email-suppressed@example.com&gt;</author>
                                                    <description>Fredet means &amp;quot;Flexible Regular Expresion Data Extraction Tool&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The purpose of this tool is to facilitate the extraction of information contained in files using&lt;br /&gt;
advanced regular expressions.&lt;br /&gt;
&lt;br /&gt;
Fredet allows nest and combine regular expressions, define fields to facilitate the extraction information&lt;br /&gt;
to others, generate new &amp;quot;checks&amp;quot; by simply editing a text file (config.xml), and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requirements&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To work properly, the current version of &amp;quot;Fredet&amp;quot; needs:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* A Unix / Linux or Windows operating system&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* with a Perl interpreter and &amp;quot;File:: Basename&amp;quot; installed&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Help&lt;/b&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
fredet v1.1 - &amp;quot;Flexible Regular Expresion Data Extraction Tool&amp;quot;&lt;br /&gt;
(C) Copyleft 2007, created by Mandingo # http://www.yoire.com&lt;br /&gt;
&lt;br /&gt;
Available checks (edit config.xml for checks management):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;asf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action script dangerous functions&lt;br /&gt;
&amp;nbsp;&amp;nbsp;words&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extract words from files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;emails&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find email addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;ips&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find local IP addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find local paths&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dbs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find database error messages&lt;br /&gt;
&amp;nbsp;&amp;nbsp;links&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;find links in files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;dlinks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find dynamic links in files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find comments in HTML files&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl [options] [[&amp;lt;check&amp;gt;] [&amp;lt;format&amp;gt;] &amp;lt;file&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print filename before each line&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read data from standard input (STDIN)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; -m &amp;lt;regexp&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match this &amp;lt;regexp&amp;gt; (&amp;lt;check&amp;gt; won't be used)&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails name example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails '$0;$1' example.txt&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage examples&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
* Example 1, getting more information about a &amp;quot;check&amp;quot;:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl emails&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find email addresses&lt;br /&gt;
&amp;nbsp;&amp;nbsp;match[1].regexp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (?-xism:(\w+?)@([^\.]+).\w+(?=[&amp;lt;&amp;gt;\'\&amp;quot;\s]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;match[1].display&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;found email address: $0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.email&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;field.domain&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$2&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails &amp;lt;file&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails [field1] [field2] [...] &amp;lt;file&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails ['&amp;lt;format&amp;gt;'] &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails name example.txt&lt;br /&gt;
&amp;nbsp;&amp;nbsp; fredet.pl emails '$0;$1' example.txt&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* description: check name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* match[1].regexp: this check n&ordm;1 regular expresion&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* match[1].display: format used (optional) to display this regexp results&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* email: this name will be assigned to the first field of the regular expression&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* name: name for the second field&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* domain: name for the third field&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Example 2a, extracting email addresses present in &amp;quot;example.txt&amp;quot; file:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl emails example.txt&lt;br /&gt;
found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;br /&gt;
./fredet.pl emails email example.txt&lt;br /&gt;
j0hn@foo-ar.us&lt;br /&gt;
&lt;br /&gt;
./fredet.pl emails '$0;$1;$2' example.txt&lt;br /&gt;
j0hn@foo-ar.us;j0hn;foo-ar&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Where &amp;quot;example.txt&amp;quot; file has the following lines:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Try our wargames at &amp;lt;!--comment--&amp;gt;http://www.yoire.com, and enjoy it&amp;nbsp;&amp;nbsp;&lt;br /&gt;
invalid@email&lt;br /&gt;
//this is a comment&lt;br /&gt;
&amp;lt;!--172.18.1.2,j0hn@foo-ar.us c:windows&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
The definition of this &amp;quot;check&amp;quot; is stored inside &amp;quot;config.xml&amp;quot;:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;check name=&amp;quot;emails&amp;quot; description=&amp;quot;find email addresses&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;found email address: $0&amp;quot;&amp;gt;(\w+?)@([^\.]+)\.w+(?=[&amp;lt;&amp;gt;\'\&amp;quot;\s])&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;email&amp;quot; index=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;name&amp;quot; index=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;field name=&amp;quot;domain&amp;quot; index=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
* Example 2b, same as before using pipes:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
cat example.txt|./fredet.pl -s emails&lt;br /&gt;
found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
* Example 2c, &amp;quot;fredet&amp;quot;+&amp;quot;find&amp;quot; to process multiple files at once:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
find . -exec ./fredet.pl -f emails {} ;&lt;br /&gt;
./example.txt:found email address: j0hn@foo-ar.us&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Note: the &amp;quot;-f&amp;quot; option will shown the name of the opened file for each result.&lt;br /&gt;
&lt;br /&gt;
* Example 3, using regular expresions from command line:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./fredet.pl -m 'd+' example.txt&lt;br /&gt;
172&lt;br /&gt;
18&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
0&lt;br /&gt;
192&lt;br /&gt;
168&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Config.xml&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
All the checks are configured inside this file. This is the basic format of a check:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;check name&amp;quot; description=&amp;quot;'check' description&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match[ modifiers=&amp;quot;modifiers&amp;quot;][display=&amp;quot;format&amp;quot;]&amp;gt;regexp&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[more &amp;quot;match&amp;quot; definitions]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;field name=&amp;quot;field name&amp;quot; index=&amp;quot;num1&amp;quot;/&amp;gt;]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;lt;field name=&amp;quot;field name&amp;quot; index=&amp;quot;num2&amp;quot;/&amp;gt;]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[more &amp;quot;field&amp;quot; definitions]&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Next are real examples. This first example extracts the words (whose length &amp;gt;=3) of a file:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;words&amp;quot; description=&amp;quot;extract words from files&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match modifiers=&amp;quot;i&amp;quot; display=&amp;quot;$1&amp;quot;&amp;gt;([a-z]{3,}?)\w&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
This example may help to extract the dynamic links inside a downloaded HTML page:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;check name=&amp;quot;dlinks&amp;quot; description=&amp;quot;find dynamic links in files&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;$1 $2&amp;quot;&amp;gt;(\w+)=[\&amp;quot;\']?(https*://.+\?.+?=.+?(?=[,\s\&amp;quot;\'&amp;lt;&amp;gt;]))&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;match display=&amp;quot;txt $0&amp;quot;&amp;gt;(?!=[\&amp;quot;\'])(https*://.+\?.+?=.+?(?=[,\s&amp;lt;&amp;gt;\&amp;quot;\']))&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/check&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;quot;display&amp;quot; is an optional parameter that allows us to specify the output format for this regexp&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;quot;modifiers&amp;quot; may be added to the regular expression; for example, &amp;quot;i&amp;quot; makes the regexp &amp;quot;case-insensitive.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Download &lt;a href=&quot;http://www.yoire.com/downloads/fredet11.tgz&quot;&gt;Fredet v1.1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description>
                    </item>
                <item>
            <title>XSS Check v1.0</title>
                            <pubDate>Tue, 27 Nov 2007 04:17:40 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/970/XSS_Check_v1.0</link>
                                        <author>mandingo &lt;email-suppressed@example.com&gt;</author>
                                                    <description>XSS_Check may allow us to detect potentially &amp;quot;Cross-Site Scripting&amp;quot; (XSS) vulnerable URLs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Help&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The current version of &amp;quot;XSS_Check&amp;quot; showns the following help:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
xss_check.pl v1.0 (C) Copyleft 2007 - By Mandingo at http://www.yoire.com&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Usage: perl xss_check.pl &amp;lt;url|-i &amp;lt;file&amp;gt;&amp;gt; [postData] [OPTIONS]&lt;br /&gt;
&lt;br /&gt;
Overview:&lt;br /&gt;
&lt;br /&gt;
XSS_Check performs various Cross-Site Scripting (XSS) against provided URLs in order to detect this kind of vulnerability.&lt;br /&gt;
&lt;br /&gt;
It's possible to pass an URL as first parameter in commandline, or a list of URLs using the option -i &amp;lt;file&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Options:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-x server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Check XSS using a proxy server&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-c cookie&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Use this cookie on connections&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-o file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Output results to XML file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-i file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Read URLs from file&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-v	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Verbose output&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-h	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This help&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage examples&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Example 1, detecting XSS in a single URL:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./xss_check.pl http://testasp.acunetix.com/Search.asp?tfsearch=&lt;br /&gt;
&lt;br /&gt;
[f] http://testasp.acunetix.com/Search.asp?tfsearch=&amp;quot;'&amp;gt;XSS_HERE&lt;br /&gt;
[f] http://testasp.acunetix.com/Search.asp?tfsearch=&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Example 2, detecting XSS in a single URL, the option &amp;quot;-v&amp;quot; will shown all the requests done:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./xss_check.pl http://testasp.acunetix.com/Search.asp?tfsearch= -v&lt;br /&gt;
&lt;br /&gt;
[f] http://testasp.acunetix.com/Search.asp?tfsearch=&amp;quot;'&amp;gt;XSS_HERE&lt;br /&gt;
[-] http://testasp.acunetix.com/Search.asp 'tfsearch=&amp;quot;'&amp;gt;XSS_HERE'&lt;br /&gt;
[-] http://testasp.acunetix.com/Search.asp?tfsearch=&amp;quot;'%253EXSS_HERE&lt;br /&gt;
[-] http://testasp.acunetix.com/Search.asp 'tfsearch=&amp;quot;'%253EXSS_HERE'&lt;br /&gt;
[f] http://testasp.acunetix.com/Search.asp?tfsearch=&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&lt;br /&gt;
[-] http://testasp.acunetix.com/Search.asp 'tfsearch=&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;'&lt;br /&gt;
[-] http://testasp.acunetix.com/Search.asp?tfsearch=%253CH1%253EXSS_HERE%253C/H1%253E&lt;br /&gt;
[-] http://testasp.acunetix.com/Search.asp 'tfsearch=%253CH1%253EXSS_HERE%253C/H1%253E'&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Example 3: Detecting XSS using an input file with URLs&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
./xss_check.pl -i checks.txt&lt;br /&gt;
&lt;br /&gt;
[f] http://testphp.acunetix.com/guestbook.php 'text=&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&amp;amp;submit=add message&amp;amp;name=anonymous user'&lt;br /&gt;
[f] http://testphp.acunetix.com/guestbook.php 'name=anonymous user&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&amp;amp;text=&amp;amp;submit=add message'&lt;br /&gt;
[f] http://testphp.acunetix.com/showimage.php?file=.%2Fpictures%2F1.jpg&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&lt;br /&gt;
[f] http://testphp.acunetix.com/showimage.php?file=.%2Fpictures%2F1.jpg&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&amp;amp;size=160&lt;br /&gt;
[f] http://testphp.acunetix.com/userinfo.php 'uname=&amp;quot;'&amp;gt;XSS_HERE&amp;amp;pass='&lt;br /&gt;
[f] http://testphp.acunetix.com/userinfo.php 'uname=&amp;lt;H1&amp;gt;XSS_HERE&amp;lt;/H1&amp;gt;&amp;amp;pass='&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Where &amp;quot;checks.txt&amp;quot; is a text file with the following URLs:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
http://testphp.acunetix.com/artists.php?artist=1&lt;br /&gt;
http://testphp.acunetix.com/comment.php?aid=1&lt;br /&gt;
http://testphp.acunetix.com/guestbook.php 'text=&amp;amp;submit=add message&amp;amp;name=anonymous user'&lt;br /&gt;
http://testphp.acunetix.com/listproducts.php?cat=1&lt;br /&gt;
http://testphp.acunetix.com/product.php?pic=1&lt;br /&gt;
http://testphp.acunetix.com/redir.php?r=http://www.eclectasy.com/Fractal-Explorer/index.html&lt;br /&gt;
http://testphp.acunetix.com/search.php?test=query&lt;br /&gt;
http://testphp.acunetix.com/search.php?test=query 'gobutton=go&amp;amp;searchfor='&lt;br /&gt;
http://testphp.acunetix.com/showimage.php?file=.%2Fpictures%2F1.jpg&lt;br /&gt;
http://testphp.acunetix.com/showimage.php?file=.%2Fpictures%2F1.jpg&amp;amp;size=160&lt;br /&gt;
http://testphp.acunetix.com/userinfo.php 'uname=&amp;amp;pass=&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Note: The information that should be sent using POST must be enclose between simple quotes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Download &lt;a href=&quot;http://www.yoire.com/downloads/XSS_Check.pl&quot;&gt;XSS_Check.pl&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
</description>
                    </item>
            </channel>
</rss>
