首页
社区
课程
招聘
[原创]看 PPS 的 VIP Film
发表于: 2011-9-30 22:18 39442

[原创]看 PPS 的 VIP Film

2011-9-30 22:18
39442
纠结于写还是不写,发还是不发。。。
唉。。。
昨天想看“盗梦空间”,习惯用PPS,PPS是基于P2P的一款网络电视,可以看电影看电视。
但是谁知“盗梦空间”此等片子居然需要 VIP 用户,不禁内心大呼shit。。。
练调试也有两年了,今天想弄弄它。看它的VIP FILM
只用OD,只会用OD,于是就得载入下断。。
在哪里下断? 这是关键。
观察到:如果不是VIP用户看VIP的片子,点击播放按钮后会弹出以对话框:

于是知道必须拿它下手。。。各种对话框API下断。。。
最后在 CreateDialogIndirectParamW 断下
回溯之~~~~ 这里是个艰苦的过程慢慢找那样一个关键的跳转,可以绕过调用此对话框的CALL。
找起来蛮慢,代码又多,于是在好几层CALL的上方设置了一个断点,此时应该是比较高的层,VIP判断应该就在内部,找一个非VIP的片子,点播放,在刚才设的断点断下,单步,记录下每个关键跳转 是否 跳。再找一个VIP片子同样断下,单步,顺着刚才非VIP片子的路线走,当你发现哪个跳转不一致了。。哈哈哈 恭喜!!! 十有八九就是关键跳转!!!如果全一致,那就要试试将这个上层断点再设置到比较上层的子程序中。
这样很容易找到了这段代码, 这段代码位于 PowerList.ocx 中 :
;PowerList.ocx
200B378B    E8 351D0300     call PowerLis.200E54C5
200B3790    8BF8            mov edi,eax
200B3792    33DB            xor ebx,ebx
200B3794    3BFB            cmp edi,ebx
200B3796  ^ 74 E7           je short PowerLis.200B377F
200B3798    837F 40 01      cmp dword ptr ds:[edi+40],1
200B379C    895D F0         mov dword ptr ss:[ebp-10],ebx
;哦吼~~ 下面这个就是关键跳转
200B379F    0F82 42020000   jb PowerLis.200B39E7
200B37A5    8B47 50         mov eax,dword ptr ds:[edi+50]


当不是VIP片子时,此处跳转跳走,是VIP片子时发现没有跳。
尝试着将此处 jb 改为 jmp 然后播放某VIP片子,结果是对话框没弹出,但是还是有如下字迹,看来还没成功:

再回头看这个 cmp,可见此时  [edi+40] 之中之内容为十分关键之信息!!!
嗯,当是VIP片子时,此内存单元为 1,非VIP片子时为0 .
于是更改为 0 ,播放 盗梦空间, ~~~~~~~~~~~~~~~~~~~
God, 成功了。。。。。。。。看看幸福来临了。。
(PS:说的容易,其实我是调了好久好久才找到的
再想一下:嗯,PPS应该是维护了一个FILM结构,这个结构 0x40 偏移处存储是否此film需要 VIP 权限才可播放的信息。
我们要做的就是让VIP片的这个Member永远为Zero
那么接下来是就是补丁了。
怎么补?
写一个很简单。。写好也不容易
可以从 cmp dword ptr ds:[edi+40],1 这里开始patch:
xor eax,eax
mov dword ptr [edi+0x40], eax
mov dword ptr [ebp-0x10],ebx
mov eax, 0x200B39E7
jmp eax

嗯。。起初我补进去的就是这些代码,jb永远让它跳。
可是这里用了 硬编码  0x200B39E7 ,一旦更新,就是说 PowerList.ocx 变化,那么补丁难以成功。因为直接寻址的地址变了,不知跳到哪里了.
于是又思考,果然有发现:  (ASM之美尽现)
cmp dword ptr ds:[edi+40],1 这一条指令一共4字节:
那么可以这样patch:
mov dword ptr [edi+0x40], ebx
stc

第一条指令:利用 上文 ebx为0 ,上面 xor ebx,ebx 用来测试返回的值是否为0.
这个ebx恰好可以用作我们清零VIPMem,这条指令3个字节。
还有一条是 : stc , 一个字节。 它是将 标志位 Carry 位 置位,这样这两句指令恰好覆盖掉 cmp dword ptr ds:[edi+40],1  这一条指令。
stc的置位是为了使下面的 jb XXXXX 能够永远跳转!!! 哈哈哈~~~ 真是太完美
恰好4字节,完成所有任务。
如果不这样做,恐怕patch代码要有重定位功能以适应jb的那个跳转。。。这个天然的4字节让我不禁感叹汇编之美。。尤其是 stc 这条指令。(头一次用,但以后不会忘了)
嗯。。。至此 你可以去看VIP片了。

附件说明:
附件是2.5KB的补丁程序,原理如上文所述,补丁的是PowerList.ocx文件.
注意:补丁需要放在 PPS 安装目录内执行才可以。

补充:360高风险我的附件。。无视之
Author: Vsbat

注意:本补丁对于2.7.0.1326 版本以后的程序是不行的。因为相应代码编译优化后程序有出入。
      但是 那个cmp dword ptr ds:[edi+0x40], XXXXXX 的关键比较还在~~~ 晚来的童鞋自己动手丰衣足食吧~~~;)
      2011/11/11 :


