将 Nmap 编译为静态二进制文件



我正在尝试将Nmap安装为静态二进制文件。 我已经尝试了几个配置/制作节。 错误发生了变化,但问题是 Nmap 源代码中包含的nsock依赖项。

我有一个用于openssl的静态二进制文件和用于zlib的静态库。

这是最新的节和错误(注意:为了便于阅读,长命令发布在多行上,实际上它们是 1 行(:

CPPFLAGS="-I/opt/laura/zlib-1.2.11 
-I/opt/laura/openssl-1.1.0h_bis 
-I/opt/laura/openssl-1.1.0h_bis/include
-I./liblinear 
-I./liblua 
-I./libdnet-stripped/include 
-I./libpcap 
-I./nbase 
-I./nsock 
-I./nsock/include" LDFLAGS="-L/opt/laura/zlib-1.2.11 
-L/opt/laura/openssl-1.1.0h_bis 
-L./liblinear 
-L./liblua 
-L./libpcap 
-L./nbase 
-L./nsock" 
LIBS="-ldl" 
./configure --prefix=/opt/laura/nmap-7.70 
--with-libz=/opt/laura/zlib-1.2.11/ 
--with-openssl=/opt/laura/openssl-1.1.0h_bis/include/ 
--with-libnsock=/opt/src/nmap-7.70/nsock
NMAP IS A POWERFUL TOOL -- USE CAREFULLY AND RESPONSIBLY
Configured with: ndiff zenmap nping openssl zlib libssh2 lua ncat
Configured without: localdirs nmap-update
Type make (or gmake on some *BSD machines) to compile.
make LDFLAGS="-L/opt/laura/zlib-1.2.11 
-L/opt/laura/openssl-1.1.0h_bis 
-L/opt/src/nmap-7.70/nsock -static"
[...]

编译 nmap

rm -f nmap
g++ -L/opt/laura/zlib-1.2.11 -L/opt/laura/openssl-1.1.0h_bis -L/opt/src/nmap-7.70/nsock -static -o nmap charpool.o FingerPrintResults.o FPEngine.o FPModel.o idle_scan.o MACLookup.o nmap_dns.o nmap_error.o nmap.o nmap_ftp.o NmapOps.o NmapOutputTable.o nmap_tty.o osscan2.o osscan.o output.o payload.o portlist.o portreasons.o protocols.o scan_engine.o scan_engine_connect.o scan_engine_raw.o scan_lists.o service_scan.o services.o NewTargets.o TargetGroup.o Target.o targets.o tcpip.o timing.o traceroute.o utils.o xml.o  main.o -lnsock -lnbase -lpcre libpcap/libpcap.a libssh2/lib/libssh2.a -lssl -lcrypto -lz libnetutil/libnetutil.a ./libdnet-stripped/src/.libs/libdnet.a  ./liblinear/liblinear.a -ldl
/usr/bin/ld: cannot find -lnsock
collect2: ld returned 1 exit status
make: *** [nmap] Error 1

nsock 目录包含以下内容:

include  nsock.vcxproj  src  tests

在 src dir 中,配置位于 nsock.h 中,包含目录。

有什么帮助吗?

韩国克朗

> Nsock 在 Nmap 中总是静态链接。使用--with-lib*选项指示这些库的安装位置,但您已将其指向。只需将--with-libnsock选项从配置行中取出,它应该可以正常构建。您可能还需要添加--with-lib{pcap,pcre,z,ssh2,dnet,lua,linear}=included来构建和静态链接所包含的库(除非您在要链接到的其他位置构建并安装了静态库(。

最新更新