Open WeiMXi opened 5 years ago
在这里 segfault 的话几乎可以断定是 OpenWrt 自带的 libiconv 有问题导致的。可以在 config.mk 里关闭 ENABLE_ICONV 并打开 ENABLE_GBCONV 再编译尝试。
抱歉刚刚没有贴上config.mk,谢谢您能这么快回复,这是我现在修改后的config.mk文件,
#### Choose/Add your modules here ####
PLUGIN_MODULES := \
packet_plugin_printer \
packet_plugin_rjv3
# Linux
#PLUGIN_MODULES += if_impl_sockraw
# macOS / BSD
# PLUGIN_MODULES += if_impl_bpf
# Other OS
PLUGIN_MODULES += if_impl_libpcap
# This implementation is not included in the code.
# If you need it, add it yourselves.
# PLUGIN_MODULES += ifaddrs
ENABLE_DEBUG := false
ENABLE_ICONV := false
ENABLE_GBCONV := true
STATIC_BUILD := true
# If your platform has iconv_* integrated into libc, change to false
# Affects dynamic linking
LIBICONV_STANDALONE := false
CUSTOM_CFLAGS :=
CUSTOM_LDFLAGS :=
CUSTOM_LIBS +=/root/libpcap-1.8.1/libpcap.a
CC := mips-openwrt-linux-gcc
# Example for cross-compiling
# CC := arm-brcm-linux-uclibcgnueabi-gcc
# ENABLE_ICONV := true
# CUSTOM_CFLAGS += -I/home/me/libiconv-1.14/include
# CUSTOM_LIBS += /home/me/arm/libiconv.a
# PLUGIN_MODULES += ifaddrs
# STATIC_BUILD := true
编译后的文件似乎没有什么变化,输入./minieap -u myname -p myps -n eth1 --module rjv3 --if-impl libpcap --fake-serial AABBCCDDEEFFGG --fake-dns2 10.8.4.4 MiniEAP 0.92.1
依然会有与之前相同的错误输出。
另外我也在编译了在Centos 7上运行的二进制文件,但是总是停留在寻找服务器的状态并退出。这与我曾经尝试的mentohust情况有点类似https://github.com/ivechan/mentohust-SYSU
@WeiMXi 你可以直接找sdk再加makelife直接编译,不用单个编译二进制。
OpenWrt 的环境比较复杂,libiconv 的情况也有挺多种,不好说什么配置是最好的。我当时为了避免麻烦,是用 CUSTOM_LIBS 链接了个手动编译的完整版 libliconv……
不确定编码转换这部分是不是仍然有问题,可以尝试把 ENABLE_ICONV 和 ENABLE_GBCONV 都改成 false,这样在打印服务器信息的时候就会不转码直接输出。可能会打印出乱码,但至少应该能用。如果这样仍然不行,可能得抓包分析了。
如果怀疑 libpcap 有问题,也可以考虑使用 sockraw,能用的话可以省掉一个依赖。不过我看你的 config 里把它关掉了,是一开始用它出了什么问题吗?
关于这个我是参考了您在README中的建议,
目前提供 libpcap 和 Raw Socket 两种插件。前者兼容性好,但需链接 libpcap,体积较大;后者不需额外动态库,但只能在 Linux 上使用。可选择任意个模块参与编译,但运行时只能选取其中之一来使用。
_编辑 config.mk,选择所需要的模块。 在以 if_impl 开头的模块中,Linux 环境建议只选择 if_impl_sockraw 模块,其他平台建议只选择 if_impl_libpcap 模块。 在以 packet_plugin 开头的模块中,请按需要选择。 注:若选择 if_impllibpcap,将自动添加 -lpcap 选项。
如果openwrt18也能使用另一个模块的话,明天我会按照您说的依次尝试打开与关闭这些选项。另外刚刚未找到服务器是因为我网络把电脑的连接切换至有线……切换后我在上面提到的https://github.com/ivechan/mentohust-SYSU mentohust的SYSU版本已经能正常认证并上网了。谢谢您这么晚回复,我明天会再次依次尝试打开与关闭这些选项来交叉编译,无论如何现在该休息了,晚安。
OpenWrt 的内核也是 Linux 啊😂sockraw 也是适用的。
我今天直接在我的虚拟机上尝试了一下:
[root@localhost minieap-0.92.1_test]# ./minieap -u myname -p myps -n ens38 --module rjv3 --fake-serial AABBCCDDEEFFS1
MiniEAP 0.92.1
Hamster Tian, 2016
[2019/3/23 10:23:52][E] 无法打开配置文件: No such file or directory (2)
[2019/3/23 10:23:52][W] 配置文件解析出错,请注意命令行参数是否完整
[2019/3/23 10:23:52][I]
RJv3 for MiniEAP 0.92.1
V3 校验算法来自 hyrathb@GitHub
Hamster Tian, 2016
[2019/3/23 10:23:52][I] ========================
[2019/3/23 10:23:52][I] MiniEAP 0.92.1已启动
[2019/3/23 10:23:52][I] 正在查找认证服务器
[2019/3/23 10:23:52][I] 正在回应用户名请求
[2019/3/23 10:23:52][I] 正在回应密码请求
[2019/3/23 10:23:52][I] 服务器通知:
[2019/3/23 10:23:52][I] 使用了非管理员指定的客户端!
[2019/3/23 10:23:52][W] 认证失败 1 次,将在 30 秒或服务器请求后重试……
[2019/3/23 10:24:02][I] 正在回应用户名请求
[2019/3/23 10:24:02][D] 字段格式错误,未发现特征值(偏移量 0xc)
[2019/3/23 10:24:02][W] 认证失败 2 次,将在 30 秒或服务器请求后重试……
[2019/3/23 10:24:05][I] 正在回应用户名请求
[2019/3/23 10:24:05][I] 正在回应密码请求
[2019/3/23 10:24:05][I] 服务器通知:
[2019/3/23 10:24:05][I] 使用了非管理员指定的客户端!
[2019/3/23 10:24:05][E] 认证失败 3 次,已达到指定次数,正在退出……
[2019/3/23 10:24:05][I] MiniEAP 已退出
看来这个minieap的版本不太适用于我们学校……看来暂时没必要研究minieap的交叉编译了……
OpenWrt 的内核也是 Linux 啊😂sockraw 也是适用的。
魔改版没敢试233,谢谢您啦ε=ε=ε=(~ ̄▽ ̄)~
这种情况可以把mentohust-sysu里面的客户端校验算法复制到minieap,就可以解决客户端校验问题。
然而你忽略了minieap的优势所在
然而你忽略了minieap的优势所在
你说的对,我研究了一天交叉编译mentohust,它仍然不能在我的wndr 3800上运行...
这种情况可以把mentohust-sysu里面的客户端校验算法复制到minieap,就可以解决客户端校验问题。
请问具体该如何做,复制那些文件到哪里,有需要删除的吗? 我不是很懂这两个项目中各个文件的作用,这对我很有难度……
checkv4.c里面array数组
checkv4.c里面array数组
It works! 谢谢你,这太棒了,现在我该研究那恶心的交叉编译了……
[root@localhost minieap-0.92.1_test2]# ./minieap -u myname -p myps -n ens38 --module rjv3 --fake-serial AABBCCDDEEFFS1
MiniEAP 0.92.1
Hamster Tian, 2016
[2019/3/23 11:26:42][E] 无法打开配置文件: No such file or directory (2)
[2019/3/23 11:26:42][W] 配置文件解析出错,请注意命令行参数是否完整
[2019/3/23 11:26:42][I]
RJv3 for MiniEAP 0.92.1
V3 校验算法来自 hyrathb@GitHub
Hamster Tian, 2016
[2019/3/23 11:26:42][I] ========================
[2019/3/23 11:26:42][I] MiniEAP 0.92.1已启动
[2019/3/23 11:26:42][I] 正在查找认证服务器
[2019/3/23 11:26:42][I] 正在回应用户名请求
[2019/3/23 11:26:42][I] 正在回应密码请求
[2019/3/23 11:26:42][I] 服务器通知:
[2019/3/23 11:26:42][I] 帮助台服务电话:020-84036866(广州),0756-3668500(珠海);邮箱地址:helpdesk@mail.sysu.edu.cn
[2019/3/23 11:26:42][I] 正定时发送 Keep-Alive 报文以保持在线……
[2019/3/23 11:26:42][I] 认证成功
同样建议使用sdk加 ysc3839 的makefile进行编译 可以省去很多麻烦的步骤。
建议使用这个 https://github.com/ysc3839/openwrt-minieap 此项目适配了 netifd 的 protocol,可以配合 https://github.com/ysc3839/luci-proto-minieap 在 luci 中配置。 在 Network 中新建一个接口,协议选择 MiniEAP,网络接口设为外网接口。
@ysc3839 已star!
在这里 segfault 的话几乎可以断定是 OpenWrt 自带的 libiconv 有问题导致的。可以在 config.mk 里关闭 ENABLE_ICONV 并打开 ENABLE_GBCONV 再编译尝试。
OpenWrt 的内核也是 Linux 啊😂sockraw 也是适用的。
checkv4.c里面array数组
太感谢了,目前我更改了nature2608提到的数组,并按照updateing所说更改了config.mk文件,成功交叉编译后在我的WNDR 3800 + openwrt18 上已经完美运行:
root@OpenWrt:~# ./minieap -u myname -p myps -n eth1 --module rjv3 --fake-serial AABB
CCDDEEFFGG --fake-dns2 10.8.4.4
MiniEAP 0.92.1
Hamster Tian, 2016
[2018/8/16 7:53:52][E] 无法打开配置文件: No such file or directory (2)
[2018/8/16 7:53:52][W] 配置文件解析出错,请注意命令行参数是否完整
[2018/8/16 7:53:52][I]
RJv3 for MiniEAP 0.92.1
V3 校验算法来自 hyrathb@GitHub
Hamster Tian, 2016
[2018/8/16 7:53:52][I] ========================
[2018/8/16 7:53:52][I] MiniEAP 0.92.1已启动
[2018/8/16 7:53:52][I] 正在查找认证服务器
[2018/8/16 7:53:52][I] 正在回应用户名请求
[2018/8/16 7:53:52][I] 正在回应密码请求
[2018/8/16 7:53:52][I] 计费通知:
[2018/8/16 7:53:52][I] 您的网络使用费即将到期,请登录我的中大(http://my.sysu.edu.cn)查询具体过期日期。76fcf671
[2018/8/16 7:53:52][I] 正定时发送 Keep-Alive 报文以保持在线……
[2018/8/16 7:53:52][I] 认证成功
root@OpenWrt:~# ping www.baidu.com
PING www.baidu.com (163.177.151.109): 56 data bytes
64 bytes from 163.177.151.109: seq=0 ttl=51 time=4.896 ms
64 bytes from 163.177.151.109: seq=1 ttl=51 time=4.437 ms
64 bytes from 163.177.151.109: seq=2 ttl=51 time=4.523 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 4.437/4.618/4.896 ms
这是我现在的config.mk文件:
#### Choose/Add your modules here ####
PLUGIN_MODULES := \
packet_plugin_printer \
packet_plugin_rjv3
# Linux
PLUGIN_MODULES += if_impl_sockraw
# macOS / BSD
# PLUGIN_MODULES += if_impl_bpf
# Other OS
# PLUGIN_MODULES += if_impl_libpcap
# This implementation is not included in the code.
# If you need it, add it yourselves.
# PLUGIN_MODULES += ifaddrs
ENABLE_DEBUG := false
ENABLE_ICONV := false
ENABLE_GBCONV := true
STATIC_BUILD := true
# If your platform has iconv_* integrated into libc, change to false
# Affects dynamic linking
LIBICONV_STANDALONE := false
CUSTOM_CFLAGS :=
CUSTOM_LDFLAGS :=
CUSTOM_LIBS :=
CC := mips-openwrt-linux-gcc
# Example for cross-compiling
# CC := arm-brcm-linux-uclibcgnueabi-gcc
# ENABLE_ICONV := true
# CUSTOM_CFLAGS += -I/home/me/libiconv-1.14/include
# CUSTOM_LIBS += /home/me/arm/libiconv.a
# PLUGIN_MODULES += ifaddrs
# STATIC_BUILD := true
非常感谢大家的帮助! 接下来我想要尝试:
同样建议使用sdk加 ysc3839 的makefile进行编译 可以省去很多麻烦的步骤。
建议使用这个 https://github.com/ysc3839/openwrt-minieap 此项目适配了 netifd 的 protocol,可以配合 https://github.com/ysc3839/luci-proto-minieap 在 luci 中配置。 在 Network 中新建一个接口,协议选择 MiniEAP,网络接口设为外网接口。
以及创建虚拟端口多号多拨
繁忙的一周终于结束了,终于有时间了, 我现在说下我目前的情况,
@WeiMXi 安装后要重启,不然 netifd 不会加载这个协议。
@WeiMXi 麻烦打扰一下,请问可以发一份交叉编译好的minieap给我吗?(jinchengll@qq.com)我只是单纯想给路由器使用,交叉编译环境一直报找不到libmpc.so.2文件。
@WeiMXi 麻烦打扰一下,请问可以发一份交叉编译好的minieap给我吗?(jinchengll@qq.com)我只是单纯想给路由器使用,交叉编译环境一直报找不到libmpc.so.2文件。
@jinchengll 我手上有wndr3800和newifi 3的二进制版本,你是什么路由器?不同的路由器可能不能混用,而且我这个改了一些代码以在sysu使用
@WeiMXi
hi 冒昧打扰 我们学校换了新版的认证
我闲鱼看到卖路由器的说 sysu的锐捷认证路由器可以用在我们学校
在您的主页没看到开源出来 可以请求一份修改过的源码吗
@WeiMXi 你好,我的路由器是小米路由器mini,MT7620a平台,看了你之前的问题,更改完checkv4中数组的sysu版本应该就是我所需要,如果你手中有交叉编译好的二进制文件可以发一份给我吗?没有的话可以讲源码发送给我吗?非常感谢。jinchengll@qq.com
@Dark-Existed @jinchengll 我先打包了一下以前的文件,简单创建了项目minieap-sysu,二进制文件在release里面,年代久远,可能有疏漏,闲下来会完善一下,你们可以先试试能不能用
@Dark-Existed @jinchengll 我先打包了一下以前的文件,简单创建了项目minieap-sysu,二进制文件在release里面,年代久远,可能有疏漏,闲下来会完善一下,你们可以先试试能不能用
感谢 麻烦你了
@Dark-Existed @jinchengll 我刚刚更新了一下源码,上传了修改数组后的重新编译的二进制文件。我觉得你们可以先试试x86_linux版本的minieap能不能在你们学校认证成功,再尝试交叉编译到路由器上
我们学校是锐捷4.99,我使用这里的源码在centos 7 x64上交叉编译了minieap, 再上传到我的路由器(WNDR3800 安装openwrt 18),minieap成功运行,
由于之前的错误输出,我指定了DNS2与序列号,但这似乎无济于事。另外我若不使用rjv3时,则无这样
Segmentation fault
的输出,仅会回复认证失败。 这似乎是和libpcap相关的问题?