centos7 编译xplico

1 说明

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

2 准备代码

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

3 开始编译

3.1 依赖包

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.2 编译xplico

tar -zxvf xplico-1.2.1.tar.gz
cd xplico-1.2.1
make  

错误1:

 解决:

yum install GeoIP-devel

  

 错误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:

 

 这个问题的出现是由于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

错误5:

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

进入../nDPI/src/lib/
mkdir .libs
cp libndpi.a  .libs

 错误6:

yum install mysql-devel

错误7:

因为我们用不到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包
 
 
这种编译环境搭建完成之后,就可以移植、修改添加符合自己项目需要的功能!

  

猜你喜欢

转载自www.cnblogs.com/liuguanghai6455/p/10628323.html