Thread XML Parsing Problem (3 answers)
Opened by Gast at 2006-06-08 07:00

Gast Gast
 2006-06-08 07:00
#67102 #67102
So muss mich mal an die Altmeister hier wenden :)

Ich habe mir ein kleines perl script gecodet welches Hashes anhand einer regexp erkenne soll. Dazu wird ein xml file geparsed( und anschließend der/die Type/n ausgegeben. Hier erstmal der Code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/perl
# Hash Analyzer 0.1 (c) 2006 by eSpy

# use module
use strict;
use warnings;
use XML::Simple;

# variables
my $file = 'hashdb.xml';
my $hash = '4TKMer2ittZ7c';

# create object
my $xml = XML::Simple->new();

# read xml file
my $hashdb = $xml->XMLin($file);

# parsing hash
foreach my $entry (@{$hashdb->{hash}})
{
if ($hash =~ /$entry->{regexp}/)
{
print "\nPossible Hash types:\n\n";

foreach my $type (@{$entry->{type}})
{
print $type."\n";
}
last;
}
}


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="iso-8859-1"?>
<hashdb>
<hash regexp="^[0-9a-fA-F]{4}$">
<type>CRC-16-CCITT</type>
<type>CRC-16</type>
<type>FCS-16</type>
</hash>

<hash regexp="^[0-9a-zA-Z]{13}$">
<type>DES (Unix)</type>
</hash>
</hashdb>


Das funktioniert alles auch soweit, allerdings nur wenn ich mehrere Typen habe, die zu einem Hash passen. Sobald ich
allerdings versuche z.B. den DES Typ zu erkennen, wo nur ein Type angegeben ist, bekomme ich folgende Fehlermeldung:

Quote
Can't use string ("DES (Unix)") as an ARRAY ref while "strict refs" in use at hash.pl line 25.


Ich vermute es liegt daran, das er einem Array nicht nur einen Wert zuweisen kann. Ich könnte den Fehler umgehen indem ich bei DES einfach einen weiteren Type hinzufüge mit irgendeinem nonsense aber es liegt nicht in meiner Natur Problemen aus dem Weg zu gehen :) Kann mir hier jmd. helfen den Bug auszumerzen?

Nur noch mal zur Info Hashes sind z.B. fingerprints von Dateien um herauszufinden ob sie korrekt übertragen wurden, oder aber auch verschlüsselte Passwörter.

Thanks for you answers in advance!
eSpy

View full thread XML Parsing Problem