找不到perl Net::Frame::Layer::8021X模块
无法通过旧Cisco dump.pl脚本的最后一个依赖项 到目前为止,我已经安装了以下依赖项:找不到perl Net::Frame::Layer::8021X模块,perl,authentication,module,Perl,Authentication,Module,无法通过旧Cisco dump.pl脚本的最后一个依赖项 到目前为止,我已经安装了以下依赖项: apt-get install libclass-gomor-perl libnet-libdnet-perl libnet-pcap-perl libbit-vector-perl libnetpacket-perl 并将所有自定义perl模块放在Net/目录中 最后我跑了 ./dump.pl 我的输出: *** Net::Frame::Layer::8021X module not foun
apt-get install libclass-gomor-perl libnet-libdnet-perl libnet-pcap-perl libbit-vector-perl libnetpacket-perl
并将所有自定义perl模块放在Net/目录中
最后我跑了
./dump.pl
我的输出:
*** Net::Frame::Layer::8021X module not found.
*** Either install it (if avail), or implement it.
*** You can also send the pcap file to perl@gomor.org.
Frame number: 11 (length: 60)
Frame NUMBER 11 SSL FOUND, preparing SSL payload and crafting TCP packet
*** Net::Frame::Layer::8021X module not found.
*** Either install it (if avail), or implement it.
*** You can also send the pcap file to perl@gomor.org.
Frame number: 12 (length: 64)
Frame NUMBER 12 SSL FOUND, preparing SSL payload and crafting TCP packet
*** Net::Frame::Layer::8021X module not found.
*** Either install it (if avail), or implement it.
*** You can also send the pcap file to perl@gomor.org.
Frame number: 13 (length: 61)
Frame NUMBER 13 SSL FOUND, preparing SSL payload and crafting TCP packet
在使用perl-d dump.pl
进行调试之后,我发现它实际上需要模块Net::Frame::Layer::ETH和Net::Frame::Layer::8021X。前者我有,后者不见了
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:98):
98: for (1..1000) {
DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:99):
99: last unless $raw;
DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:101):
101: $encapsulate =~ s/[^-:\w]//g; # Fix potential code injection
DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:102):
102: my $layer = 'Net::Frame::Layer::'.$encapsulate;
DB<4> n
Net::Frame::Simple::unpack(Net/Frame/Simple.pm:103):
103: eval "require $layer";
DB<4> n
我仍然在讨论同样的问题
通过额外的调试,问题似乎在于raw=>$h->{raw}
,因为我在解释器中运行了print Net::Frame::Simple->new(firstLayer=>$h->{firstLayer},timestamp=>$h->{timestamp})
和print$h->{raw}
,而没有触发问题
main::(dump.pl:44): my $f = Net::Frame::Simple->new(
main::(dump.pl:45): raw => $h->{raw},
main::(dump.pl:46): firstLayer => $h->{firstLayer},
main::(dump.pl:47): timestamp => $h->{timestamp},
main::(dump.pl:48): );
它将写出一个ssl.pcap文件,但不包含原始数据包数据,只包含第一层数据,例如ETH和UNIX时间戳。我还通过将所有use
语句替换为require
并将::替换为/,确保我正在使用Net/目录中的本地模块
当试图
要求Net::Frame::Layer::8021X时,仍然会抱怨,这似乎在Internet上的任何位置都不存在…如果代码失败,则缺少以下语句。请加上它。@simbabque,我不明白。我遗漏了哪项陈述?在我看来,模块缺失或从未编写/发布给公众?我联系了dump.pl的开发人员,他解释说他找不到该模块。然后我联系了Net::Frame::Layer的开发人员,他说需要编写8021X模块。这不是诊断,只是指出关于这个问题的信息缺失。你可能忘了。;-)@辛巴基,好的,谢谢你。是的,声明只是要求那个缺失的模块。似乎需要编写此模块。您缺少以下代码失败的语句。请加上它。@simbabque,我不明白。我遗漏了哪项陈述?在我看来,模块缺失或从未编写/发布给公众?我联系了dump.pl的开发人员,他解释说他找不到该模块。然后我联系了Net::Frame::Layer的开发人员,他说需要编写8021X模块。这不是诊断,只是指出关于这个问题的信息缺失。你可能忘了。;-)@辛巴基,好的,谢谢你。是的,声明只是要求那个缺失的模块。似乎需要编写此模块。
main::(dump.pl:44): my $f = Net::Frame::Simple->new(
main::(dump.pl:45): raw => $h->{raw},
main::(dump.pl:46): firstLayer => $h->{firstLayer},
main::(dump.pl:47): timestamp => $h->{timestamp},
main::(dump.pl:48): );