神州数码的简单调试
本帖最后由 Adai 于 2012-10-30 11:19 编辑【文章标题】: 神州数码的简单调试
【文章作者】: 阿呆
【软件名称】: 神州数码客户端 3.5版本
【软件大小】: 5M
【下载地址】: 自备
【加壳方式】: 未知
【使用工具】: OD,PEID
【操作平台】: win7
【软件介绍】: 一般用于校园网和小区联网客户端
【作者声明】: 并非感兴趣,只因被限制。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
3.5.11.XXX 版本是我校目前最新的版本,可以说较完美,我之所以学习破解,也是因为这款软件给我带来的束缚实在太多,比如说晚上11点断网,限制使用代理软件(如:ccproxy)等等。
那么这次我和大家交流如何解除使用代理软件的限制,如果你们学校的服务器没有完善,你还有可能尝试不断网。
我写这篇文章,意味着我要放弃我的破解之路,因为这条路对我来说,太长,太坎坷,我不是信息系的学生,对汇编也没有基础,琢磨一个星期都无法解决的问题,只需大侠一句话就能解决,但是,没有人是有义务来帮我的,大家都有自己的事情要做,所以我无法坚持下去,只好选择放弃了。
好了,进入主题,用PEID查壳,显示“Microsoft Visual C++ 8.0 *”,改核心扫描“ASPack 2.x (without poly) -> Alexey Solodovnikov”。无需脱壳,可直接调试。
先解除禁用代理软件:
在浏览器进入ccproxy的官网,或者有这个字样的网站,客户端过一会就会断开连接(每个单位不同,有的可能没有此限制)。我们开始第一步吧。
OD加载神州数码客户端,F9启动并登录,下断点:“bp EnumWindows”(这很重要)。
下断后,由于软件会每隔一段时间进行检测,一会就来到:
76BFD1CF >8BFF mov edi,edi ; user32.PostMessageA
76BFD1D1 55 push ebp
76BFD1D2 8BEC mov ebp,esp
76BFD1D4 33C0 xor eax,eax ; DigitalC.0041AD80
76BFD1D6 50 push eax ; DigitalC.0041AD80
76BFD1D7 50 push eax ; DigitalC.0041AD80
76BFD1D8 FF75 0C push dword ptr ss:
76BFD1DB FF75 08 push dword ptr ss:
76BFD1DE 50 push eax ; DigitalC.0041AD80
76BFD1DF 50 push eax ; DigitalC.0041AD80
76BFD1E0 E8 31C2FFFF call user32.76BF9416
76BFD1E5 5D pop ebp ; DigitalC.0041AD8D
76BFD1E6 C2 0800 retn 0x8
一直F8单步走,走到76BFD1E0处就会卡住,此时别慌,按“暂停”就会跳到76BF72B9
76BF72B9 83C4 04 add esp,0x4
76BF72BC C2 1C00 retn 0x1C
来到76BF72B9后按 F9 来到76BFD1E5
76BFD1E5 5D pop ebp ; 02C58728
76BFD1E6 C2 0800 retn 0x8
继续F8单步,回到程序领口了!
0041AD8D|.F7D8 neg eax
0041AD8F|.1BC0 sbb eax,eax
0041AD91|.25 C8000000 and eax,0xC8
0041AD96|.05 38FFFFFF add eax,-0xC8
0041AD9B\.C3 retn
继续F8单步到返回,来到00418DDC。这里就是重要的地方!
00418DC9|. /74 1F je short DigitalC.00418DEA
00418DCB|. |EB 03 jmp short DigitalC.00418DD0
00418DCD||8D49 00 lea ecx,dword ptr ds:
00418DD0|> |8B06 /mov eax,dword ptr ds: ;DigitalC.0041AD80
00418DD2|. |85C0 |test eax,eax
00418DD4|. |74 0D |je short DigitalC.00418DE3
00418DD6|. |8B4E 08 |mov ecx,dword ptr ds:
00418DD9|. |51 |push ecx ;user32.76C60718
00418DDA |FFD0 |call eax
00418DDC|. |83C4 04 |add esp,0x4
00418DDF|. |85C0 |test eax,eax
00418DE1 |75 09 jnz short DigitalC.00418DEC
00418DE3|> |8B76 04 |mov esi,dword ptr ds:
00418DE6|. |85F6 |test esi,esi
00418DE8|.^|75 E6 \jnz short DigitalC.00418DD0
00418DEA|> \33C0 xor eax,eax
00418DEC|>5E pop esi
00418DED\.C3 retn
往上拉一下,00418DDA是关键!但我们不能nop掉这个call,我试过了,程序会死掉。正确的办法应该是把00418DE1 的jnz 改为 jmp。好了,到此为止客户端自动检测代理就被去掉了。
第二步,如果你们学校的服务器没有更新,可以尝试此办法不断网,不保证每个学校有效,很可惜我们服务器升级了,后来的破解工作并不顺利,加上我已无破解的动力了,所以没有最新的破解办法。
OD载入客户端,反汇编窗口右键 “中文搜索引擎”--“搜索ASCII”
找到这么一行:004098EDpush DigitalC.0045F9A4用户名不能使用除"_@.(+){=}-"以外的特殊字符
回车健跟踪,来到:004098ED
004098E6|.85C0 test eax,eax ;kernel32.BaseThreadInitThunk
004098E8 75 12 jnz short DigitalC.004098FC
004098EA|.53 push ebx
004098EB|.6A 40 push 0x40
004098ED|.68 A4F94500 push DigitalC.0045F9A4 ;用户名不能使用除"_@.(+){=}-"以外的特殊字符
004098F2 E8 13690200 call DigitalC.0043020A
004098F7|.E9 E3030000 jmp DigitalC.00409CDF
004098FC|>8D4C24 14 lea ecx,dword ptr ss:
来到004098ED后,往上拉一下,把004098E8的 jnz 改为jmp,这样就能够输入特殊字符了。运行时在账号之间加入“\”,(比如帐号是123456,那么输入帐号12345\6)就可以不被断网了,不过断网后就无法重新连接了。
看完上面两步,或许对你有所帮助,学校网管也可以根据此来尽快修复漏洞。此次调试仅为学习,并无恶意,如果侵犯到了公司及学校利益,请及时指出,方便我做出修改,并在此道歉。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于阿呆,给予我指点 的有很多,由于此文的特殊性,原谅我不便在此举出,转载请注明作者并保持文章的完整, 谢谢!
学习了 感谢楼主无私奉献 菜鸟学习一下了,感谢 我想知道那个断点是什么意思 想当年上学时候到处找学校网络的工具去一台机器绑定的限制,那时候还不会逆向,比你我你还多了,看了下检测那你应该是跳过了第一个检测就不循环了,可以直接在00418DDC断首直接返回,应该就一个都不会检测了,期待你更深入的研究,给同学们带来精彩!我相信他们毕业后都会记得你这位大牛的!{:1_921:} Hmily 发表于 2012-11-18 00:55 static/image/common/back.gif
想当年上学时候到处找学校网络的工具去一台机器绑定的限制,那时候还不会逆向,比你我你还多了,看了下检测 ...
老大,如果能获得你的指点,我愿意重新尝试,不介意的话,私信告知我联系方式吧 我已经调试到这里了但是怎么过DHCP限制 求赐教 我要共享wifi{:1_936:}{:1_936:}{:1_936:}
00407621 .E8 BAC50300 call 00443BE0
00407626 .83C4 0C add esp,0xC
00407629 .53 push ebx ; /Arg1
0040762A .8D4C24 18 lea ecx,dword ptr ss: ; |
0040762E .881D 2C8F4700 mov byte ptr ds:,bl ; |
00407634 .E8 57C30000 call 00413990 ; \DigitalC.00413990
00407639 .C78424 D80300>mov dword ptr ss:,0x1
00407644 .^ E9 E6FEFFFF jmp 0040752F
00407649 >53 push ebx ; /Arg3
0040764A .53 push ebx ; |Arg2
0040764B .68 60904800 push 00489060 ; |收到了强制下线报文,您被强制下线!
00407650 .E8 1B860200 call 0042FC70 ; \DigitalC.0042FC70
00407655 .E9 3E020000 jmp 00407898
0040765A .53 push ebx ; /Arg3
0040765B .53 push ebx ; |Arg2
0040765C .68 209F4800 push 00489F20 ; |您与交换机之间的保活失败,请重新连接!
00407661 .E8 0A860200 call 0042FC70 ; \DigitalC.0042FC70
00407666 .E9 2D020000 jmp 00407898
0040766B .53 push ebx ; /Arg3
0040766C .53 push ebx ; |Arg2
0040766D .68 40A14800 push 0048A140 ; |您的网卡已禁用,请启用后重新连接!
00407672 .E8 F9850200 call 0042FC70 ; \DigitalC.0042FC70
00407677 .E9 1C020000 jmp 00407898
0040767C .53 push ebx ; /Arg3
0040767D .53 push ebx ; |Arg2
0040767E .68 E0934800 push 004893E0 ; |网卡断开连接,请检查网卡连接状态!
00407683 .E8 E8850200 call 0042FC70 ; \DigitalC.0042FC70
00407688 .E9 0B020000 jmp 00407898
0040768D .68 A0A04800 push 0048A0A0 ;发现BT软件运行,您被强制下线!
00407692 .8BCE mov ecx,esi
00407694 .E8 37F1FFFF call 004067D0
00407699 .E9 FA010000 jmp 00407898
0040769E .53 push ebx ; /Arg3
0040769F .53 push ebx ; |Arg2
004076A0 .68 C0B24800 push 0048B2C0 ; |发现使用代理,您被强制下线!
004076A5 .E8 C6850200 call 0042FC70 ; \DigitalC.0042FC70
004076AA .E9 E9010000 jmp 00407898
004076AF .803D 448F4700>cmp byte ptr ds:,0x2
004076B6 .75 21 jnz short 004076D9
004076B8 .8B0D 288F4700 mov ecx,dword ptr ds:
004076BE .51 push ecx
004076BF .E8 BC800100 call 0041F780
004076C4 .50 push eax
004076C5 .68 40A74800 push 0048A740 ;发现网卡MAC地址盗用,盗用者ip [%s] ,您被强制下线!
004076CA .68 C8000000 push 0xC8
004076CF .8D9424 140100>lea edx,dword ptr ss:
004076D6 .52 push edx
004076D7 .EB 1E jmp short 004076F7
004076D9 >A1 288F4700 mov eax,dword ptr ds:
004076DE .50 push eax
004076DF .E8 9C800100 call 0041F780
004076E4 .50 push eax
004076E5 .68 009C4800 push 00489C00 ;发现网卡MAC地址盗用,盗用者ip [%s].
004076EA .68 C8000000 push 0xC8
004076EF .8D8C24 140100>lea ecx,dword ptr ss:
004076F6 .51 push ecx
004076F7 >E8 94820000 call 0040F990
004076FC .83C4 14 add esp,0x14
004076FF .53 push ebx ; /Arg3
00407700 .53 push ebx ; |Arg2
00407701 .8D9424 0C0100>lea edx,dword ptr ss: ; |
00407708 .52 push edx ; |Arg1
00407709 .E8 62850200 call 0042FC70 ; \DigitalC.0042FC70
0040770E .E9 85010000 jmp 00407898
00407713 .53 push ebx ; /Arg3
00407714 .53 push ebx ; |Arg2
00407715 .68 A0A24800 push 0048A2A0 ; |发现启用DHCP,您被强制下线!
0040771A .E8 51850200 call 0042FC70 ; \DigitalC.0042FC70
0040771F .E9 74010000 jmp 00407898
00407724 .53 push ebx ; /Arg3
00407725 .53 push ebx ; |Arg2
00407726 .68 40914800 push 00489140 ; |您的外网被服务器强制下线,可能原因:流量、时长用尽或者被Radius强制下线!
0040772B .E8 40850200 call 0042FC70 ; \DigitalC.0042FC70
00407730 .E9 63010000 jmp 00407898
00407735 .B8 288B4700 mov eax,00478B28
0040773A .8D50 01 lea edx,dword ptr ds:
0040773D .8D49 00 lea ecx,dword ptr ds:
00407740 >8A08 mov cl,byte ptr ds:
00407742 .83C0 01 add eax,0x1
00407745 .3ACB cmp cl,bl
00407747 .^ 75 F7 jnz short 00407740
来看看学习下, 学习之路很坎坷.......
页:
[1]