Como compilar e executar o “protoident”

2

Estou tentando compilar e executar uma ferramenta de DPI de código aberto chamada Protoident . Então baixei o seu código-fonte do Github e procurei dentro dos diretórios por manuais de compilação / construção, mas não encontrei nada. Por fim, comecei executando o comando make e o comando Makefile em seu diretório, mas enfrentei os seguintes erros:

me@me-MS-7693:~/Desktop/protoident-master/src$ ./Makefile 
./Makefile: line 9: TARGET: command not found
./Makefile: line 10: PROTOCOLS: command not found
./Makefile: line 11: PROTOCOLS: command not found
./Makefile: line 11: SOURCES: command not found
./Makefile: line 12: SOURCES:.c=.h: command not found
./Makefile: line 12: HEADERS: command not found
./Makefile: line 13: SOURCES:.c=.o: command not found
./Makefile: line 13: OBJECTS: command not found
./Makefile: line 14: OTHER_FILES: command not found
./Makefile: line 18: CC: command not found
./Makefile: line 19: CFLAGS: command not found
./Makefile: line 21: OFLAG: command not found
./Makefile: line 22: CFLAG: command not found
./Makefile: line 24: CC: command not found
./Makefile: line 24: LINK: command not found
./Makefile: line 25: LINKFLAGS: command not found
./Makefile: line 26: LIBS: command not found
./Makefile: line 31: .SUFFIXES:: command not found
./Makefile: line 32: .c.o:: command not found
./Makefile: line 33: CC: command not found
./Makefile: line 33: CFLAGS: command not found
./Makefile: line 33: CFLAG: command not found
./Makefile: line 33: OFLAG: command not found
./Makefile: line 33: $<: command not found
./Makefile: line 38: SOURCES: command not found
./Makefile: line 38: TARGET: command not found
./Makefile: line 38: all:: command not found
./Makefile: line 40: profile:: command not found
./Makefile: line 41: profile_compile:: command not found
./Makefile: line 42: profile_compile:: command not found
./Makefile: line 43: profile_compile:: command not found
./Makefile: line 46: TARGET: command not found
./Makefile: line 46: OBJECTS: command not found
./Makefile: line 47: LINK: command not found
./Makefile: line 47: LINKFLAGS: command not found
./Makefile: line 47: LIBS: command not found
./Makefile: line 47: OFLAG: command not found
./Makefile: line 47: TARGET: command not found
./Makefile: line 47: OBJECTS: command not found
./Makefile: line 52: archive:: command not found
./Makefile: line 53: TARGET: command not found
./Makefile: line 53: SOURCES: command not found
./Makefile: line 53: HEADERS: command not found
./Makefile: line 53: OTHER_FILES: command not found
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
./Makefile: line 55: clean:: command not found
./Makefile: line 56: OBJECTS: command not found
./Makefile: line 58: distclean:: command not found
./Makefile: line 59: TARGET: command not found


me@me-MS-7693:~/Desktop/protoident-master/src$ make
gcc  -lpcap -o protoident main.o hashtable.o ip_reassembling.o flow.o global_func.o dns.o http.o sip.o smtp.o
main.o: In function 'main':
/home/ghasemi/Desktop/protoident-master/src/main.c:85: undefined reference to 'pcap_open_offline'
/home/ghasemi/Desktop/protoident-master/src/main.c:97: undefined reference to 'pcap_compile'
/home/ghasemi/Desktop/protoident-master/src/main.c:100: undefined reference to 'pcap_geterr'
/home/ghasemi/Desktop/protoident-master/src/main.c:103: undefined reference to 'pcap_setfilter'
/home/ghasemi/Desktop/protoident-master/src/main.c:105: undefined reference to 'pcap_geterr'
/home/ghasemi/Desktop/protoident-master/src/main.c:118: undefined reference to 'pcap_datalink'
/home/ghasemi/Desktop/protoident-master/src/main.c:125: undefined reference to 'pcap_loop'
/home/ghasemi/Desktop/protoident-master/src/main.c:134: undefined reference to 'pcap_freecode'
/home/ghasemi/Desktop/protoident-master/src/main.c:136: undefined reference to 'pcap_close'
collect2: error: ld returned 1 exit status
Makefile:47: recipe for target 'protoident' failed
make: *** [protoident] Error 1

Por que enfrentei esses erros e como posso compilar e usar essa ferramenta?

    
por Abraham 01.09.2016 / 08:16

2 respostas

2

Makefile é um arquivo de configuração para make , não um comando separado. O build & amp; canônico canônico procedimento de instalação é:

./configure
make
make install   # usually: sudo make install

A maioria dos projetos descreve detalhadamente o processo de instalação em arquivos de texto README , INSTALL ou similar.

No entanto, este não tem nenhum script configure e tem um Makefile pronto. Ele não contém a seção INSTALL , então o terceiro comando também não é aplicável.

Você só precisa executar:

make

Ele está documentado no arquivo README no diretório src . Engraçado é que está escrito em tcheco (que é, a propósito, minha língua nativa).

Corrigindo erros undefined reference

Há um problema no Makefile fornecido que pode ser corrigido usando o seguinte patch (com base em um Comentário de estouro de pilha ):

diff --git a/src/Makefile b/src/Makefile
index 367dcc4..dda5fb3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -44,7 +44,7 @@ profile_compile: all


 $(TARGET): $(OBJECTS)
-       $(LINK) $(LINKFLAGS) $(LIBS) $(OFLAG) $(TARGET) $(OBJECTS)
+       $(LINK) $(LINKFLAGS) $(OFLAG) $(TARGET) $(OBJECTS) $(LIBS)

 #####################################
 #other rules
    
por Melebius 01.09.2016 / 08:23
1

Eu dei uma olhada no seu link para instruções. Eles podem ser encontrados, mas estão escritos em tcheco. Por exemplo:

Zdrojová a cílová síťová adresa, zdrojový a cílový port není třeba dále
vysvětlovat.

Traduz para o inglês como:

Source and destination network address, source and destination port does not need to be further explain.

Olhando para vários arquivos de origem, você verá "Não testado" na descrição.

Este autor chama o projeto de uma experiência e não foi atualizado em dois anos.

Eu proponho que o projeto está quebrado e pode não haver nada errado com o seu compilador e fazer funções. Para confirmar se o seu sistema está funcionando, faça o download de uma simples calculadora do github para gnome desktop, com 200 colaboradores e 243 versões: gnome-calculator . Compile isso em vez de sua escolha atual que não tem atividade por dois anos e é chamada de uma experiência do autor.

    
por WinEunuuchs2Unix 01.09.2016 / 12:47