Proof of concept: Wine mentuhust for win32 成功运行, 求协助测试校园网认证

142 views
Skip to first unread message

Qian Hong

unread,
Mar 10, 2012, 9:05:07 AM3/10/12
to gz...@googlegroups.com
Hi all,

GZLUG里估计有很多朋友关注校园网认证的问题, 因为这个问题是在校学生使用Linux的最大痛苦之一 ;-)

在Linux下通过校园网认证, 有两种思路, 一种是hack协议自己写客户端, 一种是通过wine.
前者有很多好处, 比如锻炼技术, 比如可以移植到openwrt路由器上(你懂的)
后者也有一些好处, 比如可以不必担心学校认证协议的变动, 比如可以利用Wine内置的trace功能来抓包( 好吧, 其实wireshark就够了)

网上一直有一种说法, 认为wine是支持不了校园网认证客户端的, 我认为这个说法不一定对.
去年有一个开发者给wine发了一个补丁, 目的是让Wine支持winpcap的api, 这个补丁就是把winpcap的api嫁接到libpcap上:
http://www.winehq.org/pipermail/wine-patches/2011-March/099838.html

据我所知, 国内的校园网认证客户端中, 有一些就是基于winpcap的, 例如Dr.com, 还有其他的我一是想不起来, 如果有朋友知道请补充.
理论上, 有了上文所说的winpcap patch, Dr.com和同类的校园网认证客户端就可以在Wine下运行了.
因此, 我最近想在wine上测试Winpcap的校园网客户端, 但是我没有网络条件可以测试, 希望在学校的朋友如果有Dr.com或者有锐捷环境的,
协助我一起测试, 非常感谢!

之所以选择Dr.com, 是因为Dr.com依赖winpcap; 而之所以选择锐捷, 是因为有一个开源版本的锐捷客户端 mentohust,
可以在win/linux/mac下
运行. 我想通过wine运行mentohust的win32版本, 来完成一个proof of concept,
证明wine是有潜力实现对校园网认证客户端的支持的.

如果有朋友有条件并且愿意帮忙测试锐捷(mentohust), 请按照下面的步骤做:

1. 下载 winpcap的winelib版本:
http://dawncrow.de/wine/wpcap.html
解压 wpcap.tar.gz, 将会得到 wpcap.dll.so 这个文件, 下面会用到

2. 下载安装最新版的wine, 目前是wine1.4 , ubuntu的deb包不知是不是已经更新到最新,
安装ppa里最新的wine1.3应该就是wine-1.4-rc

3. 把wpcap.dll.so 复制到 /usr/lib/wine/ 目录
如果你是编译安装的, 就复制到 /usr/local/lib/wine/ 目录

4. 下载我修改过的 mentohust-mfc90.exe
http://code.google.com/p/study-codes-by-fracting/downloads/detail?name=mentohust-mfc90.exe
(注1)

5. 切换到root用户, 在root下使用wine:
$ sudo su

安装mfc90库:
# winetricks -q vcrun2008

启动mentohust:
# wine mentohust-mfc90.exe

然后, 就可以尝试在wine下使用这个版本的mentohust进行校园网认证了.
(注3)
如果成功了, 请告诉我一下;
如果不成功, 请使用一些debug参数, 提供一下调试日志:
# WINEDEBUG=+winsock,+wpcap,+wininet,+iphlpapi wine mentohust-mfc90.exe
然后将终端输出完整地复制下来粘帖到pastebin上.

非常感谢! 欢迎交流!

如果有朋友有dr.com的环境, 愿意帮忙测试wine dr.com, 请跟贴回复一下, 我写一个dr.com的测试方法出来

注1: Windows下, 网卡的名字是
/Device/balabla_{1234-1234-1234-12341234-123412341234} 这种样子,
而Linux下, 网卡的名字不能超过16个字符.
有些校园网认证客户端可能会对网卡名字的长度等进行检验, 我修改mentohust for win的目的就是去掉这个
检验, 没有做其他改动, 如果有朋友担心木马我把修改后的代码发一下, 请愿意帮忙的朋友自己编译 :)

注2: 使用root权限运行wine程序是非常不好的习惯, 但是我们这里只是proof of concept, 所以我写了最简单
最dirty的方式. 最好的方式是使用 setcap, 参见:
http://wiki.winehq.org/Ping
https://bugs.launchpad.net/ubuntu/+source/wine1.2/+bug/518989

注3: 如果你确定mentohust for win可以在你们学校用, 并且知道如何设置, 那么linux下wine mentohust的使用方式应该是相同的.
如果mentohust for win在windows下也不能通过你们学校的认证, 那么wine mentohust也自然不可以.

--
Regards,
Qian Hong

-
Sent from Ubuntu
http://www.ubuntu.com/

Qian Hong

unread,
Mar 10, 2012, 9:11:05 AM3/10/12
to gz...@googlegroups.com
Hi all,

一下是Dr.com版本的测试步骤, 我曾经发在ubuntu-zh mailing list和 ubuntu中文论坛, 目前没有得到有效的回应,
所以再发到gzlug来. 谢谢!

===

各位朋友,

如果你的学校有dr.com的网络环境, 并且你愿意帮忙为开源软件做贡献, 请一起来测试wine dr.com

目前我测试过几个版本的dr.com, 已经发现的bug有两个, 一个是中文乱码问题, 一个是缺少npptools.dll的问题.

前者是一个known bug:
incorrect font rendering for CJK programs
http://bugs.winehq.org/show_bug.cgi?id=16325

后者我刚刚报给wine:
npptools.dll is needed by ishare_user.exe of Dr.com
http://bugs.winehq.org/show_bug.cgi?id=30041

感兴趣的朋友可以订阅这两个bug,跟踪它们的进展.
另外,这个bug也可能有关:
Bug 21572 - KFSensor 4.5.0 Professional Trial: Trouble starting and
stopping the service

这两个bug都有workaround的方法,但是由于我没有dr.com的网络条件可以测试,
所以我不知道解决这两个bug之后还会不会有别的问题, 需要大家的帮忙.

如果你的学校有dr.com的网络环境, 并且你愿意帮忙,请继续往下看:


-1. *非常重要*: 为了在测试中排除一切干扰, 请务必删除或者改名备份原来的 ~/.wine 文件夹
然后从一个全新的wineprefix开始测试

0. 我目前用于测试的dr.com版本是: Dr.COM Client-重庆交通大学-Ver3.73.exe [1]
如果这个版本不适合你的学校, 请告诉我你的学校使用的版本的名称和下载地址.

0.5 wine目前没有mfc42.dll, 所以需要运行 winetricks -q mfc42进行安装

1. wine目前没有nptools.dll这个文件, 所以无法运行dr.com, workaround的方式是从
windows xp复制一个过来. 据说vista没有这个dll

2. 目前dr.com在wine下认证的时候会有乱码, 认证信息乱码了我们就很难判断认证
失败的原因了, 所以需要先对 Bug 16325 进行workaround
目前除了修改源代码再从源码编译, 没有其他非常好的workaround方式.
wine-cn源中的wine二进制打过了修复中文乱码的patch, 但是wine-cn很久没有更新了.
如果要给wine报bug,必须测试最新版.

