centos7 编译xplico

1 说明

  xplico官网有直接镜像Ubuntu可用,安装完系统镜像后可直接通过web界面使用,本次文档的目的是将xplico以源码
  形式在centos下编译,并且以命令行方式运行解析文件。
 
  本次操作的系统环境为centos7.5:
 
  

 

2 环境工具准备

1)准备源码

  xplico源码:
  下载 xplico-1.2.1.tar.gz
 
  nDPI源码:
  下载 nDPI-2.8.tar.gz

2)准备工作目录

  • 找个工作路径新建个文件夹xplico;
  • 将xplico-1.2.1.tar.gz 移动到$path/xplico 目录中;
  • 将nDPI-2.8.tar.gz 移动到$path/xplico 目录中。

3)安装依赖库

yum install tcpdump httpd php php-mysql sqlite sqlite-devel libzip-devel recode sox php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc libdbi-dbd-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql libXt libXt-devel libX11-devel libX11 json-c-devel json-c libnet libnet-devel libXext libXext-devel postgresql-devel psmisc

 

3 编译xplico

cd $path/xplico
tar -zxvf xplico-1.2.1.tar.gz
cd xplico-1.2.1
make 

 

1)错误1:

   

   解决:

yum install GeoIP-devel

  

 2)错误2:

   

 

tar -zxvf nDPI-2.8.tar.gz
mv nDPI-2.8 nDPI      #这一步一定要改名字,否则后面xplico会找不到对应头文件
cd nDPI
./autogen.sh
./configure
make

  

  切换到xplico-1.2.1目录下继续编译
  因为nDPI是放在了xplico同级目录下,xplico编译需要libndpi,
  所以编译xplico时用命令:make LOCAL_NDPI=1
 
  这样就可以找到本地的libndpi库了

 

 3)错误3:

   

   这个问题的出现是由于nDPI版本和xplico不匹配导致的,不兼容主要在ndpi 中结构体ndpi_protocol 
  中定义master_protocol字段,而在xplico中使用protocol字段导致不兼容可以直接修改xplico中的代码,
  本次直接修改xplico中的代码。
 
  vim dissectors/tcp_grbg/tcp_garbage.c

   

  改为:

  

  类似的还有:
vim ./dissectors/udp_grbg/udp_garbage.c  #line376
 
vim ./dissectors/tcp_ca/tcp_analysis.c   #line 527  621
 
vim  ./dissectors/udp_ca/udp_analysis.c  #line 434  454

 

 

4)错误4:

  

  这是因为libndpi.a这个库的路径不对,应该在../nDPI/src/lib/中,  

 

cd $path/nDPI/src/lib/
mkdir .libs
cp libndpi.a  .libs

 

 

 5)错误5:

  

yum install mysql-devel

 

6)错误6:

  

  因为我们用不到PQ数据库,可以把它的接口禁掉,免得安装软件:
  vim system/dema/dbinterface.c
  

  

  

 

 
  之后就可以编译通过了,编译通过标志如下

  

 

 4 命令行模式运行xplico

  以上编译通过之后,会在当前目录下生成可执行程序xplico:

   

  要以命令行模式运行程序:
./xplico -c ./config/xplico_cli_nc.cfg  -m pcap -d   /data/pcaps/                        # -d 解析整个文件夹下pcap包
./xplico -c ./config/xplico_cli_nc.cfg  -m pcap -f   /data/pcaps/1.pcap               # -f单个pcap包
  
  这种编译环境搭建完成之后,就可以移植、修改添加符合自己项目需要的功能!

 

 

 

 

 

 

 

 

 

 

 

  

 

posted @ 2019-03-30 21:12  东陆平头哥  阅读(1284)  评论(0编辑  收藏  举报