Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1049113
  • 博文数量: 50
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2037
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 08:03
文章分类
文章存档

2011年(1)

2010年(3)

2009年(17)

2008年(29)

我的朋友

分类: WINDOWS

2008-09-22 19:05:53

实例对象:Internet TV

工具:wpe0.9、个人WEB服务器v1.5

 

一个网络电视软件,想要VIP功能需要合法的账号。尝试解决。

一、  测试软件

运行软件,任意输入账号,如图:

二、  拦截数据

打开wpe0.9,选择对应进程,开始监视,如图,按下原程序中的登陆按钮,提示账号非法。

 

得到如下数据:

1  192.168.1.2:1364  195.47.247.125:80  182  Send 

0000  47 45 54 20 2F 73 63 72 69 70 74 73 2F 74 76 2F    GET /scripts/tv/

0010  6C 6F 67 69 6E 2E 70 68 70 3F 75 73 65 72 6E 61    login.php?userna

0020  6D 65 3D 6C 61 6F 6D 6D 73 2B 26 70 61 73 73 77    me=laomms+&passw

0030  6F 72 64 3D 31 30 61 31 31 36 33 65 32 39 39 64    ord=10a1163e299d

0040  39 38 36 37 32 34 62 66 30 66 35 65 31 35 61 36    986724bf0f5e15a6

0050  36 64 32 65 20 48 54 54 50 2F 31 2E 31 0D 0A 55    6d2e HTTP/1.1..U

0060  73 65 72 2D 41 67 65 6E 74 3A 20 49 4E 54 45 52    ser-Agent: INTER

0070  4E 45 54 54 56 0D 0A 48 6F 73 74 3A 20 77 77 77    NETTV..Host: www

0080  2E 6F 6E 6C 69 6E 65 2D 6D 65 64 69 61 2D 61 72    .online-media-ar

0090  63 68 69 76 65 2E 6E 65 74 0D 0A 43 61 63 68 65    chive.net..Cache

00A0  2D 43 6F 6E 74 72 6F 6C 3A 20 6E 6F 2D 63 61 63    -Control: no-cac

00B0  68 65 0D 0A 0D 0A                                  he....

 

2  195.47.247.125:80  192.168.1.2:1364  181  Recv 

0000  48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D    HTTP/1.1 200 OK.

0010  0A 44 61 74 65 3A 20 46 72 69 2C 20 31 38 20 4A    .Date: Fri, 18 J

0020  75 6C 20 32 30 30 38 20 30 36 3A 34 38 3A 33 34    ul 2008 06:48:34

0030  20 47 4D 54 0D 0A 53 65 72 76 65 72 3A 20 41 70     GMT..Server: Ap

0040  61 63 68 65 0D 0A 58 2D 50 6F 77 65 72 65 64 2D    ache..X-Powered-

0050  42 79 3A 20 50 48 50 2F 35 2E 32 2E 36 0D 0A 43    By: PHP/5.2.6..C

0060  6F 6E 6E 65 63 74 69 6F 6E 3A 20 63 6C 6F 73 65    onnection: close

0070  0D 0A 54 72 61 6E 73 66 65 72 2D 45 6E 63 6F 64    ..Transfer-Encod

0080  69 6E 67 3A 20 63 68 75 6E 6B 65 64 0D 0A 43 6F    ing: chunked..Co

0090  6E 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74    ntent-Type: text

00A0  2F 68 74 6D 6C 0D 0A 0D 0A 35 20 20 0D 0A 46 41    /html....5  ..FA

00B0  4C 53 45 0D 0A                                     LSE..

 

3  195.47.247.125:80  192.168.1.2:1364  5  Recv 

0000  30 0D 0A 0D 0A                                     0....

 

从这些资料我们可以整理出软件的验证地址及返回结果等资料:

验证地址是,发送的数据是输入的用户名和密码的MD5数据:

我们如果连起来在浏览器中输入这个地址返回的是FALSE.

很容易猜,正确的数据可能是返回TRUE

我们把显示FALSE的那个网页保存为index.html,然后在UltraEdit中编辑为TRUE后保存。

 

三、  修改hosts

打开C:\WINDOWS\system32\drivers\etc\hosts,增加验证的服务器地址:

127.0.0.1       localhost

127.0.0.1      

 

四、  做本地验证

打开个人服务器WebMan, 设置好站点目录,比如D:\WebServer,那么D:\WebServer就成为WEB服务器目录,把修改后的index.html放入到这个目录,开启WEB服务。如图,这时再次来测试软件,输入任意账号后返回都是TRUE,因为验证的时候已经转到本地服务器,显示登陆成功。

 

当然,这只是个例子,因为正在这样做后,在同一个服务器地址中软件还有其他的验证,比如更新频道等,如果开着本地服务器,到时候都会转到本地服务器中,根本不可能得到更新信息。

 

我想,如果通过HOOK WSAConnectWSASendWSARecvconnectsendrecv等函数,过滤拦截到的数据,如果是注册码验证的就返回正确值,如果是更新软件信息的就不做处理。这样应该可以做到万无一失了。

阅读(10741) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~