因此, 我们不得不下载源码,修改源码,然后从源码编译.

Ubuntu下编译安装wine最简单的步骤是:
- *重要* : 添加wine的ppa源, 参见[2]
- $ sudo apt-get update
- $ sudo apt-get build-dep wine1.3
- $ apt-get source wine1.3
- $ cd wine1.3-1.4~rc5/ (或相应版本的类似目录名称)
- *重要* : 修改GdiGetCodePage函数的源代码 *以下详细解释*
- $ tools/wineinstall
- 根据提示, 依次输入yes和你的sudo密码

编译时间可能长达1小时, 看机器配置了
如果你有过编译的经验, 那么可以不用 tools/wineinstall,
自己用configure和make, make的时候加入 -j4 参数,可以大大加速
configure的时候加上 --disable-tests 也可以大大加速
根据你的cpu总线程数, -j4可以修改为其他的数字

完成之后,运行
$ wine --version
$ which wine
检查一下结果是不是
wine-1.4-rc5
和 /usr/local/bin/wine

*** 修改GdiGetCodePage函数的方法如下 ***
- 用你喜欢的编辑器打开 wine源代码目录下的 dlls/gdi32/font.c 文件
- 编辑大约第367行, 把"return cp; " 改为 " return 936;" (不含引号, 但注意保留分号)
*********************************************

至此以后, 运行wine dr.com应该就不会有乱码. 这种方式只适合测试用, 不适合推广.

3.
运行的方式, 是:
cd 到 ~/.wine/drive_c/Program Files$ cd Dr.COM\ 宽带认证客户 端/
$ wine ishare_user.exe

到这里, 就需要在你学校的网络环境下, 看看dr.com能不能用了.
如果不能用, 我可能会请你提供进一步的信息, 包括终端输出, 以及dr.com的登陆信息等

非常感谢!
如果你愿意帮忙,但是遇到困难,比如编译安装, 请务必在列表里告诉大家让大家协助你解决.

[1] http://www.cqjtu.edu.cn/software/Dr.COM%20Client-%E9%87%8D%E5%BA%86%E4%BA%A4%E9%80%9A%E5%A4%A7%E5%AD%A6-Ver3.73[%E5%B0%81%E8%A3%85][FOR%20XP%20vista%20win7].rar
[2] http://www.winehq.org/download/ubuntu

Qian Hong

unread,
Mar 10, 2012, 9:24:50 AM3/10/12
to gz...@googlegroups.com

Ma Xiaojun

unread,
Mar 10, 2012, 9:19:17 PM3/10/12
to gz...@googlegroups.com
不如樓主發到SHLUG~

Qian Hong

unread,
Mar 13, 2012, 9:40:34 AM3/13/12
to gz...@googlegroups.com
今天和Qingping Hou合作, 使用Qingping自己实现的第三方802.1x服务端, 已经初步证实通过这种方式, wine
mentohust能实现正常发包了.
也就是说, proof of concept的目的已经达到, 剩下的就是希望wine尽快接受相关的补丁[1], 以及另外几个小问题.

上游bug的链接在这里:
http://bugs.winehq.org/show_bug.cgi?id=21571
Bug 21571 - WinPcap 4.0.1: Setup cannot install Microsoft Network
Monitor Driver (NetMon)

感兴趣的朋友可以看看bug上的讨论, 可以看到这个patch能不能被Wine接收是很难说的.
如果Wine上游不愿意接受这个patch, 那么我们就只能用更复杂的方法去解决问题了:
- 将winelib版的wpcap.dll.so作为一个独立的项目进行维护
- 推送给Deepin Linux等中文发行版, 在打包wine的时候把wpcap.dll.so作为一个依赖
- 如有可能, 推送给Debian/Ubuntu等发行版

[1] http://www.winehq.org/pipermail/wine-patches/2011-March/099838.html

上文所说的"另外几个小问题", 目前已知的包括:

- windows的网卡名称和linux网卡的名称命名方式不同, 因此有些校园网认证客户端会报错. 这个应该不难解决.

- 根据我的测试, linux下libpcap在枚举以太网卡的时候, 网卡的描述字段("description") 是空的, 而在windows下,
winpcap枚举网卡得到的description字段是非空的, 由于wpcap.dll.so是libpcap的一个wrapper,
因此从wpcap.dll.so
获取的网卡description字段也是空的. 然而, 有些校园网认证客户端在选择网卡的时候, 下来菜单的字符串是来自于
网卡的description, 因此就会出现一个或多个显示为空白的网卡, 带来一些不便.

我认为解决这个问题的最好途径是给上游报bug: 这里的上游已经是libpcap而不是wine了:
https://sourceforge.net/tracker/index.php?func=detail&aid=3502435&group_id=53067&atid=469580#
感兴趣的朋友也可以关注一下, 不知libpcap的开发者有没有兴趣修复.

除了上文说到的几个小问题, 还有一些困难很多倍的问题需要解决:
上面的patch, 只能解决依赖winpcap的校园网认证客户端的问题;
而很多其他认证客户端, 例如h3c inode和ruijie, 本身不依赖winpcap, 而是自己实现了一个驱动模块,
而这个模块通常会依赖 ndis.sys和ntoskrnl.exe的导出函数, 目前wine还没有实现ndis.sys,
而ntoskrnl.exe还有大量很底层的函数未实现, 所以这个问题难以在短期内解决.
如果有在校的朋友对这个问题感兴趣, 不妨一起研究 ;-)


2012/3/11 Ma Xiaojun <damag...@gmail.com>:
> 不如樓主發到SHLUG~
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。

Jactry

unread,
Mar 13, 2012, 10:35:17 AM3/13/12
to gz...@googlegroups.com
 话说LUG里广工有校园网的同学不妨试试,如果能成的话,广工的校园网才算真的有解决方案呐~
听说有广工有Linuxer为了上校园网开个VBox……实在坑爹

Qian Hong

unread,
Mar 13, 2012, 10:59:15 AM3/13/12
to gz...@googlegroups.com
2012/3/13 Jactry <jact...@gmail.com>:

>  话说LUG里广工有校园网的同学不妨试试,如果能成的话,广工的校园网才算真的有解决方案呐~
> 听说有广工有Linuxer为了上校园网开个VBox……实在坑爹

广工校园网好像是用h3c吧? 广工校园网的问题我关注几年了, 曾经专门跑去抓包, 不过水平有限没有做出有用的东西.
h3c目前还没办法在wine下运行的.

理论上, vbox winxp的方案也可以换成 vbox reactos的方案, 使用reactos有两个好处, 一是完全开源, 适合有自由软件洁癖的朋友,
而是轻量级, reactos比winxp小得多. 不过, reactos的bug很多, 有勇气选择这种方案的朋友要做好报bug的准备 ;-)

Jactry

unread,
Mar 13, 2012, 11:10:17 AM3/13/12
to gz...@googlegroups.com
在 2012年3月13日 下午10:59,Qian Hong <frac...@gmail.com>写道:
2012/3/13 Jactry <jact...@gmail.com>:
>  话说LUG里广工有校园网的同学不妨试试,如果能成的话,广工的校园网才算真的有解决方案呐~
> 听说有广工有Linuxer为了上校园网开个VBox......实在坑爹


