Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到perl Net::Frame::Layer::8021X模块_Perl_Authentication_Module - Fatal编程技术网

找不到perl Net::Frame::Layer::8021X模块

找不到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

无法通过旧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 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):     );