masscan aarc64编译结果。。。

2020-5-27 学长 软件

可以确认的是

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的虚拟环境中没有直接对网卡驱动底层读写的权限。。。

估计只有树莓派这样的硬件可以用起来了。。。


评论:

uuu
2021-10-06 08:05
termux有gcc,在另外一个包里,项目issue也有人提到过termux可以正常使用,我这现在make命令编译到最后会报错,提示缺控件好像。
学长
2021-10-23 19:37
@uuu:手机上缺少底层驱动的支持。。。直接在linux环境下make缺库就补
手机版 | RSS | FEED

苏ICP备16066175号