广工校园网好像是用h3c吧? 广工校园网的问题我关注几年了, 曾经专门跑去抓包, 不过水平有限没有做出有用的东西.
h3c目前还没办法在wine下运行的.

理论上, vbox winxp的方案也可以换成 vbox reactos的方案, 使用reactos有两个好处, 一是完全开源, 适合有自由软件洁癖的朋友,
而是轻量级, reactos比winxp小得多. 不过, reactos的bug很多, 有勇气选择这种方案的朋友要做好报bug的准备 ;-)


也有Linux客户端,可是学校开的功能太多了……开了MAC绑定,而Linux客户端没跟上这个功能,所以悲剧了。 

Maple

unread,
Mar 13, 2012, 12:46:14 PM3/13/12
to gz...@googlegroups.com
那可以手动改mac啊。虽然每次重启后都要改一次~

其实大部分的实现都是重复的劳动,都是基于802.1x协议然后进行一点点修改已适应学校的变更,最好的方法就是实现一个版本针对协议提供扩展机制,可以支持md5/h3c/ruijie或其他。
然后一般实现方法都是利用的pcap库,好处就是可以跨平台,坏处就是依赖问题可能很麻烦,如果是不跨平台的方法就有轻量,无依赖问题的优点,Linux下用的是PF_Packet,BSD(OSX)下是Berkeley Packet Filter

PS:最近已经将yah3c成功移植到openwrt上,现在跑在一个flash只有4M的路由上一切运行良好。地址:
现在代码和文档还在完善中,然后打算后期做针对协议提供扩展机制

--
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。



--

胡淼
Sun Yat-sen University
The Guangdong Key Laboratory of Information Security Technology(IST)
Blog: http://blog.lovemaple.info/

Qian Hong

unread,
Mar 13, 2012, 9:32:04 PM3/13/12
to gz...@googlegroups.com
2012/3/14 Maple <maplev...@gmail.com>:

> 其实大部分的实现都是重复的劳动,都是基于802.1x协议然后进行一点点修改已适应学校的变更,最好的方法就是实现一个版本针对协议提供扩展机制,可以支持md5/h3c/ruijie或其他。
> 然后一般实现方法都是利用的pcap库,好处就是可以跨平台,坏处就是依赖问题可能很麻烦,如果是不跨平台的方法就有轻量,无依赖问题的优点,Linux下用的是PF_Packet,BSD(OSX)下是Berkeley
> Packet Filter
>
> PS:最近已经将yah3c成功移植到openwrt上,现在跑在一个flash只有4M的路由上一切运行良好。地址:
> https://github.com/nanpuyue/OH3C
> 现在代码和文档还在完善中,然后打算后期做针对协议提供扩展机制

赞一个 ;-)
其实我比任何不使用wine的人更乐于看到Linux原生软件能做好.

Qian Hong

unread,
Mar 13, 2012, 9:36:05 PM3/13/12
to gz...@googlegroups.com
2012/3/13 Qian Hong <frac...@gmail.com>:

> 我认为解决这个问题的最好途径是给上游报bug: 这里的上游已经是libpcap而不是wine了:
> https://sourceforge.net/tracker/index.php?func=detail&aid=3502435&group_id=53067&atid=469580#
> 感兴趣的朋友也可以关注一下, 不知libpcap的开发者有没有兴趣修复.

更新:
开发者Guy Harris回复了这个Feature request, 目前看来这个功能有望增加 ;-)

Qian Hong

unread,
Mar 16, 2012, 8:58:41 AM3/16/12
to gz...@googlegroups.com
更新一下, 有一件事忘了说 :)

我曾经在 南京工程学院开源802.1x认证客户端项目 的邮件列表里看到有用户反馈说wpa_supplicant支持某些学校的认证协议, 但是会有掉线的问题.
于是我把这个情况反馈给wpa_supplicant的作者, 希望wpa_supplicant可以基于我们现有的开源客户端的协议增加对锐捷和h3c等的支持 [1]
wpa_supplicant的作者Jouni Malinen认为, 只要确实是广泛应用的协议, 就可以考虑支持. 因此,
我在wpa_supplicant项目上提出了两个feature request [2] [3], 分别
希望支持 锐捷认证协议 和 h3c认证协议. 如今半年过去了, 暂时还没有进展. 对于Jouni Malinen 来说, 增加对 锐捷 和
h3c 的支持会有一些困难,
一方面, 我们目前没有关于这些非标准协议的英文说明, 只能把开源客户端的源代码当作文档, 另一方面, 作者本人也没有办法接触到我们的校园网网络环境,
去测试他的实现是否正确. 我个人的能力和精力都有限, 目前没有办法去给wpa_supplicant提交patch,
我也很希望Linux的原生程序能够支持校园网认证,
不知这里有没有在校的朋友感兴趣, 愿意来做这件事呢?

如果你感兴趣, 可以做的事情包括:
- 帮助翻译一些中文的文档为英文, 解释 锐捷 或 h3c 的认证协议
- 自己阅读代码调试代码, 自己写英文文档, 解释协议
- 直接给wpa_supplicant提交补丁
- 如果有别人提交了补丁, 而你有相应的网络环境, 就帮忙测试
- 其他你能想到的帮助的方式, 比如为wpa_supplicant义务做bug验证之类的工作, 减轻开发者的负担, 让开发者有时间研究 锐捷 和 h3c 等.

注意请不要帮倒忙 :) 不要到上游社区里面大吼大叫, 说这个很重要很重要, 为什么那么久还没人管之类的话.

[1] Need help with off-standard 802.1x authentication on Linux
http://lists.shmoo.com/pipermail/hostap/2011-September/023975.html

[2] [Feature request] Please support Huawei 3COM 802.1x authentication system
http://w1.fi/bugz/show_bug.cgi?id=416

[3] [Feature request] Please support Ruijie Supplicant
http://w1.fi/bugz/show_bug.cgi?id=417


2012/3/14 Qian Hong <frac...@gmail.com>:

Maple

unread,
Mar 21, 2012, 12:02:57 AM3/21/12
to gz...@googlegroups.com
我已经写好了东校的eap协议的patch了,但是作者的文档有点问题,我无法进行后面的编译步骤,根据

New EAP methods need to be registered by adding them into the build (Makefile) and the EAP method registration list in the eap_peer_register_methods() function of eap_methods.c

但是在eap_methods.c中根本没有这个函数,我也不知道如何添加,然后我google到了一篇很老的教程(现在已经不适用了)按照大概的情况hack了一下还是不行,能否帮忙通知下作者更新下文档?


--
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。

Maple

unread,
Mar 21, 2012, 12:21:37 AM3/21/12
to gz...@googlegroups.com
不好意思,是我看错了,那个文档是针对旧版本的wpa_supplicant的,我换旧版本的继续折腾下

Qian Hong

unread,
Mar 21, 2012, 12:43:38 AM3/21/12
to gz...@googlegroups.com

支持一下,顺便给maple兄一个小建议,就是直接到上游跟开发者交流,效率会比在这里讨论或者到处google要高一些。如果你根据旧版本写好了patch,作者merge到新版本上还需要额外的劳动,为了避免不必要的工作,最好是提前跟作者沟通好。辛苦了!

Ma Xiaojun

unread,
Mar 21, 2012, 2:05:49 AM3/21/12
to gz...@googlegroups.com
@Maple

其實我們協力fork並維護njit8021xclient不好嗎?
我的設想:
1、加入選項支持中東(中山大學東校區)的H3C,參見:
https://github.com/liuqun/njit8021xclient/issues/1
2、整理code,減少編譯依賴,降低編譯難度,比如MD5不要用libgcrypt或libcrypto。因爲有這個才能上網,地位特殊。
http://en.wikipedia.org/wiki/MD5
3、維護一個二進制tarball,兼容所有LSB系統
http://www.linuxfoundation.org/collaborate/workgroups/lsb
4、(可選)和NetworkManager集成
http://live.gnome.org/NetworkManager

那個liuqun偶爾也會出現,不過好像他也不是很有精力繼續njit8021xclient的工作。
而你好像精力比較旺盛,所以我希望能和你合作,可以先討論一下工作目標。

Ma Xiaojun

unread,
Mar 21, 2012, 3:24:15 AM3/21/12
to gz...@googlegroups.com
@Qian Hong

什麽是njit8021xclient的“湖南大学定制版本”?
還有我編輯了Wiki頁,給點意見?
http://wiki.ubuntu.org.cn/南京工程学院802.1X客户端

Ma Xiaojun

unread,
Mar 21, 2012, 3:27:34 AM3/21/12
to gz...@googlegroups.com
中文的URL,有時候還是會有些問題,我做了Redirect,以後也可以下面這個鏈接
wiki.ubuntu.org.cn/Njit8021xclient

Maple

unread,
Mar 21, 2012, 3:44:42 AM3/21/12
to gz...@googlegroups.com
@Ma Xiaojun
其实我更愿意对wpa_supplicant进行扩展,原因如下:
1. 我重新在主页上看了,有很完整的最新版的开发者文档。http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf
2. wpa_supplicant有提供对eap进行扩展的机制,我只需要简单的修改就可以支持我们学校的协议了,交叉编译也很方便
3. 阅读这个项目的源码可以学到的东西会更多

On 21 March 2012 15:27, Ma Xiaojun <damag...@gmail.com> wrote:
中文的URL,有時候還是會有些問題,我做了Redirect,以後也可以下面這個鏈接
wiki.ubuntu.org.cn/Njit8021xclient
--
您收到此邮件是因为您订阅了 Google 网上论坛的“广州 GNU/Linux 用户组”论坛。
要向此网上论坛发帖,请发送电子邮件至 gz...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 gzlug+un...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/gzlug?hl=zh-CN 访问此网上论坛。

Ma Xiaojun

unread,
Mar 21, 2012, 4:04:03 AM3/21/12
to gz...@googlegroups.com
> 其实我更愿意对wpa_supplicant进行扩展,原因如下:
> 1. 我重新在主页上看了,有很完整的最新版的开发者文档。http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf
> 2. wpa_supplicant有提供对eap进行扩展的机制,我只需要简单的修改就可以支持我们学校的协议了,交叉编译也很方便
> 3. 阅读这个项目的源码可以学到的东西会更多

尊重你的選擇。
不過你的這3點都是從開發者的角度來説的。
而我的設想關注的是用戶體驗。我想看看我們最終能否做到:
1、客戶端安裝、配置、使用難度和Windows相當甚至更低,但實現的效果更好(可以自動重連,沒有網卡限制等)
2、簡單易用的OpenWRT的,無需依賴Python的客戶端。當然對你在OH3C上的努力表示感謝。

Qian Hong

unread,
Mar 25, 2012, 10:36:39 AM3/25/12
to gz...@googlegroups.com
2012/3/21 Ma Xiaojun <damag...@gmail.com>:
好几天没开电脑了, 刚刚有机会回复.

1. 我在东校区的时候, (08年和09年), 一直使用所谓的 "湖南大学定制版" 进行认证,
这个版本好像是湖南大学的朋友根据刘群开发的版本修改的, 不过我不知道具体区别是什么, 估计去 南京工程学院802.1x客户端
的邮件列表问比较好. 不知现在东校区怎么认证?
2. 我很久没有用过东校区的校园网了, 对现在的情况都不了解, 不知Qingping是否熟悉东校区的校园网?
我对于你修改的wiki提不出什么建议 :) 毕竟没办法亲自去确认. 谢谢你维护 :)

Ma Xiaojun

unread,
Mar 25, 2012, 12:30:42 PM3/25/12
to gz...@googlegroups.com
其實我就是把我覺得“亂七八糟,不知所云”(很遺憾,常見於各種自由/開源項目,特別嚴重的例子是SugarLabs)的內容都刪除了。然後修正了一些鏈接。

Maple

unread,
Mar 25, 2012, 12:38:54 PM3/25/12
to gz...@googlegroups.com
东校的我比较熟悉啦,以前linux1x可以用的,后来全校更新了交换机后就开始强制进行版本号验证,也就只能用官方的inode了,然后我hack了一下发现了客户端验证的漏洞写了yah3c。

Ma Xiaojun

unread,
Mar 25, 2012, 12:56:02 PM3/25/12
to gz...@googlegroups.com
@Maple

https://github.com/liuqun/njit8021xclient/issues
寫了很多Issue上去,YaH3C,如果能推廣到其他學校到也好~

Jactry

unread,
Apr 14, 2012, 1:23:08 PM4/14/12
to gz...@googlegroups.com
挖下坟……
现在我鼓起勇气省吃俭用加开了个校园网……打算尝试解决广工这个问题。
Qian Hong兄说用reactos代替xp,我试了下,在reactos连inode的安装程序都跑不起来。
reactos的兼容是来自wine的,我觉得至少应该让inode在wine跑起来再说,这样对吗?

另外除了wine、reactos这样的非原生办法之外,有没有可能通过自己对现有的Linux校园网客户端增加协议来支持?
应该怎样做?
谢谢。

Qian Hong

unread,
Apr 14, 2012, 1:46:08 PM4/14/12
to gz...@googlegroups.com


在 2012-4-15 上午1:23,"Jactry" <jact...@gmail.com>写道:
>
>
>
> 在 2012年3月13日 下午11:10,Jactry <jact...@gmail.com>写道:
>
>>
>>
>> 在 2012年3月13日 下午10:59,Qian Hong <frac...@gmail.com>写道:
>>
>>> 2012/3/13 Jactry <jact...@gmail.com>:
>>> >  话说LUG里广工有校园网的同学不妨试试,如果能成的话,广工的校园网才算真的有解决方案呐~
>>> > 听说有广工有Linuxer为了上校园网开个VBox......实在坑爹
>>>
>>> 广工校园网好像是用h3c吧? 广工校园网的问题我关注几年了, 曾经专门跑去抓包, 不过水平有限没有做出有用的东西.
>>> h3c目前还没办法在wine下运行的.
>>>
>>> 理论上, vbox winxp的方案也可以换成 vbox reactos的方案, 使用reactos有两个好处, 一是完全开源, 适合有自由软件洁癖的朋友,
>>> 而是轻量级, reactos比winxp小得多. 不过, reactos的bug很多, 有勇气选择这种方案的朋友要做好报bug的准备 ;-)
>>>
>>>
>>  是h3c:http://www.h3c.com.cn/Service/Software_Download/IP_Management/iNode/iNode/
>> 也有Linux客户端,可是学校开的功能太多了……开了MAC绑定,而Linux客户端没跟上这个功能,所以悲剧了。 
>>
>
> 挖下坟……
> 现在我鼓起勇气省吃俭用加开了个校园网……打算尝试解决广工这个问题。
> Qian Hong兄说用reactos代替xp,我试了下,在reactos连inode的安装程序都跑不起来。

好吧,我知道这个问题,但是我当年舍不得花时间给reactos报这个bug,所以你今天又遇到这个该死的问题了…其实这个问题在我的日程表内,但是我因为其他更高优先级的事情没完成,就来不及报这个bug。不过很高兴你有兴趣,多一个人推动,肯定能更快解决问题。给reactos报bug比较特殊,需要给虚拟机配置串口,然后从主机读取虚拟机串口的数据保存日志,你先搜一下reactos官方wiki中关于报bug的指南,遇到问题我们再在这里讨论~
> reactos的兼容是来自wine的,我觉得至少应该让inode在wine跑起来再说,这样对吗?
>
不是的,inode有一个内核模块,并且依赖ndis.sys,wine目前没有这方面的支持。而reactos在这方面已经是挺完备了,应该直接给reactos报bug。

> 另外除了wine、reactos这样的非原生办法之外,有没有可能通过自己对现有的Linux校园网客户端增加协议来支持?

现在广工校园网认证是什么情况?是不是有个能连接但是会掉线的官方原生linux客户端?
> 应该怎样做?
> 谢谢。

Jactry

unread,
Apr 14, 2012, 2:02:57 PM4/14/12
to gz...@googlegroups.com


在 2012年4月15日星期日,Qian Hong <frac...@gmail.com> 写道:
>
> 在 2012-4-15 上午1:23,"Jactry" <jact...@gmail.com>写道:
>>
>>
>>
>> 在 2012年3月13日 下午11:10,Jactry <jact...@gmail.com>写道:
>>
>>>
>>>
>>> 在 2012年3月13日 下午10:59,Qian Hong <frac...@gmail.com>写道:
>>>
>>
>
>> 另外除了wine、reactos这样的非原生办法之外,有没有可能通过自己对现有的Linux校园网客户端增加协议来支持?
>
> 现在广工校园网认证是什么情况?是不是有个能连接但是会掉线的官方原生linux客户端?

是的,一分钟掉一次。具体是哪里导致的还不清楚,学校开了mac绑定……

Qian Hong

unread,
Apr 14, 2012, 2:31:17 PM4/14/12
to gz...@googlegroups.com
2012/4/15 Jactry <jact...@gmail.com>:
> 另外除了wine、reactos这样的非原生办法之外,有没有可能通过自己对现有的Linux校园网客户端增加协议来支持?
> 应该怎样做?

本来在床上打滚的,没睡着,用手机看到这个帖子干脆激动得起来开电脑了...

先澄清一个误解: ReactOS的用户空间dll是来自Wine项目, 不过ReactOS也有像Wine反馈代码.
关键是, ReactOS的内核空间部分完全是自己实现的, 所以"reactos的兼容性来自于Wine"
这种说法就不够精确了.
ReactOS目前已经支持usb驱动, 我手上有8个网银u盾, 同样是一堆bug没来得及报.

关于原生的方案, 我想只能抓包分析+反汇编,逆向协议和加密算法.
可是这两者我都不懂, 帮不了太多忙.

根据你说的, 可能广工的校园网客户端需要每分钟发送一个心跳包保持在线, win客户端
实现了心跳包的发送, linux客户端没有实现或者没有正确实现心跳包的发送.
至于心跳包跟mac绑定有没有关系我也不知道, 一切都是猜测.
如果问题是在于心跳包的话, 那么抓包的时候就要重点研究心跳包咯.
如果协议中不包含非标准的加密算法,那么自己实现的希望是比较大的.
当然,由于没有inode的源代码,要通过修改官方inode来实现稳定上网是不太可能的.
但是,可以把认证开头部分交给inode去做,然后自己写一个完成心跳包发送的程序.
不知有没有开源客户端同样在广工能认证但是一分钟掉线一次?
也可以随机折腾试试, 把现有的其他客户端的心跳包拿来用.
我听说过一些学校的变态dr.com, 有网友用了变态的解决方案, 同时使用开源的dr.com
和mentohust开启认证才骗过了dr.com服务端完成认证.

以上建议都是假定问题是出在心跳包上,不是的话就全是废话了.

另外,如果inode用了非标准的加密算法, 那么解决起来就困难很多了.
这种情况下, 我建议如果没有信心破解出加密算法或者对反汇编不够熟悉, 不妨
尝试一下"半原生"的方式而不是原生的方式.

所谓半原生的方式,就是发包部分用原生linux api, 图形界面用原生linux api, 只在
加密解密部分用inode win32的dll. 使用winelib的技术就可以实现linux api和win32
api的混合, 上述方案的结果就是虽然依赖wine,但是外表和体验跟原生linux程序
完全一样.

这里的难题就是,如何知道inode win32用哪个dll实现加密解密,以及在什么时候
分别调用哪些函数进行加密解密?

回答这个问题, 首先是假定inode win32的加密解密部分是在用户空间dll中实现的.
我记得好像确实是这样,从文件名和函数名猜的.

wine带有一个工具叫winedump,可以分析出win32 dll的导入导出符号表,
利用这个工具,对每个可疑的dll进行分析,应该不难猜出哪些函数是用于实现加密
解密的.

接下来, 如果能够一边抓包一边跟踪dll的调用情况, 就可以知道在发哪个包之前,
调用了哪个函数进行加密, 在收到哪个包之后,又调用了哪个dll进行解密.
WINEDEBUG参数有一个叫做snoop的,就是用来跟踪dll函数调用的,可以上wine
的wiki查一下然后动手试一下.
但是, snoop参数对我们没有直接的用处,因为inode本身都没办法在Wine上成功
运行. 不是Win32平台的原生工具是不是有类似的追踪功能,请了解的朋友分享一下.
(简单地说, 一句话, snoop和relay是Wine的两大法宝, 他们加起来大约相当于Linux
下的strace+ltrace. 但是, 我在win32下没有找到类似strace和ltrace的工具)

以上的思路综合起来还可以启发出一个新的思路,就是先给reactos报bug, 改进reactos
直到inode能在reactos上成功认证, 然后在reactos上同样打开snoop追踪inode的dll
调用, 最后使用winelib实现半原生的方案.

由于我不懂反汇编,所以我不知道反汇编解决inode问题的道路有多难,从我的角度看,
使用reactos实现virtualbox+ireactos的方案是最容易的. 在这个基础上, 实现winelib
+ inode, 相比稍微难一些. 而反汇编加上协议分析, 对我来说是最难的.

最后说一下, 使用snoop追踪微软操作系统本身的dll是有风险的. 如果你担心自己有
一天会因为曾经公开用snoop追踪微软的dll而导致自己给wine的补丁被拒绝了, 那就
不要这么做 :) 如果你很自信自己一辈子都不会想给wine发补丁, 那就 -- 还是小声点
好 :)

Qian Hong

unread,
Apr 14, 2012, 2:36:32 PM4/14/12
to gz...@googlegroups.com
2012/4/15 Qian Hong <frac...@gmail.com>:

> 不是Win32平台的原生工具是不是有类似的追踪功能,请了解的朋友分享一下.
> (简单地说, 一句话, snoop和relay是Wine的两大法宝, 他们加起来大约相当于Linux
> 下的strace+ltrace. 但是, 我在win32下没有找到类似strace和ltrace的工具)

写太快了,笔误太多了,真是抱歉.
纠正一处笔误,应该改为: 不知Win32平台的原生工具是不是有类似的功能.

Jactry

unread,
Apr 14, 2012, 10:02:51 PM4/14/12
to gz...@googlegroups.com
Thanks,我打算从ReactOS开始,逆向工程那些我完全没接触过,现在可能也没那么多精力来学习。
不过如果列表里有朋友感兴趣,需要抓包什么的,可以随时找我配合。

现在inode出了新本版。5.1(e0301) ,不知道Linux端有没有改进什么,可是华为竟然对下载做了权
限限制……

Tiger Soldier

unread,
Apr 15, 2012, 2:42:29 AM4/15/12
to gz...@googlegroups.com
H3C在linux下出现过两个客户端,一个是linux1x,那个很旧了,现在不能用了。另外一个是inode,带图形界面。Jactry说的会掉线的官方客户端是linux1x还是inode?

要破解协议的话,可以先试用wireshark,过滤出EAP包,比较win下和linux下的差异。如果运气好的话可以直接看出包的结构和生成方式。如果是用心跳包来保持在线的话,心跳包能一眼识破的可能性还是不小的。

如果看不出来就只能逆向了。h3c的大部分协议已经被破解,可以先从被破解的协议猜测未被破解的协议,具体协议可以问maple。

实在不行就反汇编吧,没有想像的困难,主要是了解C++程序编译后对寄存器使用的一些约定。我在Linux下用gdb反汇编inode linux版成功破解了h3c的一个数据包协议。inode linux版把函数符号编译进了daemon中,逆向工程比较方便。不过windows版好像是以服务的形式存在的,不知道能否用反汇编器来调试。

Jactry

unread,
Apr 15, 2012, 2:59:30 AM4/15/12
to gz...@googlegroups.com


在 2012-4-15 下午2:42,"Tiger Soldier" <tiger...@gmail.com>写道:
>
> H3C在linux下出现过两个客户端,一个是linux1x,那个很旧了,现在不能用了。另外一个是inode,带图形界面。Jactry说的会掉线的官方客户端是linux1x还是inode?
>

是inode,我这有inode5.0的Linux和Mac版(最新的是5.1,可是找不到)我系统挂了……现在只能用手机,晚上再上传上来。

> 要破解协议的话,可以先试用wireshark,过滤出EAP包,比较win下和linux下的差异。如果运气好的话可以直接看出包的结构和生成方式。如果是用心跳包来保持在线的话,心跳包能一眼识破的可能性还是不小的。
>
> 如果看不出来就只能逆向了。h3c的大部分协议已经被破解,可以先从被破解的协议猜测未被破解的协议,具体协议可以问maple。
>
> 实在不行就反汇编吧,没有想像的困难,主要是了解C++程序编译后对寄存器使用的一些约定。我在Linux下用gdb反汇编inode linux版成功破解了h3c的一个数据包协议。inode linux版把函数符号编译进了daemon中,逆向工程比较方便。不过windows版好像是以服务的形式存在的,不知道能否用反汇编器来调试。
>

这部分先mark下。

早上开始在vbox reactos调试inode steup了,从运行到完全退出只有几行输出,粗略看似乎与ufat.dll有关?(只是从com的输出)还是晚上再贴上来。

Jactry

unread,
Apr 15, 2012, 9:32:24 AM4/15/12
to gz...@googlegroups.com
在 2012年4月15日 上午2:36,Qian Hong <frac...@gmail.com>写道:
2012/4/15 Qian Hong <frac...@gmail.com>:
> 不是Win32平台的原生工具是不是有类似的追踪功能,请了解的朋友分享一下.
> (简单地说, 一句话, snoop和relay是Wine的两大法宝, 他们加起来大约相当于Linux
> 下的strace+ltrace. 但是, 我在win32下没有找到类似strace和ltrace的工具)

写太快了,笔误太多了,真是抱歉.
纠正一处笔误,应该改为: 不知Win32平台的原生工具是不是有类似的功能.

终于能用电脑了……
ReactOS的wiki我还没看完,这是我早上测试的结果,还不明白是什么,先贴上来:

fixme:(dll\win32\shell32\shlexec.cpp:1684) flags ignored: 0x00000004
(lib\rtl\actctx.c:1589) Exception accessing buffer
(ntoskrnl\ps\query.c:1609) No execute support not implemented
(dll\ntdll\ldr\ldrutils.c:1322) LDR: LdrpMapDll Relocating Image Name ufatx.dll (5B570000 -> 00442000)
(dll\ntdll\ldr\ldrutils.c:1361) Overlapping DLL: C:\ReactOS\system32\ufat.dll
(lib\rtl\actctx.c:1589) Exception accessing buffer
(ntoskrnl\ps\query.c:1609) No execute support not implemented
(dll\ntdll\ldr\ldrutils.c:1322) LDR: LdrpMapDll Relocating Image Name ufatx.dll (5B570000 -> 00476000)
(dll\ntdll\ldr\ldrutils.c:1361) Overlapping DLL: C:\ReactOS\system32\ufat.dll
err:(dll\win32\ole32\compobj.c:2320) class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err:(dll\win32\ole32\rpc.c:1653) class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err:(dll\win32\ole32\compobj.c:2396) no class object {88d969c0-f192-11d4-a65f-0040963251e5} could be created for context 0x5
(lib\rtl\actctx.c:874) Unsupported yet language attribute (*)
(lib\rtl\actctx.c:1485) unknown element trustInfo
(ntoskrnl\ps\query.c:1609) No execute support not implemented
(dll\ntdll\ldr\ldrutils.c:1322) LDR: LdrpMapDll Relocating Image Name ufatx.dll (5B570000 -> 00CA3000)
(dll\ntdll\ldr\ldrutils.c:1361) Overlapping DLL: C:\ReactOS\system32\ufat.dll
Assertion 'FreeEntry->PreviousSize == CurrentEntry->Size' failed at lib\rtl\heap.c line 1084
(ntoskrnl\ke\i386\exp.c:1089) Kill iNodeSetup.exe, ExceptionCode: c0000005, ExceptionAddress: 7c705738, BaseAddress: 400000
(ntoskrnl\se\semgr.c:299) SidInToken Calls: 30000

Qian Hong

unread,
Apr 15, 2012, 10:32:25 AM4/15/12
to gz...@googlegroups.com
2012/4/15 Jactry <jact...@gmail.com>:

> 终于能用电脑了……
> ReactOS的wiki我还没看完,这是我早上测试的结果,还不明白是什么,先贴上来:

log建议用 pastebin 发 :)
我记得这个问题是关于相对路径的bug.
你试试在reactos上安装firefox上, 然后, 分别:
- 从开始菜单启动firefox
- 从命令行用绝对路径启动firefox
- 从命令行用相对路径启动firefox
看看最后一种方法是不是会启动失败, 并且打印相似的log?
多尝试几个别的程序实验一下.
然后试试用绝对路径是不是可以启动inode.
如果是的话, 搜一下有没有重复的bug, 有的话简要追加你的测试结果, 没有的话可以报bug了.

Jactry

unread,
Apr 15, 2012, 12:58:02 PM4/15/12
to gz...@googlegroups.com
iNode PC 5.0 (E0105)版本说明书.pdf 这里面有Linux与Windows版本的比较和功能说明。
iNode+PC+5.0+(E0105)版本说明书.pdf

Jactry

unread,
Apr 15, 2012, 1:38:39 PM4/15/12
to gz...@googlegroups.com
在 2012年4月15日 下午10:32,Qian Hong <frac...@gmail.com>写道:
2012/4/15 Jactry <jact...@gmail.com>:
> 终于能用电脑了……
> ReactOS的wiki我还没看完,这是我早上测试的结果,还不明白是什么,先贴上来:

log建议用 pastebin 发 :)
我记得这个问题是关于相对路径的bug.
你试试在reactos上安装firefox上, 然后, 分别:
- 从开始菜单启动firefox
- 从命令行用绝对路径启动firefox
- 从命令行用相对路径启动firefox
测试了firefox和7zip
版本是昨天的nightly build。似乎绝对路径和相对路径没啥问题。
firefox比较奇怪,安装时就有错误,不过能完成安装。
直接 C:\Program Files\Mozilla Firefox\firefox.exe 
或者 在 ReactOS目录下 ..\Program Files\Mozilla Firefox\firefox.exe 都是不能运行的,而且输出的信息也不用。
如果在图像界面直接运行就可以。
7zip无论是绝对路径还是先对路径都没问题。
明天我再多试几个。
 
看看最后一种方法是不是会启动失败, 并且打印相似的log?
多尝试几个别的程序实验一下.
然后试试用绝对路径是不是可以启动inode.
如果是的话, 搜一下有没有重复的bug, 有的话简要追加你的测试结果, 没有的话可以报bug了.

话说那些输出一点都看不懂……
Qian Hong兄是怎样觉得是路径问题的?


PS:ReactOS的终端和M$的终端一样巨难用…… 

Tiger Soldier

unread,
Apr 15, 2012, 2:24:42 PM4/15/12
to gz...@googlegroups.com
Jactry是从哪里拿到iNode的Linux客户端的?官网上似乎没有

Jactry

unread,
Apr 15, 2012, 9:26:27 PM4/15/12
to gz...@googlegroups.com
在 2012年4月16日 上午2:24,Tiger Soldier <tiger...@gmail.com>写道:
Jactry是从哪里拿到iNode的Linux客户端的?官网上似乎没有
我们学校bbs上一个应该是师兄发的。
官网是有的,只是一般用户没有下载权限,管理校园网的人应该有。 
最新的是iNode PC 5.1 (E0301):
我这还有Linux端的安装说明,一并发上来。


iNode Installation Guide_Linux.pdf

Qian Hong

unread,
Apr 16, 2012, 12:35:24 PM4/16/12
to gz...@googlegroups.com
2012/4/16 Jactry <jact...@gmail.com>:

> 测试了firefox和7zip
> 版本是昨天的nightly build。似乎绝对路径和相对路径没啥问题。
> firefox比较奇怪,安装时就有错误,不过能完成安装。
你是不是安装的时候遇到runtime error 6034? 我遇到这个问题, 这也是个bug, 但我不清楚是否有人报了.

> 直接 C:\Program Files\Mozilla Firefox\firefox.exe
> 或者 在 ReactOS目录下 ..\Program Files\Mozilla Firefox\firefox.exe
> 都是不能运行的,而且输出的信息也不用。

我测试的结果和你不同:
我 C:\Program Files\Mozilla Firefox\firefox.exe 是可以运行的, 但是相对路径就不能运行.
你能不能再确认一下?
我装的是firefox 11

> 如果在图像界面直接运行就可以。
> 7zip无论是绝对路径还是先对路径都没问题。
> 明天我再多试几个。
>
>>
>> 看看最后一种方法是不是会启动失败, 并且打印相似的log?
>> 多尝试几个别的程序实验一下.
>> 然后试试用绝对路径是不是可以启动inode.
>> 如果是的话, 搜一下有没有重复的bug, 有的话简要追加你的测试结果, 没有的话可以报bug了.
>>
> 话说那些输出一点都看不懂……
> Qian Hong兄是怎样觉得是路径问题的?

我没看懂log, 我是做实验总结出来的, 不一定对.
我现在记不得当时的具体情况了, 这也是不及时报bug的下场. 没有记录下来, 当时相当于白折腾了.


我这边inode的安装程序无法启动, 如果从绝对路径运行, 则没有图形界面显示;
如果从相对路径运行, 就会有一个图形界面报错.
两种运行方式打印的log是不一样的.
不知你的测试结果和我相同不?

还有,我们测试的inode版本不一定一样, 不如你把你们学校的win32版inode发给我一份?

Jactry

unread,
Apr 16, 2012, 2:25:11 PM4/16/12
to gz...@googlegroups.com
Qian Hong <frac...@gmail.com>:

>你是不是安装的时候遇到runtime error 6034? 我遇到这个问题, 这也是个bug, 但我不清楚是否有人报了.
嗯,我明天去看看吧,如果没有就顺便报了。

>我测试的结果和你不同:
>我 C:\Program Files\Mozilla Firefox\firefox.exe 是可以运行的, 但是相对路径就不能运行.
>你能不能再确认一下?
>我装的是firefox 11
我也是ffx11。有点晚了,明天继续。
>还有,我们测试的inode版本不一定一样, 不如你把你们学校的win32版inode发给我一份?
这里:http://web.gdut.edu.cn/~nic/8021x/iNodeSetup5.0.rar

Jactry

unread,
Apr 16, 2012, 2:31:22 PM4/16/12
to gz...@googlegroups.com


>>我测试的结果和你不同:
>>我 C:\Program Files\Mozilla Firefox\firefox.exe 是可以运行的, 但是相对路径就不能运行.
>>你能不能再确认一下?
>>我装的是firefox 11
>我也是ffx11。有点晚了,明天继续。
还有会不会是ReactOS版本不同,我用的是nightly build:

