ZMap在Ubuntu 32bit下的编译
来源:互联网 发布:登记照排版软件 编辑:程序博客网 时间:2024/05/21 22:51
上一篇提到ZMap是为64位环境设计编写的,但是32位机也能编译使用。
首先下载代码,进入目录,make,遇到三四个error就结束了,error中有一句关键的:
cc1: warnings being treated as errors
这是由于Makefile里面指定让编译器将warning当成error,所以编译中止了。
我们只要将src/Makefile修改一下就好了:
WERROR_CFLAGS = -Werror#EXTRACFLAGS=-g -O2 $(EXTRA_CFLAGS) $(GCCHARDENING) $(GCCWARNINGS) -WerrorEXTRACFLAGS=-g -O2 $(EXTRA_CFLAGS) $(GCCHARDENING) $(GCCWARNINGS)
编译成功,运行上一篇提到的测试命令:
sudo zmap -p 80 -N 10 -B 1M -o -
结果冒出这么一句:
[FATAL] zmap: could not detect GW MAC address for 192.168.1.1 on eth0. Try setting default gateway mac address (-G).
arp后发现没有网关的IP和MAC地址映射,这里可以手工添加网关的IP和mac地址,也可以直接ping一下网关就OK了。
这样zmap就可以使用了,但是会不会出问题就不清楚了,毕竟我们将64位转32位可能出现的warning给屏蔽了。
下面试着去解决这些warning,首先将Makefile恢复成原样。
第一个error是:
lib/blacklist.c../lib/blacklist.c:127: error: left shift count >= width of type../lib/blacklist.c:127: error: division by zero
这是一个移位的问题,可以做如下修改:
int m=32;//log_debug("blacklist", "%llu addresses allowed to be scanned (%0.0f%% of address space)", // allowed, allowed*100./(1L << 32));log_debug("blacklist", "%llu addresses allowed to be scanned (%0.0f%% of address space)", allowed, allowed*100./(1L << m));
第二个问题:
zmap.c:112: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 4 has type ‘uint64_t’
这是一个printf格式化相关的问题,可以这样改(先在86行左右加一个宏定义)
#define SLL(w,x,y) printf("%s\t%s\t%llu\n", w, x, y);//SLU("cnf", "bandwidth", zconf.bandwidth);SLL("cnf", "bandwidth", zconf.bandwidth);
第三个问题:
zmap.c: In function ‘main’:zmap.c:461: error: left shift count >= width of typezmap.c:470: error: left shift count >= width of type
改法和第一个一样:
int m=32;//Line 461 v = v * (1L << m) / 100.;//Line 470 else if (v >= (1L << m)) {
改完了,再重新make,就OK啦。
- ZMap在Ubuntu 32bit下的编译
- ZMap在Ubuntu下的编译安装
- 32bit Ubuntu 10.10环境下Android Froyo编译问题解决
- ubuntu 32 bit系统下编译android 2.3
- 在32bit ubuntu上编译gingerbread需要修改的文件
- CRTMPServer 在CentOS 64-bit下的编译
- Caffe在Ubuntu 14.04 64bit 下的安装
- 在win7(32bit)下编译openssl完整过程
- 在win7(32bit)下编译openssl
- Unity LLAPI 底层Native插件在x86 (32bit) 下编译的一点注意
- 在Ubuntu Server 32bit搭建hustoj -- 下
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- ardupilot在Ubuntu12.04.5-32bit-x86环境下的编译,简易版编译环境搭建,实际使用
- 总结:常用数据类型在16BIT,32BIT,64BIT系统下的长度
- monodevelop在ubuntu下的编译
- Android2.3在ubuntu下的编译
- VLC在Ubuntu下的编译总结
- 人体左右脑的功能
- 基于Html5的爱情主题网站–表白神器(第二版)
- EasyUi_学习之路_01
- Silverlight 2.5D RPG游戏技巧与特效处理:自定义路径动画
- 在 Linux 平台中调试 C/C++ 内存泄漏方法
- ZMap在Ubuntu 32bit下的编译
- Silverlight 2.5D RPG游戏技巧与特效处理:魔法系统
- 方差除以n和n-1的区别
- The steps of running Sencha on BlackBerry z10, BB10运行Sencha的步聚
- Silverlight 2.5D RPG游戏技巧与特效处理(Game Effects):目录
- 中、美、日、印各国程序员大盘点
- Linux系统网络服务器模型
- Sencha touch使用百度地图
- Silverlight 2.5D RPG游戏技巧与特效处理:粒子系统