当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]中国电信联创通信宽带上网助手 在linux怎么上网?
帖子发表于 : 2007-09-27 13:35 
头像

注册: 2007-09-20 22:51
帖子: 77
送出感谢: 0 次
接收感谢: 0 次
我是江苏的大学生,江苏大部分的大学使用的上网客户端都是南京联创通信有限公司的上网客户端——中国电信联创通信宽带上网助手 ,而且变态的只有windows版本!我强烈鄙视MS 的一切SOFTWARE! 一直使用的都是linux,希望大家关注,有办法的希望帮助一下,万分感激。它使用的是802.1X认证,且嵌入winpcap,网上已经有人破解了win下的客户端。
(下面引用win下的破解过程,网上能够down的到!google一下就行!)
802.1x 的破解
联创上网助手的简单分析

我们学校上网方式用的是802.1x拨号协议,不能用普通路由器实现共享上网,拨号软件是联创通信的宽带上网助手,其中加了反代理检测,不许系统有双网卡,不许有多个ip,也不许开代理服务器等违规产品,为了省上网费,我决定对它的程序开一开刀!

PEID查壳,无壳!!VC++7.0写的。看来联创通信比较小看我们学生,这么大胆,居然不加壳!(其实最不能让我忍受的是它的密码加密算法实在太简单,这么简单的算法还不加壳。。。。)

(一)破解反代理检测


废话不多说了,用OllyDBG载入,bp MessageBoxA下断点,运行,点连接,这是拨号成功,然后大概过了1秒,程序断在


代码:--------------------------------------------------------------------------------
00406EDD |. E8 5E1C0000 call Dot1xCli.00408B40 ; 这个call是下线
00406EE2 |. 8B0D 2C9D4100 mov ecx,dword ptr ds:[419D2C]
00406EE8 |. 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
00406EEA |. 68 684D4100 push Dot1xCli.00414D68 ; |Title = "反代理激活!"
00406EEF |. 8D4424 0C lea eax,dword ptr ss:[esp+C] ; |
00406EF3 |. 50 push eax ; |Text
00406EF4 |. 51 push ecx ; |hOwner => NULL
00406EF5 |. FF15 20424100 call near dword ptr ds:[ ; \MessageBoxA ★断在这里!!
00406EFB |. 81C4 84030000 add esp,384
00406F01 |. C3 retn
--------------------------------------------------------------------------------



这里出现反代理检测的对话框,我们向下运行,alt+F9,来到


代码:--------------------------------------------------------------------------------
00407922 > \8B8424 74030000 mov eax,dword ptr ss:[esp+374] ; Case 475 of switch 00406F8A
★这个分支是反代理激活消息号是475
00407929 . 8B8C24 70030000 mov ecx,dword ptr ss:[esp+370]
00407930 . 8B9424 68030000 mov edx,dword ptr ss:[esp+368]
00407937 . 50 push eax
00407938 . 51 push ecx
00407939 . 68 75040000 push 475
0040793E . 52 push edx
0040793F . E8 4CF4FFFF call Dot1xCli.00406D90 ; 这个call就是处理代码
00407944 . 83C4 10 add esp,10 ; 返回这里★
00407947 . 5F pop edi
00407948 . 5E pop esi
00407949 . 8BC5 mov eax,ebp
0040794B . 5D pop ebp
0040794C . 81C4 58030000 add esp,358
00407952 . C2 1000 retn 10 ; 这个分支就是处理的过程,我们直接跳过就行了
--------------------------------------------------------------------------------


去掉这个分支,就可以破解了,但我们这里去找找它怎么发现我们有违规产品的。记下消息号为475,显然,程序用消息的方式来调用反代理激活。然后,点右键,选搜索,当前模块中的名称,然后选SendMessageA,选出消息号为475的
只有一个SendMessageA满足要求


代码:--------------------------------------------------------------------------------
00405FCA |> \33FF xor edi,edi ; 这里判断是否有违规产品; Case 7C of switch 00405CDA
00405FCC |. E8 8FBCFFFF call Dot1xCli.00401C60 ; 检测多网卡
00405FD1 |. 85C0 test eax,eax
00405FD3 |. 75 05 jnz short Dot1xCli.00405FDA
00405FD5 |. BF 01000000 mov edi,1 ; 有多网卡edi+1
00405FDA |> E8 51B7FFFF call Dot1xCli.00401730 ; 检测多ip地址
00405FDF |. 85C0 test eax,eax
00405FE1 |. 75 03 jnz short Dot1xCli.00405FE6
00405FE3 |. 83CF 02 or edi,2 ; 多个ip地址edi+2
00405FE6 |> 833D C89D4100 14 cmp dword ptr ds:[419DC8],14 ; 检测proxy代理
00405FED |. 7C 03 jl short Dot1xCli.00405FF2
00405FEF |. 83CF 04 or edi,4 ; proxy代理edi+4
00405FF2 |> 833D CC9D4100 02 cmp dword ptr ds:[419DCC],2
00405FF9 |. 7C 03 jl short Dot1xCli.00405FFE
00405FFB |. 83CF 05 or edi,5
00405FFE |> 85FF test edi,edi ; 判断是否有违规产品
00406000 |. C705 C89D4100 000000>mov dword ptr ds:[419DC8],0
0040600A |. C705 CC9D4100 000000>mov dword ptr ds:[419DCC],0
00406014 |. 0F84 CB010000 je Dot1xCli.004061E5 ; 没有,则不发消息,爆破点★改为jmp,爆破
0040601A |. 8BB424 1C010000 mov esi,dword ptr ss:[esp+11C]
00406021 |. 55 push ebp
00406022 |. 8B2D EC414100 mov ebp,dword ptr ds:[ ; USER32.KillTimer
00406028 |. 68 F5010000 push 1F5 ; /TimerID = 1F5 (501.)
0040602D |. 56 push esi ; |hWnd
0040602E |. FFD5 call near ebp ; \KillTimer
00406030 |. 6A 7C push 7C ; /TimerID = 7C (124.)
00406032 |. 56 push esi ; |hWnd
00406033 |. FFD5 call near ebp ; \KillTimer
00406035 |. 57 push edi ; /这里是哪种违规产品
00406036 |. 6A 00 push 0 ; |wParam = 0
00406038 |. 68 75040000 push 475 ; |检测到违规产品!!消息号为475
0040603D |. 56 push esi ; |发给自己
0040603E |. FF15 E4414100 call near dword ptr ds:[ ; \SendMessageA ★就这一处消息号为475的
--------------------------------------------------------------------------------



其中检测多网卡的方法是遍历系统中可用的网卡树目,超过一个就eax=1,这样,edi=edi+1,这样edi不为0,即有违规品,然后发送475消息,出现反代理激活。检测多个ip也是一样,遍历系统中的所以ip,超过一个edi=edi+2,然后就发送475消息。检测proxy代理就有点不太看得懂了,不太懂网络编程,可能按数据包来算的吧。反正我的系统开了proxy代理也不出现反代理激活,还有多个ip也是,我不太懂一块网卡能有多个 ip??有网络方面的高手请指点一下,我的机器只出现过第一个分支。不管了,爆破点太多了。

这样,宽带上网助手就能容忍我们系统有双网卡了,有双网卡也就能共享上网了,方法不难,不是本文重点,就不提了。



(二)保存密码的算法
无意中看到linkageclientconfig.ini文件里有这么两行:
LastUserName=F02143879
Identify=2b1b4f3eb539abc0

所以可以肯定是可逆的算法保存密码的,而且文件这么暴露。。。。
od中下断点 bp GetPrivateProfileStringA
代码如下



代码:--------------------------------------------------------------------------------
00402C56 |. 50 push eax ; /IniFileName
00402C57 |. 68 96000000 push 96 ; |BufSize = 96 (150.)
00402C5C |. 83C1 18 add ecx,18 ; |
00402C5F |. 51 push ecx ; |用户名存放处
00402C60 |. 68 A2474100 push Dot1xCli.004147A2 ; |Default = ""
00402C65 |. 68 8C474100 push Dot1xCli.0041478C ; |Key = "LastUserName"
00402C6A |. 68 34484100 push Dot1xCli.00414834 ; |Section = "General"
00402C6F |. FFD6 call near esi ; \GetPrivateProfileStringA;读出用户名
00402C71 |. 33C0 xor eax,eax
00402C73 |. 8D5424 08 lea edx,dword ptr ss:[esp+8]
00402C77 |. 52 push edx ; /IniFileName
00402C78 |. 68 2C010000 push 12C ; |BufSize = 12C (300.)
00402C7D |. B9 4B000000 mov ecx,4B ; |
00402C82 |. 8DBC24 D8000000 lea edi,dword ptr ss:[esp+D8] ; |
00402C89 |. F3:AB rep stos dword ptr es:[edi] ; |
00402C8B |. 8D8424 D8000000 lea eax,dword ptr ss:[esp+D8] ; |
00402C92 |. 50 push eax ; |加密后的密码存放处
00402C93 |. 68 A2474100 push Dot1xCli.004147A2 ; |Default = ""
00402C98 |. 68 80474100 push Dot1xCli.00414780 ; |Key = "Identify"
00402C9D |. 68 34484100 push Dot1xCli.00414834 ; |Section = "General"
00402CA2 |. FFD6 call near esi ; \GetPrivateProfileStringA
00402CA4 |. A1 3C9D4100 mov eax,dword ptr ds:[419D3C]
00402CA9 |. 8B48 04 mov ecx,dword ptr ds:[eax+4]
00402CAC |. 85C9 test ecx,ecx
00402CAE |. 74 40 je short Dot1xCli.00402CF0
00402CB0 |. 8D50 18 lea edx,dword ptr ds:[eax+18]
00402CB3 |. 8BC2 mov eax,edx
00402CB5 |. 8D70 01 lea esi,dword ptr ds:[eax+1]
00402CB8 |> 8A08 /mov cl,byte ptr ds:[eax]
00402CBA |. 40 |inc eax
00402CBB |. 84C9 |test cl,cl
00402CBD |.^ 75 F9 \jnz short Dot1xCli.00402CB8
00402CBF |. 8D8C24 D0000000 lea ecx,dword ptr ss:[esp+D0]
00402CC6 |. 51 push ecx
00402CC7 |. 2BC6 sub eax,esi
00402CC9 |. 50 push eax
00402CCA |. 52 push edx
00402CCB |. E8 70F7FFFF call Dot1xCli.00402440 ; 还原加密的密码★跟进
--------------------------------------------------------------------------------


跟进后:解密代码


代码:--------------------------------------------------------------------------------
00402440 /$ 81EC A8000000 sub esp,0A8
00402446 |. 56 push esi
00402447 |. 8BB424 B8000000 mov esi,dword ptr ss:[esp+B8]
0040244E |. 8BC6 mov eax,esi
00402450 |. 57 push edi
00402451 |. 8D50 01 lea edx,dword ptr ds:[eax+1]
00402454 |> 8A08 /mov cl,byte ptr ds:[eax]
00402456 |. 40 |inc eax
00402457 |. 84C9 |test cl,cl
00402459 |.^ 75 F9 \jnz short Dot1xCli.00402454
0040245B |. 8B8C24 B4000000 mov ecx,dword ptr ss:[esp+B4]
00402462 |. 2BC2 sub eax,edx
00402464 |. D1E8 shr eax,1
00402466 |. 8BF8 mov edi,eax
00402468 |. 8B8424 B8000000 mov eax,dword ptr ss:[esp+B8]
0040246F |. 50 push eax
00402470 |. 51 push ecx
00402471 |. 8D5424 10 lea edx,dword ptr ss:[esp+10]
00402475 |. 52 push edx
00402476 |. E8 657D0000 call Dot1xCli.0040A1E0 ; 卡号md5存到12fa70
0040247B |. 83C4 0C add esp,0C
0040247E |. 33C9 xor ecx,ecx
00402480 |. 85FF test edi,edi
00402482 |. 7E 43 jle short Dot1xCli.004024C7
00402484 |. 53 push ebx
00402485 |> 8A044E /mov al,byte ptr ds:[esi+ecx*2] ; 取第一个
00402488 |. 3C 39 |cmp al,39 ; 比较是不是数字
0040248A |. 0FBEC0 |movsx eax,al
0040248D |. 7F 05 |jg short Dot1xCli.00402494
0040248F |. 83E8 30 |sub eax,30 ; 是则-30
00402492 |. EB 03 |jmp short Dot1xCli.00402497
00402494 |> 83E8 57 |sub eax,57 ; 不是-57
00402497 |> 8A544E 01 |mov dl,byte ptr ds:[esi+ecx*2+1] ; 取第二个
0040249B |. C0E0 04 |shl al,4 ; 第一个移4位
0040249E |. 80FA 39 |cmp dl,39 ; 和上面一样处理,只是不移位
004024A1 |. 88440C 1C |mov byte ptr ss:[esp+ecx+1C],al
004024A5 |. 0FBED2 |movsx edx,dl
004024A8 |. 7F 05 |jg short Dot1xCli.004024AF
004024AA |. 83EA 30 |sub edx,30
004024AD |. EB 03 |jmp short Dot1xCli.004024B2
004024AF |> 83EA 57 |sub edx,57
004024B2 |> 8BD9 |mov ebx,ecx
004024B4 |. 83E3 0F |and ebx,0F
004024B7 |. 0AC2 |or al,dl ; 前面两个加起来
004024B9 |. 32441C 0C |xor al,byte ptr ss:[esp+ebx+C] ; 与卡号的md5值xor(异或)
004024BD |. 88440C 1C |mov byte ptr ss:[esp+ecx+1C],al ; 保存
004024C1 |. 41 |inc ecx ; 指针后移
004024C2 |. 3BCF |cmp ecx,edi ; 是否结束
004024C4 |.^ 7C BF \jl short Dot1xCli.00402485 ; 没结束继续
004024C6 |. 5B pop ebx
004024C7 |> 8D4424 18 lea eax,dword ptr ss:[esp+18]
004024CB |. C6440C 18 00 mov byte ptr ss:[esp+ecx+18],0 ; 结尾加'\0'★这里就是密码
004024D0 |. 8BD6 mov edx,esi
004024D2 |. 8BC8 mov ecx,eax
004024D4 |. 5F pop edi
004024D5 |. 2BD1 sub edx,ecx
004024D7 |. 5E pop esi
004024D8 |> 8A08 /mov cl,byte ptr ds:[eax]
004024DA |. 880C02 |mov byte ptr ds:[edx+eax],cl
004024DD |. 40 |inc eax
004024DE |. 84C9 |test cl,cl
004024E0 |.^ 75 F6 \jnz short Dot1xCli.004024D8
004024E2 |. B8 01000000 mov eax,1
004024E7 |. 81C4 A8000000 add esp,0A8
004024ED \. C3 retn
--------------------------------------------------------------------------------


密码每2位为一组,如果>39就-57,否则-30.转换成数字,或字母。然后与卡号的MD5值异或,得到密码。安全起见,程序就不写了。
如此简单的加密,而且不加壳,可见联创公司对我们上网用户的态度!


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-09-27 15:14 

注册: 2007-03-07 14:56
帖子: 310
地址: 山东菏泽成武
送出感谢: 0 次
接收感谢: 0 次
什么意思阿

看不明白阿


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-09-27 15:53 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
楼主解决了问题,帖子上就不要带问号,别人还以为你问问题


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-09-27 19:01 
头像

注册: 2007-09-20 22:51
帖子: 77
送出感谢: 0 次
接收感谢: 0 次
我的问题是linux下如何用相似的协议或客户端来上网,本人解决了这个问题阿!


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-09-27 21:51 

注册: 2007-04-24 21:43
帖子: 165
送出感谢: 0 次
接收感谢: 0 次
安装附件里的那两个小东西。
安装成功后执行:
代码:
sudo /usr/local/bin/linkage4l


注意,是4L(小写字母L),不是数字1。

Enjoy!
这是中国矿业大学的一个高手做的,非常不错。要源代码吗?我也有。


附件:
文件注释: 客房端
link.zip [222.46 KiB]
被下载 2272 次
页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-09-27 22:50 
头像

注册: 2007-09-20 22:51
帖子: 77
送出感谢: 0 次
接收感谢: 0 次
强人阿!!希望将源代码上传,感激涕零!!!


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-09-29 11:52 

注册: 2007-04-24 21:43
帖子: 165
送出感谢: 0 次
接收感谢: 0 次
不用谢!
那个联创客房端(Windows下的)实在是太恶心了!!!


附件:
source.zip [183.72 KiB]
被下载 1199 次
页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-11-16 13:16 
头像

注册: 2006-12-02 18:34
帖子: 17
地址: 苏州
送出感谢: 0 次
接收感谢: 0 次
thank you .


页首
 用户资料  
 
9 楼 
 文章标题 : Re: [问题]中国电信联创通信宽带上网助手 在linux怎么上网?
帖子发表于 : 2008-11-06 16:01 

注册: 2008-11-06 15:54
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
请问楼主为什么我安装了那两程序但是运行了还是上不了网啊?已经显示联机成功但是还是不能真正连上网!请高手赐教啊!! :em06


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [问题]中国电信联创通信宽带上网助手 在linux怎么上网?
帖子发表于 : 2008-12-13 9:16 

注册: 2008-11-14 14:36
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
d顶 矿大的 不错


_________________
我不是神,神不是我所以我不能无所不能.......


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [问题]中国电信联创通信宽带上网助手 在linux怎么上网?
帖子发表于 : 2009-03-13 14:03 
头像

注册: 2008-01-11 14:25
帖子: 295
地址: 江苏工业学院
送出感谢: 0 次
接收感谢: 0 次
5522cy 写道:
请问楼主为什么我安装了那两程序但是运行了还是上不了网啊?已经显示联机成功但是还是不能真正连上网!请高手赐教啊!! :em06

这个在8.10下面是有问题的
你的联机成功在一会儿以后就会变灰色的
具体情况请看我的帖子
http://bbs.jpu.edu.cn/viewthread.php?tid=31232


_________________
闲的蛋疼就看看这个|换马甲了


页首
 用户资料  
 
12 楼 
 文章标题 : Re: [问题]中国电信联创通信宽带上网助手 在linux怎么上网?
帖子发表于 : 2010-04-17 13:36 

注册: 2010-04-17 13:23
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
我装的是9.10
想上网,怎么设置?


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [问题]中国电信联创通信宽带上网助手 在linux怎么上网?
帖子发表于 : 2010-10-17 11:59 
头像

注册: 2008-09-29 22:16
帖子: 168
送出感谢: 0 次
接收感谢: 0 次
看看这个版本你们可用不? http://forum.ubuntu.org.cn/viewtopic.php?f=95&t=298239


_________________
Keep it simple, stupid!
https://heiher.info


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Sogou [Spider] 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译