masscan aarc64编译结果。。。
可以确认的是
masscan的代码是可以完美在arm64环境中编译的
linux下编译
先安装支持包
pkg in clang git gcc make libpcap-dev
termux没有gcc支持。。。clang 9编译出错
所以进atilo run centos
atilo安装:
https://github.com/YadominJinta/atilo
除了libpcapdev都是支持的。。。
yum in clang git gcc make
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
输出的文件在./bin/masscan
但是因为缺少libpcap shared lib无法运行
Alpine Edge存在有可以用的libpcap-dev
https://pkgs.org/download/libpcap-dev
并且依赖的libpcap也是没有芯片架构限制(有待验证)
不像Ubuntu虽然libpcap-dev是支持全部的但是libpcap0.8-dev只支持x86和x64
找到
https://centos.pkgs.org/8/centos-powertools-aarch64/libpcap-devel-1.9.0-3.el8.aarch64.rpm.html
centos的liabpcap dev
需要启用Power Tool
yum repolist
具体怎么enable我也不会。。。
直接 vi /etc/yum.repos.d/CentOS-PowerTools.repo
i
enable=1
x掉0
esc
ZZ
保存
yum in libpcap-devel
或者直接
wget http://mirror.centos.org/centos/8/PowerTools/aarch64/os/Packages/libpcap-devel-1.9.0-3.el8.aarch64.rpm
rpm -ivh libpcap-devel-1.9.0-3.el8.aarch64.rpm
...另外发现windows中的听写功能win+H
下面就是
另外一个问题。。。
could not detemine default interface出错。。。
atilo中的肯定是精简的系统。。。根本没有ifconfig。。。
所以要
yum in net-tools
然后--interface wlan0发现各种报错。。。
make clean 重编译下。。。
时间有点不对。。。date查看时间
tzselect输入1。。。不是yes也不是ok。。。
报错
ioctl permition denied
因为masscan是直接跳过驱动怼硬件的。。。
继续去andorid手机设置
找到联网用到的mac。。。
当然masscan 还能获得Banner确定运行的是什么服务。。。
masscan --adapter-mac a4:4b:d5:1b:ba:8f --interface wlan0 -p5555 192.168.1.0/24
FAIL:wlan0: can't open adapter: wlan0: SIOCETHTOOL(ETHTOOL_GET_TS_INFO) ioctl failed: Permission denied
。。。
所以只能让系统获取足够的权限。。。
但问题是atilo不支持在root中运行。。。
只能linux deploy了
src/range-file.c:708:1: warning: unused function 'rangefile6_test_buffer' [-Wunused-function] rangefile6_test_buffer(const char *buf, ^
这个 warning没问题
最后出错:
/bin/ld: cannot find crtbegin.o: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [bin/masscan] Error 1
回去看了atilo中编译的。。。
也没有这个文件。。。
crtbegin.o在gcc的lib中bashrc用没定义libpath导致的。。。网上的
find /lib/ -name crtbegin.o /lib/gcc/aarch64-redhat-linux/4.8.2/ LIBRARY_PATH=/lib/gcc/aarch64-redhat-linux/4.8.2/:$LIBRARY_PATH export LIBRARY_PATH
不用root编译直接在普通用户下编译。。。或者直接去usr lib gcc 里把这个复制到tmp中去。。。还是有问题
"/usr/bin/ld" --hash-style=gnu --no-add-needed --build-id --eh-frame-hdr -m aarch64linux -dynamic-linker /lib/ld-linux-aarch64.so.1 -o a.out /lib/../lib64/crt1.o /lib/../lib64/crti.o crtbegin.o -L/lib/../lib64 -L/usr/lib/../lib64 -L/lib -L/usr/lib /tmp/main-fd58d7.o -L/lib/gcc/aarch64-redhat-linux/4.8.2/ -L/lib/gcc/aarch64-redhat-linux/4.8.2/crtbegin.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o /lib/../lib64/crtn.o /usr/bin/ld: cannot find crtbegin.o: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation)
仔细看里面是有这个文件的。。。一脸懵逼。。。
把atilo中编译的文件复制过来还是一样的出错。。。
估计是android的虚拟环境中没有直接对网卡驱动底层读写的权限。。。
估计只有树莓派这样的硬件可以用起来了。。。
推荐阅读: