-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
交叉编译,成功运行后提示Segmentation fault #39
Comments
在这里 segfault 的话几乎可以断定是 OpenWrt 自带的 libiconv 有问题导致的。可以在 config.mk 里关闭 ENABLE_ICONV 并打开 ENABLE_GBCONV 再编译尝试。 |
抱歉刚刚没有贴上config.mk,谢谢您能这么快回复,这是我现在修改后的config.mk文件,
编译后的文件似乎没有什么变化,输入 |
另外我也在编译了在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_impl_libpcap,将自动添加 -lpcap 选项。 如果openwrt18也能使用另一个模块的话,明天我会按照您说的依次尝试打开与关闭这些选项。另外刚刚未找到服务器是因为我网络把电脑的连接切换至有线……切换后我在上面提到的https://github.com/ivechan/mentohust-SYSU |
OpenWrt 的内核也是 Linux 啊😂sockraw 也是适用的。 |
我今天直接在我的虚拟机上尝试了一下:
看来这个minieap的版本不太适用于我们学校……看来暂时没必要研究minieap的交叉编译了……
魔改版没敢试233,谢谢您啦ε=ε=ε=( |
这种情况可以把mentohust-sysu里面的客户端校验算法复制到minieap,就可以解决客户端校验问题。 |
然而你忽略了minieap的优势所在 |
你说的对,我研究了一天交叉编译mentohust,它仍然不能在我的wndr 3800上运行... |
请问具体该如何做,复制那些文件到哪里,有需要删除的吗? |
checkv4.c里面array数组 |
It works! 谢谢你,这太棒了,现在我该研究那恶心的交叉编译了……
|
同样建议使用sdk加 ysc3839 的makefile进行编译 可以省去很多麻烦的步骤。 |
建议使用这个 https://github.com/ysc3839/openwrt-minieap |
@ysc3839 已star! |
太感谢了,目前我更改了nature2608提到的数组,并按照updateing所说更改了config.mk文件,成功交叉编译后在我的WNDR 3800 + openwrt18 上已经完美运行:
这是我现在的config.mk文件:
非常感谢大家的帮助!
以及创建虚拟端口多号多拨 |
繁忙的一周终于结束了,终于有时间了,
|
@WeiMXi 安装后要重启,不然 netifd 不会加载这个协议。 |
@WeiMXi 麻烦打扰一下,请问可以发一份交叉编译好的minieap给我吗?(jinchengll@qq.com)我只是单纯想给路由器使用,交叉编译环境一直报找不到libmpc.so.2文件。 |
@jinchengll 我手上有wndr3800和newifi 3的二进制版本,你是什么路由器?不同的路由器可能不能混用,而且我这个改了一些代码以在sysu使用 |
@WeiMXi |
@WeiMXi 你好,我的路由器是小米路由器mini,MT7620a平台,看了你之前的问题,更改完checkv4中数组的sysu版本应该就是我所需要,如果你手中有交叉编译好的二进制文件可以发一份给我吗?没有的话可以讲源码发送给我吗?非常感谢。jinchengll@qq.com |
@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相关的问题?
The text was updated successfully, but these errors were encountered: