Нужна помощь с моей первой программой Perl - PullRequest
1 голос
/ 05 августа 2011

Я всего несколько дней и сделал только пару вещей из книги, которую я изучал, так что будьте спокойны: P.Я пробовал искать в Интернете и пробовал разные способы, но я не могу передать MAC правильно системе ().Я пытаюсь добиться, чтобы perl открывал .txt файл MAC, каждый MAC находится на отдельной строке.Затем он читает каждую строку, беря по одному MAC за раз и передавая ей system () в качестве аргумента, чтобы aircrack мог передать аргумент MAC.У меня есть это, показывающее, что MAC читает каждую строку должным образом, но я не могу понять, почему aircrack жалуется, что данный MAC-адрес не является действительным MAC-адресом.Это из-за того, что я не читаю прочитанную строку?

Что я еще не пробовал из-за этой сложности, так это то, что я в конечном итоге хочу, чтобы он напечатал найденный ключ к файлу, если aircrack говорит, что он нашел его, или если он не находит один, переходит кследующий BSSID, продолжающийся до тех пор, пока в файле больше не будет MAC, чтобы попробовать

MAC-адреса находятся в текстовом файле, поэтому

00:00:00:00:00:00
00:00:00:00:00:00
00:00:00:00:00:00

и т. Д.

#!/usr/bin/perl
use strict;
use warnings;


my $file = '/kismetLOGS/PcapDumpKismet/WEPMACS.txt';
open my $info, $file or die "Could not open $file: $!";

while( my $line = <$info>) 
  {
    print $line;
    system("/usr/local/bin/aircrack-ng", "-b $line", "*.pcap *.pcapdump");
    last if $. == 0;
  }

close $info;
exit;

Спасибо за любую помощь, советы и указатели.Не ищу ложку для кормления :) И, надеюсь, я отправил должным образом для всех, и если я не в том, как я пытаюсь сделать это для моей конечной цели, пожалуйста, не стесняйтесь говорить, и любые советы о правильном маршруте будут оценены

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Вы можете либо объединить все свои аргументы вместе, например

system("/usr/local/bin/aircrack-ng -b $line *.pcap *.pcapdump");

, либо разделить их все, например

system("/usr/local/bin/aircrack-ng", "-b","$line", "*.pcap","*.pcapdump");

Последнее обычно безопаснее, поскольку пробелы в элементахнужно сбежать.Но тогда глобализация не работает, так как аргументы передаются непосредственно в систему для выполнения.

Если вы хотите, чтобы * .pcap работал, вам нужно перейти на первую версию.

1 голос
/ 05 августа 2011

$ строка заканчивается символом новой строки. Вы должны удалить символ новой строки.

chomp $line;
0 голосов
/ 05 августа 2011

около last if $. == 0;, измените его на last if $. ~~ 0, который определяет тип переменных при сравнении. Удалите его, если вы хотите перебрать все MAC-адреса, так как он будет работать только на первой (0-й) строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...