码迷,mamicode.com
首页 > 其他好文 > 详细

centos7 编译xplico

时间:2019-03-30 21:36:33      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:执行   准备   inter   本地   httpd   libz   master   centos7   编译   

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

 

 

 

 

 

 

 

 

 

 

 

  

 

centos7 编译xplico

标签:执行   准备   inter   本地   httpd   libz   master   centos7   编译   

原文地址:https://www.cnblogs.com/liuguanghai6455/p/10628323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!