<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://toorcon.techpathways.com/cs/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ProScript and Perl </title><link>http://toorcon.techpathways.com/cs/forums/5/ShowForum.aspx</link><description>Discussions related to the ProScript API and Perl</description><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>Re: ProScript searches</title><link>http://toorcon.techpathways.com/cs/forums/thread/80.aspx</link><pubDate>Wed, 27 Sep 2006 15:40:46 GMT</pubDate><guid isPermaLink="false">e7e58421-8683-42c1-b30c-f6943a49c522:80</guid><dc:creator>Chris</dc:creator><slash:comments>0</slash:comments><comments>http://toorcon.techpathways.com/cs/forums/thread/80.aspx</comments><wfw:commentRss>http://toorcon.techpathways.com/cs/forums/commentrss.aspx?SectionID=5&amp;PostID=80</wfw:commentRss><description>&lt;P class=MsoNormal&gt;Harlan,&lt;/P&gt;
&lt;P class=MsoNormal&gt;Since this script uses ProScript’s data carving API’s I don’t see a direct way to search allocated and unallocated sectors. The data carving API’s didn’t include allocated by design since files in allocated can be found more easily with a standard file system search. &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;The short answer is that I’m not sure if there will be an easy way to integrate a regex search outside of the data carving API’s, but I’ll look into it. &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Based on your question I do think it is a good idea to add the ability to also add access to allocated sectors in the data carving API’s. I’ll put it on our post-5.0 API Enhancements. We will also be adding the ability to carve out only X bytes to the set. &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;</description></item><item><title>Re: ProScript searches</title><link>http://toorcon.techpathways.com/cs/forums/thread/79.aspx</link><pubDate>Wed, 27 Sep 2006 01:25:23 GMT</pubDate><guid isPermaLink="false">e7e58421-8683-42c1-b30c-f6943a49c522:79</guid><dc:creator>keydet89</dc:creator><slash:comments>0</slash:comments><comments>http://toorcon.techpathways.com/cs/forums/thread/79.aspx</comments><wfw:commentRss>http://toorcon.techpathways.com/cs/forums/commentrss.aspx?SectionID=5&amp;PostID=79</wfw:commentRss><description>Chris,&lt;br&gt;&lt;br&gt;This is great, thanks.&amp;nbsp; I'm sure that I can cobble something together to meet my/our needs.&lt;br&gt;&lt;br&gt;My only question now is, if this is for unallocated space, how would I get the script to search over *all* sectors?&amp;nbsp; &lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;&lt;br&gt;Harlan&lt;br&gt;</description></item><item><title>Re: ProScript searches</title><link>http://toorcon.techpathways.com/cs/forums/thread/77.aspx</link><pubDate>Mon, 25 Sep 2006 23:44:51 GMT</pubDate><guid isPermaLink="false">e7e58421-8683-42c1-b30c-f6943a49c522:77</guid><dc:creator>Chris</dc:creator><slash:comments>0</slash:comments><comments>http://toorcon.techpathways.com/cs/forums/thread/77.aspx</comments><wfw:commentRss>http://toorcon.techpathways.com/cs/forums/commentrss.aspx?SectionID=5&amp;PostID=77</wfw:commentRss><description>&lt;P&gt;Harlan,&lt;/P&gt;
&lt;P&gt;Since this is a fairly common need I'm sure there are a few out there, but I haven't seen them directly. Here's a script used to carve IP Addresses from unallocated space that you should be able to hack up to do what you want:&lt;/P&gt;
&lt;P&gt;----begin script------&lt;/P&gt;
&lt;P&gt;#############################################################################&lt;BR&gt;# Script Name: CarvIPAddresses.pl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;# Discription: Script to search for, select and extract all jpg files &lt;BR&gt;#&lt;BR&gt;#&lt;BR&gt;# Initially, this script will proceed with a content search. Once it is done, &lt;BR&gt;# The Script will fetch all free clusters from the partition and start searching. &lt;BR&gt;# The function, ReadConsSectors reads consecutive clusters from the file system &lt;BR&gt;# those are free. If the header is found, then we will try to read the footer from &lt;BR&gt;# that, assuming that, the file was consecutive.&lt;BR&gt;# The script can be executed on any physical/logical drive/image or memory images.&lt;BR&gt;#&lt;BR&gt;# ProScript Version: 1.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;# Perl Version: 5.8.6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;# Author: Development Team&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;# Histroy: 8/4/5 Original Script using ProScript 1.1 data carving api's&amp;nbsp; &lt;BR&gt;# Known issues: Will not work on compressed images, will not work on multi image projects&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/P&gt;
&lt;P&gt;use ProScript;&lt;BR&gt;# Users should ensure they set search term file location and target directory for exporting files&lt;BR&gt;$TargetDir = "C:\\ProDiscover\\ProScript\\Output"; &lt;/P&gt;
&lt;P&gt;# Users should uncomment the header, footer, and extension for the desired artifact search. &lt;BR&gt;# Note only one header, footer, and extension group shoud be uncommented. &lt;BR&gt;sub FindIPAddress()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;my ($Name) = @_;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$Header = "([\\d]+)\\.([\\d]+)\\.([\\d]+)\\.([\\d]+)";&lt;BR&gt;&amp;nbsp;$Footer = "";&lt;BR&gt;&amp;nbsp;$Extn = "txt";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;my $Handle = PSSearchAndRecoverFile($Name, $Header, $Footer, $TargetDir, $Extn);&lt;BR&gt;&amp;nbsp;if ($Handle == 0)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;PSDisplayText("Error starting data carving.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;PSSetDCBlockSize($Handle, 20);&lt;BR&gt;&amp;nbsp;PSDisplayText("Starting data carving on $Name");&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$ObjName = $Name;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;my $NumEntries = 0;&lt;BR&gt;&amp;nbsp;PSDisplayText("Searching in $ObjName");&lt;BR&gt;&amp;nbsp;PSOpenObject($ObjName);&lt;BR&gt;&amp;nbsp;PSSetProgressRange(0, 100);&lt;BR&gt;&amp;nbsp;PSStartProcess();&lt;BR&gt;&amp;nbsp;while (1)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;#PSDisplayText("In the first While");&lt;BR&gt;&amp;nbsp;&amp;nbsp;last if (PSGetProcessing() == FALSE);&lt;BR&gt;&amp;nbsp;&amp;nbsp;my $SearchData = "";&lt;BR&gt;&amp;nbsp;&amp;nbsp;$SearchData = &amp;amp;ProScript::PSReadConsClusters($Handle);&lt;BR&gt;&amp;nbsp;&amp;nbsp;my $IsEndOfDisk = PSDCIsEndOfDisk($Handle);&lt;BR&gt;&amp;nbsp;&amp;nbsp;last if ($IsEndOfDisk == 1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;while (1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#PSDisplayText("In the second While");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;last if (PSGetProcessing() == FALSE);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ($SearchData =~ m/(.*?)($Header)(.*)/s)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#Search string found. Construct the IP address&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my $IPAddr = "$3.$4.$5.$6";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#Validate the IP address&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$ValidIP = 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach $s (($1, $2, $3, $4)) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($s &amp;lt; 0 || $s &amp;gt; 255) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$ValidIP = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;last;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ($ValidIP)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$NumEntries++;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my $FName = PSGetNextFileName($Handle);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;open(OUT,"&amp;gt;&amp;gt;$FName");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;binmode(OUT);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$IPAddr = $IPAddr . "\r\n";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(OUT $IPAddr);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;close(OUT);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$SearchData = $7;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;next;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;last;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;my $Progress = PSDCGetPercentage($Handle);&lt;BR&gt;&amp;nbsp;&amp;nbsp;PSSetProgress($Progress);&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;PSSetStatusText("");&lt;BR&gt;&amp;nbsp;PSCloseObject($ObjName);&lt;BR&gt;&amp;nbsp;PSSetProgress(0);&lt;BR&gt;&amp;nbsp;PSEndProcess();&lt;BR&gt;&amp;nbsp;PSDisplayText("$NumEntries IP Address(es) found during the operation.");&lt;BR&gt;&amp;nbsp;PSCloseHandle($Handle);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;# Get all objects added to the current project&lt;BR&gt;$totalObjects = PSGetObjectsCount();&lt;/P&gt;
&lt;P&gt;# for each object added to the project search it&lt;BR&gt;for($i=0; $i &amp;lt; $totalObjects; $i++)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objectName = PSGetObjectName($i);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;FindIPAddress($objectName);&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;PSDisplayText("Done!");&lt;BR&gt;-------------end script------------------&lt;/P&gt;</description></item><item><title>ProScript searches</title><link>http://toorcon.techpathways.com/cs/forums/thread/76.aspx</link><pubDate>Mon, 25 Sep 2006 20:28:16 GMT</pubDate><guid isPermaLink="false">e7e58421-8683-42c1-b30c-f6943a49c522:76</guid><dc:creator>keydet89</dc:creator><slash:comments>0</slash:comments><comments>http://toorcon.techpathways.com/cs/forums/thread/76.aspx</comments><wfw:commentRss>http://toorcon.techpathways.com/cs/forums/commentrss.aspx?SectionID=5&amp;PostID=76</wfw:commentRss><description>Are there any available examples for searching for credit card data and/or SSNs via a ProScript?&lt;br&gt;&lt;br&gt;thanks,&lt;br&gt;&lt;br&gt;Harlan&lt;br&gt;</description></item></channel></rss>