标签:执行 准备 inter 本地 httpd libz master centos7 编译
1 说明
xplico的环境官网有直接镜像Ubuntu可用,安装完成后可通过web界面访问,本次文档的目的是将xplico以源码
形式在centos下编译,并且以命令行方式运行解析文件。
2 准备代码
xplico源码:
nDPI源码:
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:

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

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