首页
社区
课程
招聘
[原创]突破封锁线:第三章--网络篇
发表于: 2006-5-3 20:30 15672

[原创]突破封锁线:第三章--网络篇

2006-5-3 20:30
15672

【文章标题】: 突破封锁线:第三章--网络篇
【文章作者】: Austin
【作者邮箱】: austiny.cn@gmail.com
【软件名称】: 神州数码网络客户登陆程序
【软件大小】: 不重要
【加壳方式】: UltraProtect 1.x
【保护方式】: 加壳 网络封禁
【编写语言】: VC6.0
【使用工具】: T-Sniffer OllyDbg
【操作平台】: Windows2003
【软件介绍】: 神州数码小区宽带网络登陆客户端,诸多限制
【作者声明】: 技术交流中。。。
--------------------------------------------------------------------------------
【详细过程】
  一、(广告)前情回顾
  
  上一回讲到,从韩国回来,我们已经给DIGI做了一个彻底的整容。这次我们来看看它里面有些什么。。
  
  二、(废话)里面当然是代码啦
  
  说得很对,不过,这一章我们先不看代码。前面说过,DIGI是一个网络应用程序。我们来看看它的执行流程:
  
  启动程序 --> 填写用户名、密码 --> 点击连接 --> 等待验证 --> 通过验证 --> 网络开通 --> 。。。 --> 下线
  
  这过程当中DIGI要和服务器通讯很多次。我们的任务,就是找出它们到底说了些什么。
  (007双手交叉持枪造型中,小花猫友情客串邦女郎背影。。。)
  
  三、(窃听)其实就是抓包啦
  
  根据TCP/IP协议,数据在网络中会以包为单位发送和接收。(只见一个个包在天空飞来飞去,猪说,好大的棉花糖)
  我们使用抓包工具(嗅探器)来查看包的内容。
  
  不多说,打开T-Sniffer(一个很小很小的嗅探器,到底有多小呢? --只比倭国稍微大一点点)
  当然用专业工具Sniffer Pro,Ethereal也是可以的,不过杀鸡焉用牛刀,这把就是劫机幢大楼专用水果刀啦。
  
  先设置嗅探选项:
  协议:     TCP UDP ICMP        //所有协议都选上先
  数据大小: 65535
  显示风格: ASCII码
  源端口:   0-65535             //所有端口都选上
  目的端口: 0-65535             //同上
  目标地址: 172.16.241.100      //这是服务器的地址
  源地址:   0.0.0.0             //任意
  嗅探接口: 192.168.0.177       //这是本机网络地址
  
  然后开始抓包:
  
   启动程序
   填写用户名、密码
  
   点击连接(抓到第一个包,包A)
  
  源地址:192.168.0.177  端口:1741        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:98
  协议:UDP
  0x80 0x15 0x3C 0xE4 0x42 0x3B 0xBC 0x52 0xB9 0xCA 0x8C 0x6D 0x56 0x7B 0x0D 0x9A         ..<.B;.R...mV{..
  0x1B 0xA4 0x80 0xA0 0x48 0x48 0xC9 0x48 0x59 0xD8 0xC8 0x01 0x21 0x68 0x58 0x58         ....HH.HY...!hXX
  0x68 0x49 0xC8 0xD8 0xE8 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0xA0 0xB1 0xC8         hI.... ..'..P...
  0xD9 0x49 0x39 0xC8 0x59 0x39 0x58 0xC9 0x39 0xC8 0xD8 0x68 0x21 0x21 0xAC 0x3D         .I9.Y9X.9..h!!.=
  
   此时网络已经开通
  
   一分钟后(又抓到一个,包B)
  
  源地址:192.168.0.177  端口:1741        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:87
  协议:UDP
  0x81 0xE9 0xAF 0x91 0x83 0x9B 0x69 0xFB 0x48 0x7C 0xC9 0x0C 0xCD 0x0E 0x38 0x6E         ......i.H|....8n
  0x57 0xAF 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0x20 0x41 0x49 0xC9 0xD9 0x68         W.. ..'..P AI..h
  0xD8 0x49 0x68 0xD9 0x58 0xE8 0xC9 0x48 0x58 0xC8 0x58 0xC9 0xA0 0xB1 0xC8 0xE8         .Ih.X..HX.X.....
  
   三十秒后(还是包B)
  
  源地址:192.168.0.177  端口:1741        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:87
  协议:UDP
  0x81 0xE9 0xAF 0x91 0x83 0x9B 0x69 0xFB 0x48 0x7C 0xC9 0x0C 0xCD 0x0E 0x38 0x6E         ......i.H|....8n
  0x57 0xAF 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0x20 0x41 0x49 0xC9 0xD9 0x68         W.. ..'..P AI..h
  0xD8 0x49 0x68 0xD9 0x58 0xE8 0xC9 0x48 0x58 0xC8 0x58 0xC9 0xA0 0xB1 0xC8 0xE8         .Ih.X..HX.X.....
  
   此后每隔三十秒,都会发出同样的数据包。
  
   若干次后,选择断开网络(发出四个包,包C)
  
  源地址:192.168.0.177  端口:3848        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:87
  协议:UDP
  0x90 0xE9 0xF3 0xBE 0x68 0xDC 0xAC 0xC2 0xC9 0x67 0x68 0x2B 0x62 0xD1 0x4E 0x54         ....h....gh+b.NT
  0x0E 0x3D 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0x20 0x41 0x49 0xC9 0xD9 0x68         .=. ..'..P AI..h
  0xD8 0x49 0x68 0xD9 0x58 0xE8 0xC9 0x48 0x58 0xC8 0x58 0xC9 0xA0 0xB1 0xC8 0xE8         .Ih.X..HX.X.....
  
  源地址:192.168.0.177  端口:3848        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:87
  协议:UDP
  0x90 0xE9 0xF3 0xBE 0x68 0xDC 0xAC 0xC2 0xC9 0x67 0x68 0x2B 0x62 0xD1 0x4E 0x54         ....h....gh+b.NT
  0x0E 0x3D 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0x20 0x41 0x49 0xC9 0xD9 0x68         .=. ..'..P AI..h
  0xD8 0x49 0x68 0xD9 0x58 0xE8 0xC9 0x48 0x58 0xC8 0x58 0xC9 0xA0 0xB1 0xC8 0xE8         .Ih.X..HX.X.....
  
  源地址:192.168.0.177  端口:3848        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:87
  协议:UDP
  0x90 0xE9 0xF3 0xBE 0x68 0xDC 0xAC 0xC2 0xC9 0x67 0x68 0x2B 0x62 0xD1 0x4E 0x54         ....h....gh+b.NT
  0x0E 0x3D 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0x20 0x41 0x49 0xC9 0xD9 0x68         .=. ..'..P AI..h
  0xD8 0x49 0x68 0xD9 0x58 0xE8 0xC9 0x48 0x58 0xC8 0x58 0xC9 0xA0 0xB1 0xC8 0xE8         .Ih.X..HX.X.....
  
  源地址:192.168.0.177  端口:3848        目标地址:172.16.241.100  端口:3848        TTL:128        PacketSize:87
  协议:UDP
  0x90 0xE9 0xF3 0xBE 0x68 0xDC 0xAC 0xC2 0xC9 0x67 0x68 0x2B 0x62 0xD1 0x4E 0x54         ....h....gh+b.NT
  0x0E 0x3D 0x91 0x20 0x00 0x04 0x27 0xFB 0xC6 0x50 0x20 0x41 0x49 0xC9 0xD9 0x68         .=. ..'..P AI..h
  0xD8 0x49 0x68 0xD9 0x58 0xE8 0xC9 0x48 0x58 0xC8 0x58 0xC9 0xA0 0xB1 0xC8 0xE8         .Ih.X..HX.X.....
  
   此时网络断开。
  
  四、(分析)不是人类语言,鉴定完毕
  
  当然不是,以上的数据包中包含地址端口用户名密码等加密后的信息。(能直接看懂的人都去演Matrix了)
  
  好在我们不需要确切的知道每个包的具体内容。下面分析一下:
  
  连接的时候,DIGI发出包A,用于提交用户名密码等信息交给服务器验证,内容当然就是那些东东啦。
  
  此后每隔一定的时间,DIGI会发出包B,内容不变,用于通知服务器保持网络连接。
  事实证明,如果三分钟后收不到包B,服务器将切断网络连接。(此招在警匪片中绑匪常用)
  
  最后断开连接时,DIGI发出4个包C,用于通知服务器断开连接。
  
  五、(限制)。。,。。,嗯,确实没有"级"字
  
  回忆一下DIGI对网络使用的限制:
  
      1. 帐号与机器绑定(换机器不能登陆)
      2. 限制共享网络连接(发现代理,强制下线)
      3. 限制BT下载(强制下线)
      4. 无法从路由后连接(拒绝登陆)
  
  其中1和4的限制由包A来完成:
  不是合适的机器(错误的用户名密码和MAC地址)或者非授权用户(也就是未缴费用户)将无法通过验证,
  而路由器后的机器(错误的网络地址)也将无法通过验证。
  
  2和3的限制由包B来完成:
  运行过程中,DIGI会检测共享和BT下载,一旦发现,将不再发出包B,并发出包C强制下线。
  
  至此,DIGI的工作流程已经昭然若揭。
  
      1#. 收集信息(用户名密码mac地址网络地址等)打包
      2#. 将包发至服务器
      3#. 检测代理和BT等
      4#. 向服务器发送保持连接包
      5#. 下线
  
  六、(成果)We are the world, we are the children.
  
  好了,我们的目标是? -- (小朋友可爱状)没~有~蛀~牙~!!
  
  有道理,不过别忘了要突破封锁线才行哦。
  
  对DIGI实施九年制应试教育,把它变成:
  
      1#. 收集信息(用户名密码mac地址网络地址等)打包 --> 伪造数据包
      2#. 将包发至服务器                              --> 将伪造包发至服务器
      3#. 检测代理和BT等                              --> 禁止检测
      4#. 向服务器发送保持连接包                      --> 这个当然
      5#. 下线                                        --> 这个不变
  
  经过这样一番改造,DIGI将对我们死心塌地,忠心耿耿,至死不渝。。。(口水流一地)
  
  (插一句,这也是大多数网游外挂的工作原理)
  
  (继续流)
  
--------------------------------------------------------------------------------
【经验总结】
  至此,我们对DIGI进行了一次类似“黑箱”分析的体检,搞清楚了它的工作流程,并提出了改造方案。
  
  网络分析中的关键点有:
   1. 网络的开放性给我们提供了从外部观察程序的窗口   ................... 嗅探器
   2. 网络是网络程序的优势也是劣势    .................................. 普遍适用
  
  当然更多的网络分析会对包的内容进行解密和更细致的分析,此例简单,不再贽述。
  
  突破封锁线:第三章--网络篇 [完]
  
  谢谢您耐心的看到这里,在下一章--代码篇中,将详细讲述改造应用程序和加入自己dll到程序中。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年05月03日 20:22:25


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (40)
雪    币: 333
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wan
2
原来沙发就是这样坐的

收藏下来学习
2006-5-3 20:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2006-5-3 21:00
0
雪    币: 465
活跃值: (667)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
好,等你的下回分解。顶
2006-5-3 21:38
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
写得好,期待第4篇!~~~
2006-5-3 22:07
0
雪    币: 106
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
inr
6
我大大的顶,太好了。
2006-5-3 23:09
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
收藏下来学习
支持。。。。。。
2006-5-4 01:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
收藏下来学习,期待下文~~~~~~~~~
2006-5-4 01:24
0
雪    币: 256
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
就冲网络,我就该顶!!!
网络加密,历史的趋势!!!
2006-5-4 07:42
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
写得好,支持
2006-5-4 07:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
很有意思...写教程的时候能应用到写小说那样引人入胜...让人越看越想看...
大力的顶...
等待你的新文章...
2006-5-4 09:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
而且还很幽默...
2006-5-4 09:16
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
13
相当精彩,顶!
2006-5-4 09:45
0
雪    币: 236
活跃值: (35)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
希望代码篇 早日出现在这里!
2006-5-4 11:07
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
不知啥时候,已经有蛀牙了,等楼主开发的汇人牌牙膏出来,就好好补补这些洞洞,把那些虫子都摁死
2006-5-4 12:57
0
雪    币: 50
活跃值: (145)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
16
就想评书,有意思
2006-5-4 13:36
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
有意思
2006-5-4 14:50
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hxx
18
xue读的不枯燥,写的太好了
2006-5-4 17:26
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
19
一口气读完了三篇...如果此好文,值得期待...
2006-5-4 17:59
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
20
六、(成果)We are the world, we are the children.
  
  好了,我们的目标是? -- (小朋友可爱状)没~有~蛀~牙~!!
  

好文彩:)

在下一章--代码篇中,将详细讲述改造应用程序和加入自己dll到程序中。

期待!!
2006-5-4 18:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
usa
21
好文,学习!
2006-5-4 22:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
虽然看不怎么懂 不过顶死
2006-5-4 22:50
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
期待下一篇。
2006-5-4 23:57
0
雪    币: 215
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
哈哈,有意思,记得当时读书的时候学校的网络也是用一个叫实达的拨号器,当时没有楼主那样禁得这么严,只是禁用代理和双网卡,之后我把限制解了,我们全班有一个学期只用一个账号上网,那时真的很爽。
2006-5-5 02:04
0
雪    币: 136
活跃值: (429)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
25
精彩,期待中。。。。。
2006-5-5 08:55
0
游客
登录 | 注册 方可回帖
返回
//