/////////////////////  The Newest  2012/3/13

将最新的附件"看VIP 跳过广告.rar "中两个库文件覆盖原来文件即可,不用补丁,就是覆盖,
更新也无所谓,就是覆盖,oh yeah!

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

上传的附件:
收藏
免费 6
支持
分享
最新回复 (72)
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
2
2011-9-30 23:54
0
雪    币: 62
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
强力膜拜
2011-10-1 00:49
0
雪    币: 27
活跃值: (90)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
有点乱乱的。。
2011-10-1 01:31
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
5
有乱嘛、。。。
2011-10-1 10:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
强力膜拜
2011-10-1 10:19
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
国庆节快乐!!!
新手努力学习中……
patch拿走了
谢谢!!!
2011-10-1 10:59
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
~好厉害,
2011-10-1 12:03
0
雪    币: 1574
活跃值: (1379)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哈哈。厉害。VIP也给你破开了。。
2011-10-1 12:11
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
佩服楼主。按照楼主的方法改了原来的PowerList.ocx内容,测试可行
2011-10-1 14:07
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
不错,支持
2011-10-1 14:24
0
雪    币: 7036
活跃值: (4189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
国庆小礼?免费推介?
2011-10-1 15:28
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
13
国庆小礼+免费推介
2011-10-1 16:06
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
14
饿 VIP片....咋看
2011-10-1 19:38
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
15
就是 有些片是有VIP标志的。。。你在搜索栏输入 VIP ,回车。。出来的都是。。。
2011-10-1 19:45
0
雪    币: 47
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我下载了  和你说一声音
2011-10-1 23:15
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
17
~~~
2011-10-5 23:46
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
偶会找个地址 [edi+40]set 1 然后无视之 膜拜~~ lz补丁怎么写的呢、。 如何防止更新?
2011-10-6 00:03
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
19
[QUOTE=xiaocaijk;1006491]偶会找个地址 [edi+40]set 1 然后无视之 膜拜~~ lz补丁怎么写的呢、。 如何防止更新?[/QUOTE]

更新的话要是那段核心代码不改的话就可以补,扫描文件代码段的一个区域,找到那段特征代码就可以补了。。。
2011-10-6 00:17
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
文章看了
补丁下了
帖子顶了
楼主谢了
没啥说了

ps:我放到PPS安装目录下,依然提示需要放在安装目录下,不知道是怎么判断的。  我还是手动改改吧。。
2011-10-6 00:25
0
雪    币: 20
活跃值: (89)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
21
努力学习中~~~~~
2011-10-6 14:55
0
雪    币: 244
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
22
人才啊,拜膜!
2011-10-6 16:37
0
雪    币: 144
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
这么好的东西当然要发了

问下你的程序是什么编译的,很简洁!?
2011-10-6 17:07
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
下下来学学 支持
2011-10-6 17:24
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
厉害啊,要是VIP搞成网络验证的话,估计就搞不了了
2011-10-6 19:04
0
游客
登录 | 注册 方可回帖
返回
//