Jactry

unread,
Apr 17, 2012, 12:57:25 AM4/17/12
to gz...@googlegroups.com
Qian Hong <frac...@gmail.com>写道:

>我测试的结果和你不同:
>我 C:\Program Files\Mozilla Firefox\firefox.exe 是可以运行的, 但是相对路径就不能运行.
>你能不能再确认一下?
>我装的是firefox 11
今天又试了次,结果和原来差不多。
不知道我的方法对吗,所以截图上来,在附件。
无论是那种路径,firefox在命令行就是启动不了,但是7zip都可以,所以应该和相对路径和绝对路径无关吧?
而且无论firefox用那种路径,输出几乎是一致的,只在路径处有差别(见附件log 32行)

而inode如果从命令行启动,可以看到一个GUI的报错,输出错误也和直接双击运行不同!(附件log-inode)


在 2012年4月17日 上午12:35,Qian Hong <frac...@gmail.com>写道:
2012-04-17 12:17:20的屏幕截图.png
log
log-inode

Qian Hong

unread,
Apr 17, 2012, 1:06:53 AM4/17/12
to gz...@googlegroups.com
2012/4/17 Jactry <jact...@gmail.com>:

> 今天又试了次,结果和原来差不多。
> 不知道我的方法对吗,所以截图上来,在附件。
> 无论是那种路径,firefox在命令行就是启动不了,但是7zip都可以,所以应该和相对路径和绝对路径无关吧?
> 而且无论firefox用那种路径,输出几乎是一致的,只在路径处有差别(见附件log 32行)
>
> 而inode如果从命令行启动,可以看到一个GUI的报错,输出错误也和直接双击运行不同!(附件log-inode)

从你的截图看, 你测试的两行命令都是相对路径.
绝对路径应该把*盘符* 也写进去:
C:\dir\app.exe

你试试看?

(你的思维已经Linux化了,忘了windows下是有盘符的了~)

Qian Hong

unread,
Apr 17, 2012, 1:07:40 AM4/17/12
to gz...@googlegroups.com
2012/4/17 Jactry <jact...@gmail.com>:

> 还有会不会是ReactOS版本不同,我用的是nightly build:
> http://www.reactos.org/getbuilds/

我也是测试nightly build的

Jactry

unread,
Apr 17, 2012, 1:17:34 AM4/17/12
to gz...@googlegroups.com
囧……
已经再次测试了,firefox绝对路径可以启动,相对路径依旧不行,7zip两种都行。
应该可以去报bug了~?
firefox11安装的bug我已经报了。

Qian Hong

unread,
Apr 17, 2012, 1:28:09 AM4/17/12
to gz...@googlegroups.com
2012/4/17 Jactry <jact...@gmail.com>:

> 已经再次测试了,firefox绝对路径可以启动,相对路径依旧不行,7zip两种都行。
> 应该可以去报bug了~?

只要找不到重复的bug就可以报 :)
h3c inode你试过了没?绝对路径和相对路径是两种不同的现象,都不能启动.
这里至少也得报一个bug.

Qian Hong

unread,
Apr 20, 2012, 12:24:25 AM4/20/12
to gz...@googlegroups.com
2012/4/17 Jactry <jact...@gmail.com>:

> 囧……
> 已经再次测试了,firefox绝对路径可以启动,相对路径依旧不行,7zip两种都行。
> 应该可以去报bug了~?
> firefox11安装的bug我已经报了。

有时间看看这个关于firefox 10 在reactos上的bug吗?
http://www.reactos.org/bugzilla/show_bug.cgi?id=6910

Jactry

unread,
Apr 20, 2012, 4:49:51 AM4/20/12
to gz...@googlegroups.com
在 2012年4月20日 下午12:24,Qian Hong <frac...@gmail.com>写道:
2012/4/17 Jactry <jact...@gmail.com>:
> 囧……
> 已经再次测试了,firefox绝对路径可以启动,相对路径依旧不行,7zip两种都行。
> 应该可以去报bug了~?
> firefox11安装的bug我已经报了。

有时间看看这个关于firefox 10 在reactos上的bug吗?
http://www.reactos.org/bugzilla/show_bug.cgi?id=6910

 OK,不过我想先把inode的给报了先,有点小忙,到现在断断续续只完成了两个firefox11的报bug
不知道inode的bug应该怎么报?是直接说这个程序运行受阻,然后给程序链接和相关输出吗?
请教下,谢谢。

Qian Hong

unread,
Apr 20, 2012, 10:37:53 AM4/20/12
to gz...@googlegroups.com
2012/4/20 Jactry <jact...@gmail.com>:

>>
>> 有时间看看这个关于firefox 10 在reactos上的bug吗?
>> http://www.reactos.org/bugzilla/show_bug.cgi?id=6910
>>
>  OK,不过我想先把inode的给报了先,有点小忙,到现在断断续续只完成了两个firefox11的报bug
> 不知道inode的bug应该怎么报?是直接说这个程序运行受阻,然后给程序链接和相关输出吗?
> 请教下,谢谢。

上面的第一链接中的bug很可能跟我们发现的问题是同一个,这个bug 6910已经修了, 所以我们得
确认一下我们发现的问题是不是也解决了, 是的话就确定是同一个bug了,不是的话也可以更新一下
测试结果.
我今天有空,晚点验证一下.

h3c inode的bug,就说这个程序无法启动, 然后附上log就好.
其实wine/reactos的bug最容易写bug report了:
- 写清楚版本号
- 提供下载链接
- 按时间顺序记录做过的事情和观察到的现象,包括log
- Expect result: 写下在Windows下应该出现的正常现象
- Actual result: 写下reactos/wine 下出现的对应的异常现象

其他开源项目的bug也类似, 必要的时候写下expect result 和 actual result进行对比,
这样描述就比单纯写actual result要清晰很多.

Jactry

unread,
Apr 20, 2012, 10:44:25 AM4/20/12
to gz...@googlegroups.com
Thanks,争取这个周末报完,等回复,再开一条线程,按照大兵兄说的抓包那个方法尝试下。 

Jactry

unread,
Apr 20, 2012, 11:35:40 AM4/20/12
to gz...@googlegroups.com

Qian Hong

unread,
May 30, 2012, 9:11:12 AM5/30/12
to gz...@googlegroups.com
2012/4/20 Jactry <jact...@gmail.com>:

Jactry, 你报的关于相对路径的bug有更新, 你有时间下载最新的reactos重新测试一下吗?
如果测试之后发现已经修复了, 那么关于h3c的bug也值得重新测一下.

Jactry

unread,
May 30, 2012, 9:15:14 AM5/30/12
to gz...@googlegroups.com
在 2012年5月30日 下午9:11,Qian Hong <frac...@gmail.com>写道:
2012/4/20 Jactry <jact...@gmail.com>:
Jactry, 你报的关于相对路径的bug有更新, 你有时间下载最新的reactos重新测试一下吗?
如果测试之后发现已经修复了, 那么关于h3c的bug也值得重新测一下.

今天有看到邮件,还没时间测试。 
Reply all
Reply to author
Forward
0 new messages