#!/usr/bin/perl #This eats a Windows Registry File, looks for IMAIL users and passwords.. and spits out plain text passwords. print "Eat what registry file? " ; $file = ; chop($file) ; # $file = "mail1.reg.txt" ; print "Eating $file \n" ; open(IN,"$file") ; open(OUT,">imail.passwd") ; open(SQL,">import2orca.sql") ; print SQL "use orca\n\n" ; while() { if(/\"MailAddr\"/) { $addr = "\L$addr" ; $cleartext = extract($addr,$passwd) ; print "$addr $name $passwd $cleartext \n" ; print OUT "$addr|$name|$cleartext\n" ; print SQL "insert into mailboxes (login,loginname,domain,name,passwd) values ('unassigned','$login','$domain','$name','$cleartext') ; \n" ; #print "$_" ; $addr = stripval($_) ; } ; if(/\"FullName\"/) { #print "$_" ; $name = stripval($_) ; } ; if(/\"Password\"/) { #print "$_" ; $passwd = stripval($_) ; } ; } ; print OUT "$addr|$name|$cleartext\n" ; print SQL "insert into mailboxes (login,loginname,domain,name,passwd) values ('unassigned','$login','$domain','$name','$cleartext') ; \n" ; close OUT ; close SQL ; sub stripval($string) { $_ = shift ; s/\"//g ; s/\'//g ; s/\ //g ; s/\n//g ; ($j,$val) = split(/\=/) ; return $val ; } sub extract($addr,$passwd) { $cleartext = "" ; $addr = shift ; ($login,$domain) = split(/\@/,$addr) ; $addrz = "$login$login$login$login$login$login" ; $passwd = shift ; @a = split(//,$addrz) ; @p1 = split(//,$passwd) ; $pz = "" ; $pzz = "" ; foreach(@p1) { $pz .= $_ ; if(length($pz) > 1) { $pzz .= "$pz|" ; $pz = "" ; } ; } ; #print "PZZ: $pzz\n" ; @p = split(/\|/,$pzz) ; $i = 0 ; $c = "" ; foreach(@p) { $pwh = $_ ; $aa = ord($a[$i]) ; $aahex = sprintf("%lx ", $aa); $zz = hex($pwh) - hex($aahex) ; $cc = chr($zz) ; $c .= "$cc" ; $i++ ; } ; $cleartext = $c ; return $cleartext ; } ;