-
破解电视机顶盒的方法,收看免费数字电视。
[
原创
2009-02-06 10:36:51]
字号:大
中
小
破解电视机顶盒的方法,收看免费数字电视。
游走在灰色地带,大打擦边球的数字电视机顶盒共享器
随着有线电视数字化发展进程的加快,
数字电视这一新兴的电视观看及
传输方式已经开始被
更多的普通市民
所熟悉,数字电视以接近于
DVD
的画质和立体声甚至
5.1
声道伴音这两大最明显的特点受
到了不少
有线电视用户的关
注,
同时更多可选
择的电视台、
点播节目也为丰富市民的业余生活增添了不少色彩,
不过在
数字电视刚刚起步的萌芽阶段,还有多的不足和缺点需要改进。
按照国际惯例,数字电视机顶盒(
SET-TOP-
BOX
,简称
STB
)分为数字地面<
/p>
STB
、数字
卫星
STB
、
数字有线
STB
和网络
STB
这
4
种,
南京市目前正在大力发展的数字电视类型是
数字有线
STB
,是目前成本最为低廉,也最适合大力向普通
市民所推广的。整体来说,数
字机顶盒以支持
HDTV
和互动性作为发展方向,而就目前的机顶盒产品来看,一部机顶盒
内包括
了接收数字信号的调制解调芯片、
视频信号编解码芯片、
音频处
理器、
音视频数模转
换芯片等,
一些高
端的机顶盒中甚至还会整合安全芯片甚至可录像硬盘,
可见数字电视机顶
盒在未来的发展空间还是相当宽广的。
创维
C6000
采用了意法的
Qami5516
p>
方案;熊猫
3216
采用了意法的
5516
芯片,带有
180MHZ
的
CPU
,银河则采用了最为简单的富士通功能单芯
片
H20A
,虽然这三种机顶盒
在内部
的设计上有一定的区别,
但它们都是需要通过插入数字电视智能卡才能够工作的,
而
数字电视智能卡就相当于一个人有了驾照才能合法地驾驶汽车一样。
在使用模拟电视信号的
时候,
大家只需
要申请有线电视开户之后就可以在家中通过自带电视信号调谐器的电视观看
节目,
如果有多部电视的话只要购买有线电视信号分配器就可以在所有的电视上观看有线电
视。
而数字电视却将这种免费的电视信号共享给
“
封杀
”
了,
机
顶盒需要在插入有效的智能卡
之后才能使用就是为了保证数字电视信号不被盗用的一种方
式,
同时也能够保证数字信号不
被盗版商用来作为盗版节目源。
为了保证数字信号不被盗用,数字电视内容管理方式以条件式
接取(
CA
)和数字版权管理
(
DRM
)作为基本保护机制,目前国内的数字电视机顶盒采用的管理方
式就是条件式接取
这种机卡分离的方式,
用户必须通过专属的智
能卡来取得授权才能够接收被解码的信号,
而
服务提供商也能够
通过这种方式接收用户的信息,
包括用户户名、
地址、
智能卡卡号和收看
数字电视的费用等信息。
这种
机卡分离的机顶盒使用方式被美国、
欧洲和亚洲等国视为数字
电
视发展的机顶策略。
DRM
采用的是许可证管理策略,由数字电视信号运营商对节目源进行加密,在用户通过机
顶盒发出节目接收请求之后
系统会自动检查是否
经过许可,而认证的方式也同样是通过
IC
卡等带有帐号、密码
等信息
的进行的,不过
DRM
管理的<
/p>
规
格
相
当
繁
多
:
Windows%20Media
的
DRM
、
开
放
移
动
联
盟
OMA
推
出
的
DRM%201.
0/2.0
规格、
UT-DRM
、
p>
NDS
、
SecureMedia
、
WideVine
、
BesDRM
等,规格的不统一使其并不被大多数有限数字电视运营商所接受。
无线机顶盒共享其与有线机顶盒共享器一样都是通过音视频接口接受机顶盒上的第二路信< p>
号输出接口来实现数字电
视信号的
“
共享
”
的,不过无线的共
享器的传输方式是通过红外、调频或
2.4GHz
来实现的,<
/p>
值得注意的是,目前的
机顶盒在背后的
接口都带有两路信号输出接口,
只要使用连接线将机顶盒的信号与两台电视
连接就同样可以实现这
样的所谓
< br>“
共享
”
功能,
而这样一来机顶盒共享器的作用也只有在不同房间都可以用遥控器控
制机顶盒这
种
“
遥控
共
享器
”
的功能了。
< br>那么这种有限数字电视机顶盒共享器是不是一无是处呢?事实上有一定动手能力的消费者
< br>完全可以将这种共享器与
客厅中的
DVD
连接使用,这样没有
DVD
的卧室里的电视机也同样能够收看
DVD
影碟。
不过需要注意的是,目前的有线电
视管理相关规定显
示:
如果在有线电视网络上连接其他设备,
必须通过广播电视管
理机构的
审查、批准和备案,否
则就
是非法入网。
到目前为止,
在有线电视网络允许入网的设备中,
还没有机顶盒共享器这
种产品,这也就意味着
< br>
没有入网手续的机顶盒共享器在有线电视管理部门将被视为一种违规的产品。<
/p>
不过目前机顶盒共享器的经销厂家认为:
他们销售的机顶盒共享器与机顶盒连接可以将机顶
盒输出的电视信号放大
,
传输到其他电视机上,
达到多台电视机共看数字电视的目的。
而共享器所解决的只是信号
传输问题,并未涉及到
破解、转换数字电视信号的问题,所
以不算是盗取数字电视信号的行为。
归根结底,
市场上之所以会出现机顶盒共享器这种产品的最大原因,
就在于如果要多部电
视
收看数字电视,需要再
另外购买一
部价值
680
元的机顶盒。
而按照南京
广电目前有线数字电视的以有的有线电视线
缆带宽,每个家庭中最多
能够同时使用三部机顶盒分别对应三部电视,如果你想要使用第
< br>4
部电视观看节目的话就需
要再另外开户,令外开户
p>
就意味着除了有线初装费之外,
每月的收
视费用都要翻倍,
相比之下每只售价在
200
< br>元
-500
元之间不等的机顶盒共享
器自然有着一定的生存空间。
至于这种大打擦边球的数字
电视信号的共享行为究竟算不算违
规产品,还要待相关的
法律或法规修正后才能够界定。
<
/p>
破解电视机顶盒,可接多台电视。录入者声明:本意在学习电子技术、交流电子技术。如有
用本技术去非法接入有线电视线路
,
造
成的不必要损失及触犯法律,圴与本人无关!破解电
视机顶盒,可接多台电视。录入者声
明:本意在学习电子技术、交流电子技术。如有用本技
术去非法接入有线电视线路
,
造成的不必要损失及触犯法律,圴与本人无关!
!
一、破解思路
二、破解原理
三、破解方法
四、破解原理图
一、破解思路
有线电视加密的原理是
这样的:
电视台把接改来的电视信号先输入数字加密设备,
把电
视信
号通过算法加密后向外
输出终端
的解密设备
(机顶盒子)
解密后输出普通的射频信号,
再送到我们的终端接收设备,
由电视放出画面。因
电视只能是接收普通的射频信号(模拟信号)
,所以只能解
密后再输入电视,由电视放出画
面。有线电视加密法有
多种,这里的是使用
“
加扰法
”
。在加密到解密这段线路,要想非法接入偷接电视信号,成功
的可能性几乎是
10000000
< br>分之一。但经解密器(机顶盒)解密后的信号任何可以常接收电视信号的电视
机都
能播放(即通用性,也
可说是共用性)
,
这就是破解的切入点
(破解软件也需要切入点)
。既然这样,
但为什么一个
机顶盒只能接一台电<
/p>
视机用呢?我也试验过,
当通简单的方
法接上两台电视机的时候,
什么画面也没有了
(因机
顶盒有智能的识别功能
)
。问题就在这里,也是我要教会大家的精要所在。
至于如何
利用这个
“
切入点
”
< br>进行我们的
“
小人
”
行为呢?我们通过什么手段来欺骗机顶盒,
让
他以
为是一台电视
机呢?(就如破解软件的时候,我们有时也要采
用欺骗的方法来进行破解)
。我将会在下一
点
< br>“
破解原理
”
中向大
家说明。
二、破解原理:
装在我们家里的那个
盒子的工作原理:
经加密的信号经输入端子输入,
由其内部有关
电路解
除干扰信号(加扰法加
密)<
/p>
,再经输出端子输出正常的信号。其解密电路是否工作要有一个外部条件,就是电视的
p>
高频头反馈回来的信号
。如果没有这个信
号反馈回机顶盒,
则其解扰电路不工作,照样输出未解密的信号,因而不
能正常收看。其解密的
频段分做若干段解密,如电视
正在接收
3
频道,则电视的高频头就反馈
3
频道的谐振频率给
机顶盒,机顶盒就能输出
1
——
5
频道的正常信号,
如此类推。
因此可用以下两种方法进行破解:
1
、把机顶盒放在其中一台电视机(下称电视
1
< br>)高频头附近,让其可以正常收看,再用分
支器从输出端分支出信号
到另外的电视机。这样的做法的一个缺点:就是另外的电视机只能接收电视
1
接收的频道附
近的
< br>5
个频道。
2
、用非与门电路或
555
电路制作一个开放式多谐振动
器,其谐振频率只要能履盖有线电视
的整个频段即可。
(制作<
/p>
成本约
6
元左
右)
把这个谐振动器放在机顶盒的旁边。
让机顶盒能接收到振动
器发出的信号,
再用分支器从机顶盒的
输出端分支出多台电视机,这样,所有电视机就能接收所有频道的信号了。
3
、用高频三极管如
9018
< br>做一个高频发射电路,利用射频输出再次发射,只要小小发射功
率,让机顶盒能接
收得到即
可。或用同轴视频线分支接入输入或输出端,的除去
外层屏蔽线,只留中间的线长约
1
米,
把这线绕在机顶盒。让泄
漏出来的信号感应给机顶盒接收。
第
一章:
CA
智能卡的破解与反制
p>
第二章:流行
CA
系统的漏洞分析实践
p>
第三章:流行
CA
应用算法的破解分析设想
破解讨论综述
CA
< br>安全保障的三层关键:传输流的加扰,控制字的加密,加密体制的保护。
这三种技术是
CA
系统重要的组成部分,在处
理技术上有相似之处,但在
CA
系统标准中是
< br>独立性很强的三个部分。加
解扰技术被用来在发送端<
/p>
CA
系统的控制下改变或控制被传送的服务(节目)的某些特征,
使未被授权的用户无法获
取该服务提
供的利益;
而加密技术被用来在发送端提供一个加密信息,
使被
授权的用户端解
扰器能以此来对数据解
密
;
而保密机制则用于控制该信息,并以加密形式配置在传输
流信息中以防止非授权用户直
接利用该信息进行解扰,
不同的
CA
系统管理和传送该信息的机制有很
大不同。
在目前各标准组织提出的条件接收标
准中,加扰部分往
往力求
统一,而在加密部分和保密机制则一般不作具体规定,
是由各厂商定义的部分。
1
、对传输
流的加扰,
DVB
已有标准。目前在国际上占主流的有欧洲的<
/p>
DVB
标准、北美国
家的
ATSC
标准及日本的
ISDB
标
准三种标准中,
对于
CA
部分都作了简单的规定,
并提出了三种不同的
加扰方式。
欧洲
DVB
组织提出了一种
称之为通用
加扰算法(
Common
Scrambling Algorithm
)的加扰方式,由
DVB
组织的四家成员公
司授权,
AT
SC
组织使用了通用的
三迭
DES
算法,而日本使用了松下公司提出的一种加扰算法。通用加扰算法
是
DVB
标准
组织推荐的对于
TS
流的标准加
扰算
法。目前,在欧洲的数字广播节目中普遍采用了这个算法。我国目前商业化的
CA
中,
TS
节目的加扰也基本上是
采用的这个算法。如果从破解的角度,攻破这个算法的意义要远远大于破解
智能卡和攻破
CA
系统本身。
2
、
对控制字的加密算法一般采用
RSA
以及
3DES
算法
,
各家
CA
厂商各不相同。
值得一提
的是
DVB
里有
一个规定,提到的
同密技术要求每个
CA
系统可以使用不同的加密系统加密各自的相关信息,
但对节
目内容的
加扰必须采用同一个加扰
算
法和加扰控制字,
可以方便多级运营商的管理,
为多级运营商选
择条件接收系统提供了灵
活性。这就为黑客攻破
智能卡创造了条件。
3
、对加密体制,不同厂家的系统差别很大,其技术大体有两种
:
一种是以爱迪德系统为代
表的密码循环体制,另一
种是以
NDS
系统为代表的利用专有算
法来进行保护,由于牵涉到系统安全性,厂家一般不
会公开。因此从破解角度,
对系统的破解是难度也是比较大的。
第一章:
CA
智能卡的破解与反制
第一节
对于
CA
智能卡的破解分为两种,
1
、从硬件破解的角度,完全地仿照正版卡来定制
IC
卡;
2
、
从软件
破解的方向,将正版卡的程序读出,最后将程序写入
IC
卡中,
就变成与正卡无
差别的
D
卡了。
仿制正版卡,可以将
IC
< br>卡的触点剥离下来,再将保护的塑料蚀掉,暴露出元件和内部电路
连接,就可以绘
制
成电原理图,最后交给能订制生产的
IC
卡的厂家生产。这些仿制还有一个冠冕堂皇的名称
叫
p>
“
反向工程
”
。国
内在
深圳和厦门等地都有能生产定制
IC
卡的厂家,在利益的驱使下,他们往往不会过问敏感问
题。
IC
卡中的元件如果是通用元件,通
常可以通过
IC
卡的功能原理的分析来确定,虽然困难,
但总是可以最终确
定。例如深圳目前直接使
用流在市面上的
ROM10
与
ROM1
1
卡来制成
D
卡,
ROM10
与
ROM11
实际上是
XX
系统正版卡的
“
< br>基础
卡
”
,这些卡具有与正版卡相同的硬件基础,至于怎么流落到社会上的不得而知,但有一个
事实就是大家应该都收
到过安装卫星电视的短信,这是个可
以想象的到的异常庞大的地下产业!
继续:
< br>IC
卡中的元件如果是专用元件,确定元件的事情就变得极其困难和十分渺茫了。
那
么这个时候硬件仿
制的路走不通了,那么看看软件仿真的路能不能走得通。
p>
再看软件仿真的路能不能走得通前,首先阐明软件仿真的路能不能走得通有不同的判断标
p>
准。
如果仅以在一段时段中,软件仿真的
D
卡与正版卡都具有相同的条件收视功能来判断,那
么无疑,从
D
卡的实践来看
,软件仿真已经成功了。
但如果
以任何时段中,软件仿真的
D
卡与正版卡都具有相同的功能,特
别是对抗反制的功
能来判断,那么我要
说,同样无疑,软件仿真是不可能成功的。
< br>因此我们仅承认这种事实就够了:自动对抗新的反制,使
D
卡与正版卡一样免除后顾之忧,
肯定是
D
卡研究的
终极目标。但是即便达不到这个目标,只要能保
证一段时间的仿真成功,
CA
破解的商业价
值就依然存在!
补充说明反制:由于
D
卡的成功,尤其是带
AU
(自动
换
Key0/Key1
)的
D
卡程序的广泛
扩散,正版服务商感到
了巨大的压力,逐步开始采用种种反制手段,让
D
版的
AU
卡实效。
我们先研究一下这个反制是个什么东东:
学习和搞嵌入式控制器开发的人都用过
仿真器,
如
“
伟福
”
系列的
MCS-51
的仿真器等。大家一定知道硬件仿真与软件仿真存在一个本质区别,即
I
/O
功能
的不同。一条取端口引脚值的
指令就足以区分是硬件仿真还是软件仿真了。硬件仿真可以真实地取到引脚上的实际输入
,
而软件仿真得到的只能
是不会变化的内存仿真值。
利用这个
原理实现的反制程序分为两部分,前面的部分通过
I/O
端口的
访问,区别出是真
的硬件存在,还是
软件仿真;
后半部分对非法的仿真卡简单地返回主程序,
不能解
开
Key0/Key1
;
对正版卡,<
/p>
则修改
Key0/Key1
,使之
正确,然后返回主程序并保存
key
,保存的
Key0/Key1
用于
ECM
的解码。
从历次
搜集的反制
EMM
中的方法中,
可以将
反制归纳为两种,
一种是从硬件或软件上区别
D
卡与正版卡,从而
产生条件分支指令,使
D
卡仿真的程序失效;另一种是调用
D
卡中不可能有的,只有正版
卡硬件才具备的
MAP
子程序,
使
D
卡无法执行正确的程序。
先介绍前一种方法:
使用硬件端口区
别正版卡与仿真卡的反制方法,
由于具有特殊性能的端口数的限制,
因此不
可能有多种变化
,一旦<
/p>
Hacker
知道了反制的
EMM
结构与原理,很容易就可以避开端口判断的指令,直接
转到修改
Key0/Key1
部分。这
虽然并不是程序指令的直接仿真,只能算是功能仿真,却可以使已知反制失效。
另外你也许会提出一些其他办法,如目前的一些
Nagra
系统在下行的
EMM
命令中加入了
p>
甄别真伪和
“
杀卡
”
指
令,对于
“
正改卡
”
,毫不留情地清除卡中程
序并且让它成为废卡。
我可以说,
为
了对抗
“
杀卡
”
,
这类
“
正改卡
”
的程序如果采用
Block
技术
,
可以抵抗多数杀卡
指令,同样
p>
能够使这类
“
正改卡
”
得以安全使用。
先写到这,
p>
后面介绍根据正版卡特有的机器指令代码,
让正版卡能进行解码、<
/p>
而没有正版卡
程序的仿真卡
无法正确解码、从而获得
KEY
的
EMM
思路。
第二节:
以下介绍根据正版卡特有的
机器指令代码,
让正版卡能进行解码,
而没有正版卡程序的仿真
卡无法正确解码,
从而获得
KEY
的
EMM
思路。
按照道理,
D
卡使用的是
AVR
或其他类型的
CP
U
,
“
正改卡
”
中的程序与正版卡也不相同,
照理这些卡中都没有正
版
ROM10/ROM11
< br>卡的程序。
因此,
用只有正版卡才有的特定机器指令代码
作为密钥来解
密
key0
与
key1
,自然是十分聪
明的反制措施。
该反制的
EMM
以前
146Dream TV
可能曾使用过。
目前
XG
有
线又重新启用,
大致在一个
周期的
8<
/p>
天中,有两天使用本
类
EMM
,另外
6
天使用另一个
“
超级
MAP
”
程序。
这种反制的具体思路是:
下行的
p>
EMM
中携带的
Key
与
Key1
是经过加密编码的,
不
能直接使用。
解开它们需要的密
钥
“<
/p>
种子
”
(即产生密钥
的原始数据)的地址由下行的
EMM
给出。注意!
EMM
中并没有给出密钥
“
种子
”
,而是给
出了它们在正版
ROM10/ROM11
卡程序存储
区中的地址,这个地址是随机数,不同的
key0/key1
,
地址就不同。它的值总
是大于
S4000
,防止取到
ROM10
卡低端的无
法读出的无意义内容。反制设计者设想,
D
卡或
“
正改卡
”
无法获得正版
p>
卡的内部程序,因此,即
使给出了地址,
D
卡也无法取得正确的机器码作为密钥的
“
种子
”
,自然也就无法生成密钥,
解开
key0/key1
了。
对于正版卡,按照给出的地址,取到
16
p>
字节的机器指令代码,经过类似计算
Hash
效验的
方法,产生正确的密钥
,再
对
key0/key1
进行
DES
p>
编码运算,就解出正确的
key0/key1
了。
上面介绍的
“
利用正版卡程序随机地址处的机器码作为
Key
的解码
密钥
”
的
EMM
反制方法非
常厉害,曾难倒了一
大批的高手。
对比一下昨天前一篇帖
子中给出的
EMM
与上面介绍的
EMM
,就会发现,前一篇帖子中给
出的
EM
M
是一种简单的反制
,只要知道了正
确的
Key0/Key1
,再经过认真分析和思考,就会明白其
反制原来并找出解
出
Key
的方法,目
前
Dream
TV
的反制都属于这类
简单反制;但上面今天介绍的
EMM
是一种高级和复杂的反制,
即使
知道了正确的
Key0/Key1
,也
难以得知其反制的原理与找出解
key
的方法,目前
XG
有线和国外一
些
CA
系统采用的是
这类反制。由于<
/p>
XX
的反制汇聚在
低级和高级的两类难度上,
所以黑客们怀疑这是两类不同水平的技术人员的作品。<
/p>
低级难度
的反制是卫视服务系统
内部技术人员的手笔,而高级的反制则直接出自
CA
< br>系统研制人员的杰作。
两种级别的反制也将国内修改、
编写
D
卡程序的高手分成了两类:有一些写一点程序应付
低级反制的,往往采用
“
< br>头痛医头、脚痛医脚
”
的补丁程序,可以对付目前
146-Dream TV
的反制;只有少数高手
中的高手具有整体编写程
序以及仿真
MAP
功能的能力,能采用更合理的对抗策略,能研制出复杂程序和新类型的
D
卡,最终可以对付高级难度
的反制。
对付低级反制写出对抗程序的时间大约是数小时到几天,
而对付高级反制找到方法
并写出程序的时间往往
需要数个月之久,而且还需要国内外
Hacker
们的协同配合。国内高手中的高手人数很少,
都是单兵作战和埋头苦干
p>
的,与其他高手之间一般互不交流。
<
/p>
本节介绍的
“
利用正版卡程序随机地址处
的机器码作为
Key
的解码密钥
”
p>
的
EMM
反制方法十
分成功,但它采用程
序的机器码作为解开
< br>Key
的密钥,可能会出现以下几个问题:
1.
如果电视系统历史悠久,在用的卡可能有几种,那么可能
产生内部机器指令码不尽相同
的问题;
2.
如果电视系统想要更新程序,也可能存在部分尚未更新程
序的正版卡,同样会产生内部
机器指令码不相同的
问题。
这个问题还可能阻止正版卡通过下行信号进行的升级:
我们设想一下,
正版卡用户中,
有的人天天看卫视节
目,他们的卡顺利升了级,而一部分人外出,卡很久都没有使
用了,刚回来想看卫视,结果
因为卡的程序不对,无
法收看,
肯定对卫视服务商大发雷霆。
在用户是
上帝的外国,
电视服务商对可能引起用户的
怒气一定很忌讳的。
3.
对该反制最致命打击是,可以
设法读出正版卡作为密钥的那一部分程序机器码,通过在
D
卡的
硬件上安排外
部
EEPROM
,存储量有
64KB
、
128KB
、
256KB
等,将正版
卡作为密钥的程序机器码全部
保存起来,解开
KEY
时,照样可以
从外部
E
EPROM
中取到与正版卡一样的解
Key
的密钥,
来对抗反制,
使该方法失效,
这是
该类反制的终结者。
经过了
利用软件仿真在
I/O
功能上的区别进行的反制和利用正版卡指
令代码作为密钥进行
的反制之后,目前几个
< br>在运行的
CA
系统
(
146
的
Dream TV
与其他卫视,
XG
以及国内一些地方的本地有线数字
电视等)纷纷进入了使用
MAP
功
能来进行反制的阶段。
使用正版卡中的
MAP
编码
/
解码协处理器进行反制,是正版卡在设计阶段就预留的终极反
制杀手。可
以看到,正
版卡设计者防范于未然,预估到终有一天,第一道
门(
ECM
与
EMM
< br>的解码)将被攻破,
预先留好了第二道门做最后的
防守。未雨绸缪,是我们不得不佩服这些设计者的智慧与远见。
第三节
在深入讨论
< br>MAP
功能及其仿真实现之前,为了后续文章读起来不算费劲,需要先说明两个<
/p>
方面的知识:一是什么是收
视卡防守的第一道门与第二道门?
二
是
EMM
指令与
Logging
等知识。
今天让我们先说说什么是收视卡防守的第一道门与第二道门?
收视卡是防止非法收视的守门员,
在卡中设计了多种加密方法,
最主要的有解决收视功能的
ECM
和自
动换
key
的
EMM
< br>的
解密,它们的解码是第一道门。
ECM
与
EMM
的编码与解码使用
的虽是不同的方法,但都
是固定不变的标准方法。不同
的条件接收系统仅仅是编码
/
解码采用的数据
有不同而已。举个例子,有的卡可以解开多个
同一类型
CA
p>
系统,该类卡
是按照下行的
ECM
或
EMM
的系统标识
(如
146 Dream TV
为
4E
和
4F
,
XG
有线为
94
和
95
等)选择不同的数据,而运行的程
序基本相同的。
仍然以
XX
为例,
ECM
的编
p>
/
解码采用
DES
与
EDES
算法,
其原理早已公之于世
。
编
/
解码
所
用的
S_Boxes
数据也已经公开,
并且在不同的系统中固定不变。
与标准的
DES
相比,
XX
系统的
DES
只是多了对字节进行
了反序排列而已。
p>
ECM
使用的
V
erifyKey
等数据,通过后门密码进入正版卡保留的数据空间,可以读出这些关键
的信息,
加上
BoxKey
等信息,只
要
能获得当前的
Key0/Key1
,就可以配合
IRD
解开解密收视用的
控制字(
Control Word
)
,
可以正常收看卫视节目。
ECM<
/p>
的解码可以解决收视的问题,但还需要手动输入
Key0/Key
1
。如果要象正版卡一样
自动换
Key
即所谓的
AU
,就需要
能解开
EMM
,并能正确地
找到并保存
Key0/Key1
。与
E
CM
的解码相比,
EMM
的解码要
p>
复杂的多!经过
Hacker
的努力,
p>
EMM
的
RSA
编码原理已经完全弄明白,所需要的
PK
,
VK
等数据也可以通过
Hacker
的软件和
ROM10/ROM11
卡的后门读出,再
算出
N1
,
P
,
Q
,
EP
,
EQ
,
IQModP
,
IPModQ
,
PPrimA
,
QPrimA
p>
等方便编程的数据,
就可以顺利解出
EMM
。
收视卡的第二道门是对
EMM
中
p>
Key
解密的防守。它的方法没有固定的套路,可以任意变
化。如
XX
系统的设计者安排了
可以通过
EMM
中携带程序
的执行,以及正版卡通过下行信号更新的
EEPROM
中补丁程
序
的运行来解码。正版卡设计者可
能
料到攻破第一道门是迟早的事,
于是第二道门上的防守就成了最后的防线。
前面章节介绍
的几种对
EMM
中的
Key0/Key1
进行再加
密,就是在第二道门上的防守。它的思路是:当
EMM
解开后,
如果
其中的
Key0
,
Key1
是经过加密
的,<
/p>
D
卡仍然无法得到正确的
Key
。
国内早期的
D
p>
卡程序是移植国外
Hacker
的,针对
想收视的系统,修改了相应的数据就可
以实现本地化,由于要得到
正确的
Key
需要的解码方法没有
固定的套路,
Hacker
不可能事先料到,总是要反制后分<
/p>
析它的原理,再更新部分
D
卡
程序,进行对抗和补救。一般人没有自己编写
D
卡程序的能力,即使有写卡器掌握了写卡
方法,但程序又难以得
到,
这些麻烦会迫使许多人放弃
D<
/p>
卡,转而加入正版卡缴费收视的行列。
不过正版卡虽好,
但其高额的收视费还是让国内广大爱好者望之却步,
< br>大家的希望还是寄托
在
D
卡程序
的完善上,希
望终有一天,
D
卡能与正版卡一样不受反制。
第四节
EMM
指令与
Logging
知识
EMM
是
“
授权控制
命令
”
,简单说就是
“
更改收视卡中信息的命令
”
。现有系统如
XX
系统中
的
EMM
命令很多,
EMM
指令
中的
FA
(针对
< br>ROM10
卡)和
FB
(针对<
/p>
ROM11
卡)是所有
EMM
指令中功能最为强大的
指令。在该指令中携带了
6
805
指令写
的小段程序。
CAM
(收视卡)将
EMM
解码后,将该
EMM
携带的机器指令码存入正版卡从
S81
开始的固定地址。以子程序
调用的方式,
转到该地址,
执行这段程序。
p>
这段程序的结束可以只是一个简单的子程序返回
指令,也可以用转移
指
令转到保存
Key
的子程序去。前者一般不保存
Key
,后者才保存
p>
Key
。
还以
XX
系统为例,其
EMM
长度最大为
64
字节,既要包含
Key0/Key1
p>
和一些标识与过滤
指令,又要包含一小段程序。受
< br>
到大小的限制,程序的长度不能超过
37
个字节。对于复杂的解码反制,程序很长时,一般
通过下行的信息将大部分<
/p>
的程序写到正版卡的
EEPROM
p>
中,由
EMM
中的小段程序来调用,正如<
/p>
XG
有线当前的反
制所采用的方法。对于
二次加密了
的
Key0/Key1<
/p>
,只有正确执行该段程序后,才可以还原
Key0/Key1
p>
。
防止
D
卡正确执行该部分程序是不难做到的,实际上,由于
D
卡采用的
CPU
不是
6805
家
族的,
D
卡
也不直接执行该段程
序,但防止
D<
/p>
卡研制者人工判读该段程序却是极端困难的。
< br>如果
D
卡研制者采用人工判读的方法,读懂了新的
EMM
的反制原理,找到对抗反制的方
法,那
么就可以在反制后的不
长时间内研制出升级改进的对抗程序。
这些程序通常会放到专业的黑客网站上开放给众多黑
客会员下载
,具体地址
本文就不讨论了,只是要说明这些网站确实存在,
而且很活跃,这也是对
DVBCN
论坛上
CA
厂家的那些穿着皇帝新装的
抢
手最大的一个讽刺,说什么
“
ca
是很
安全的
”
之类的自欺欺人的瞎话,有空的话还是花点
精力去琢磨琢磨仿制和
复制的区别,看看自己的水平到了什么地步,能不能入流。
<
/p>
判读
EMM
内容与反汇编其中的
6805
程序的步骤如下:
1
、
通过某
种手段,将
EMM
纪录下来。这个步骤也称为
< br>Logging
,
Logging
通常可以通
过
1020
卡或通过
p>
Season
卡等来进行卡等来进行。有的高级黑客用的
Logging
是用含有自己写的特殊程序的卡,在
新的含
Key
的
EMM
到来时写入
EEPROM
,再用写卡器读出即可;
(一般圈内没有
1020
卡,都是用自己写的卡程序
log
。
)
2
、
将
p>
Logging
的文件交给
XX
程序。该软件是学习和分析
EMM
、
ECM
以及
XX
系统其
p>
他信息的优秀软件,其中含
有不少有用的工具,对此有兴趣的网友应当熟悉它的使用;
3
、
如果你
的
XX
程序目录中含有正确的
ROM1
0/ROM11
的
BIN
,
,
,
以及
等
文件,那么
XX
程序中的
EMM
p>
XX
功能会将该
EMM
解开,反汇编并加注释成为易读的源
程序;
4
、
阅读<
/p>
EMM
程序与包含的数据,对比已知的正确的
Key0/Key1
,分析之后就可能知道
反制的原理,但
也可能分析之后仍然找不出头绪。
如果分析明白了,就可以着手编程。对于
1020
卡,程序按照
6805
汇编语言编写,汇编后
加入<
/p>
ROM10/
文件,
< br>放到
Fennir
的
XX
目录下;对于
Fun
卡,按照
AVR
汇编语言编程,替换或修改原来卡的
部分程序,
汇编成
*.hex
就可以使
用了。对于从事嵌入式控制器工作,或是信息类专业的人,编这些程序应当不是什么难事,
但要编得好,却也不容
易。对计算机汇编语
言不熟悉的人,要自编程序,当然要先学习和实践,能否成功,全看各
人努力和造化了。
第五节
MAP
本节开始说起
MAP
攻略的技术基础知识,有网友该问了为
什么是基础知识而不是详细介
绍?该攻略是全世界高手共同
<
/p>
努力得出的宝贵结果,可想而知,这份资料的宝贵不言而喻!由于是在
DVBCN
这种公开
论坛,另外当初写这些文字也
是因为一时意气用事和一个叫
tsexper
t
的网友进行理论,
结果到现在该老兄跑得无影无踪,
偶尔回个帖也是顾左右
而言他,
对于技术的推演无片言只语的贡献,
变成了我孤家寡人在这里卖弄,
所以也就没意
思了动力也小了很多,
因此本文不准备展开和深入介绍。详细的研究和讨论,可以在日后归纳出
“
MAP
技术专题
”
< br>资料了专门交流,不过就
不是这种方法了。
OK
,切入正题。
XG
有线
“<
/p>
新例
”
超级反制的程序是利用
MAP
进行的反制程序。由于反制十
分复杂,程序
较长,所以分
为两部分:小部分的是
EMM
携带的程序,大部分是通过下行信号预先已经存入
EEP
ROM
的程序。通过阅读它们,
hacker
们可以了解
MAP
的调用(
$$
90E3
)在反制中的作用。
调用<
/p>
MAP
的
EMM
有难有易,以
Dream
TV
为例,其
MAP
$$0E
功能就可以通过正确的
Key
< br>,比较容易猜出来,它是与成片数
据交换有关的操作;
而
XG
有线调用的
MAP $$11
p>
,
$$28
,
$$39
,
$$3A
功能就极难猜出来,
就像是一个
“
谜
”
p>
。
反制进入使用
MAP
功能的阶段后,
D
卡要对抗反制
,必须研究
MAP
功能,只有弄懂了有
关的
MAP
功能,并且在功能上仿
<
/p>
真它们,才可以有效对抗这类反制。大家可能会设想:如果我们将
MAP
协处理器的功能都
了解了,将它们都仿真出来
,那么不就可以与正版卡完全一样了吗?不过要弄懂
MAP
的功能,可不是一件容易的事。
先让我们了解一下协
处理器
是什么东西:
iB
一般计算机为了处理数据的需要,
可以配上协处理器。
协处理器的程序是不对外开放的,
它
p>
的程序存储区对其它器
件而言是完全隔离
和封闭的。无论如何,用目前的技术和手段,我们都读不出
Map
协处理
器的程序。因此,彻底了解
MAP
协处理器的功能,
是不可能的,
除非开发
MAP
的技术人员被收买了或派间谍打入了研
制
MAP
协处理器的公司,盗取
了它的技术资料
...
。这
又有点像
tsexpert
老兄前面说的中央情报局的笑话故事
了。
gy9
想像带来虚幻的快感,
却不能解决问题,要解决问题,还是脚踏实地,认真学习与研究。
ROMX
卡调用
MAP
功能是通过
一个固定入口地址
$$9E03
的子程序实现的,该子程序称为:
CALL_MAP
,调用时必须在
A<
/p>
寄存
器中存入
MAP
的功能号。
我们看到
EMM
实际执行的是一段很长的程序,
EMM<
/p>
中的部分只是其中的一小段,绝大部
分都存到了
< br>EEPROM
区,它们是
通过
下行信号写入卡中的
EEPROM
的。
据我所知,
ROM3
或
ROM10
或
ROM11
的正
版卡在
$$4000
~
$$99FF
的程序代码都相同,
它们存在
ROM
区,是固定不能改变的,
如果改变了,
那么,
“
利用正版卡程序随机地址处的机器码
作为
Key
的解码密钥
”
的
EMM
反
制方法就要产生
兼容性问
题了
(这也许就是
ROM
卡称谓的由来)
。
Hacker
们将这部分程序称为
ROM
卡的
“
ROM
区
< br>基本程序
”
。卡复位后执行的就
是这部分的程序。
?Kg{q-u-
那么固定程序的
ROMX
卡是如何改变
其程序的功能呢?
不少网友都知道,只要在
< br>ROM
卡中可以改写的
EEPROM
区中按规定写入
*.BIN
文件的程
序代码,就可以改变
ROMX
卡的实
际功能。
那么为什么在
EEPROM
区写入的程序代码能改变程序执行时的实际流程呢?这是如何做
到
的呢?
PC
微机的操作系统或程序,如
Windows
,发现了
Bug
,用补丁更改时,需要先下载补丁,
然后
运行有关修补程序,改
变原来程序的代码,
< br>才能完成修补。
这种修补通常是在原来程序中要修改之处放上转移指令,
转到补丁程序,
执行后再回到原来的程序继续完成后续工作。
这是修改程序功能常用的办法。
但如果原来的程
序不像
PC
微机那样存在硬盘上可以更改,而是存在不可更改的
ROM
区,
补丁下载后,没有改变原来
程序的任何部分,补丁就可以自动起作用,就是奇怪的事了!
由于
ROM
区基本程序不可更改,
又要
能自动运行装入
EEPROM
区中的补丁程序,
ROM
卡
的设计者想出了一种巧妙的方法
。该方法能自动检查
EEPROM
区是否有补丁程序,补丁程序补在原来程序的什么地方,如
何自动运行这些补丁
程序等
等。
有了这种巧妙的方法,
在不改变
ROM
卡基本程序的前提下,
只要将添加的程序或数据存入
可更改的
EEPROM
区,卡的程
序功能就可以得到增强或修改,
就可以在不必收回或报废原来卡的情况下,
适应各种不同的
卫视系统或其他应用,
或对卡进行升级换代,特别地,可以通过下行信号自动变更原来程序的逻辑功能。
第六节:
为了学
习和掌握
D
卡技术,必须能够读懂别人编写的程序,然后再自己
修改或编写自己的
程序,所有这些,都需要了
解汇编语言源程序知识。可以说汇编语言程序知识是
D
卡技术入门的一道门槛,跨过了这
道门槛,就得到了一把打开
宝库的钥匙。有不少网友开始上信誓旦旦
,
但往往乘兴而来,败兴而去,不少人开始畏难,
甚至逃跑了
,
就是难以跨
越汇编语言这道门槛。
同时因为后续章节中经常提到
ASM
、
HEX
、
BIN
等格式的文件,因
p>
此调整一下文章结构,补充一
点汇编语言
程序基础知识
,
真正想学习的网友友,还是要自己找资料踏踏实
实系统地学习。
汇编语言源程序(简称
“
源程序
”
)是面向
CPU
的低层语言,该语
言的指令(注意:不
称为
“
语句
”
)与
CPU
的
p>
机器指令代码一一对应。对不同类型
CP
U
的计算机,指令不同。源程序可以编写或通过反
汇编得到。运
行汇编程序就
可以将汇编语言源程序转为机器语言目标代码,
这个转换称为
“
汇编
< br>”
(
注意:
不称为
“
编译
”
)
。
源程序为纯文
本文件,扩
展名一般为
ASM
。目标代码文件格式很多,常用的有
Intel
的
HEX
格
式和存机
器码的
BIN
格式等,它们都
可
以被编程器接受用于将代码烧写入
CPU
或
EEPROM
等存储介质中。
计算机
CPU
只能执行
机器指令。
汇编语言源程序的指令有两种,一种是对应
CPU
执行的机器码的
“
助记符指令
”
,另一
种是指示汇编程序工作的
“
伪指令
”
,
再有一种
“
宏指令
”
p>
实际上属于伪指令,它可以用一个符号串简化表示很多符号信
息。<
/p>
用一种类
型的
CPU
执行另一种
CPU
的程序,只能用仿真的方式,实现其功能,而不
能直接照搬来执行。
p>
在
Nagra
系统的
Hack
领域,常见的汇编语言有
ST7/6805
和
AVR
等,前者是正版
卡的语言,后者是仿真卡的语
言。
以下给出一些范例:
某种
EM
M
携带的
6805
的源程序:
Org
$$0081
;
指定以下程序或数据开始
地址
StartAddr81H:
Lda
$$CE01
; <
/p>
A:=EEPROM
单元
[$$CE01]
Cmp
#$$01
;
该单元内容是否等于
$$01
Bne
$$A7
;
如果不是,则
EEPROM
未
装入适当的程序,退到
$$00A7
Jmp
$$CE02
; <
/p>
否则
EEPROM
有适当的
程序,转去执行该程序
#N9=i7 @3
p>
汇编后的地址、机器码与源程序为:
(该部分是
*.LST
即列表文件,它包含了源程序和汇编
后机器指令
或数据,地址
等)
Org
$$0081
;
指定以下程序或数据开始
地址
0081:
C6
CE
01
StartAddr81H:
lda
$$CE01
;
A:=EEPROM
单元
[$$CE01]
0084:
A1
01
cmp
#$$01
;
该单元内容是否等于
$$01
0086:
26
A7
bne
$$A7
;
如果不是,则
< br>EEPROM
未装入适当的程序,退到
$$00A7
0088: CC CE 02
jmp
$$CE02
;
否则
E
EPROM
有适当的
程序,转去执行该程序
。
。
。
。
。
。
。<
/p>
以上部分略。
从以上范例中我们可以看到一些普遍规律(这几点请认真记录
)
:
0.
计算机识别的信息都是二进制数,或简洁标示的十六进制形式。
如
十
p>
六
进
制
与
二
进
制
的
不
同
形
式
< br>:
$$C6=0xC6=0C6H
=
0B11000110=%11000110=11000110B
等
1.
相同程序功能,但
CPU
不同,则机器指令码不同,不能互换。
2.
汇编语言源程序由
4
部分组成:
标号
操作码
操作数
注释
StartAddr81H:
Lds
r16,$$CE01
;
A:=EEPROM
单元
[$$CE01]
3. Org
或
.Org
是伪指令,它不产生对应的机器指令,但仍起了一定的作用。
4.
多
数指令是助记符指令,它们都产生了一一对应的机器指令,它们都要占据一定的
存储单元
,都有对应的地
址。
5. CPU
按照指令的地址,逐条取出机器指令并执行,如果没有转移操作,就按照顺序
执行。
6.
汇编语言源程序很难看懂和记忆,因此需要认真写注释,一般注释是用英文写,也
可以用中文。
7. HEX
文件有特定的格式,它包含地址,数据和效验和,
十分严谨和灵活。
第七节
为了研究正版卡的反制,特别是
XG
有线类型的
高级反制,不仅要研究带
Key
的
EM
M
,还
要关注和跟踪修改
EEPROM
的
EMM
。一直关注这些
EMM
动向的黑客会从相关论坛得到正版卡修改后的
EEPROM
代码,它们
一般以
*.
BIN
的形式给出。
如果得到了
ROM
< br>卡的
*.BIN
文件,就可以了解到正版卡在
EEPROM
中加入了哪些新
的补丁程序或采取了
什么反制方
法。
研究和了解的第一步是反汇编。反
汇编是将机器指令或数据代码转为源程序的一种操
作,它是汇编过程的反向
操作,是反向工程的一种手段。
一般开发产品,
< br>自主编写源程序后,
主要的工作是汇编,
很少反汇编。<
/p>
但黑客在破解我
国卫视界的过程中,却
常常进行反汇编。
原因之一,
是因为水平不够,
无法自编源程序,
只好用国外或国内高手赠送的目标代码
通过反汇编来转为源程
序,再进行学习和修改,这成了必要的步骤。
原因之二,是研究正版卡的反制方
法与原理的需要,必须通过反汇编将
EMM
或
< br>EEPROM
中的机器码转为易读的源程
序,再进行分析和研究。
汇编是将源程序转换为目标代码的过程,
它比较简单,
指令或数据转为机器码时都是唯
一的,没有二
义性;而
反汇编就复杂得多!由于二进制代码的多义性,即,
同一个字节,可以代表多种信息,它即
可以代表
CPU
的操作指令
,又可以代表各种字符、无符号数
、带符号数、浮点数和其他种种信息,因此,一般情况下
反汇编是不可能返回汇
编前的源程序的,如果反汇编能将指令或数据正确区别开来,就是很不
错的了。
大家可能有疑问:
要反汇编的是程序,
只要转为助记符指令就
可以了,
怎么还会有转为
数据的问题呢?为什么
难以区别程序与数据呢?
原来,程序是指令与数据的集合,程序存储区中即可以存放<
/p>
CPU
的指令,又可以存放
程序使用的数
据,它们都是
二进制代码。在源程序中,不仅有
CPU
执行的指令,也还有程序用到的数据,这些数据是
用数据定义伪指令来描述的
。
指
令与数据汇编后产生的目标代码都是二进制数,
它们可能是指令也可能是数据,
单从二
进制代码本身并不能区
别出它们是指令还是数据。
以
**
卡的
EEPROM
中的部分机器码反汇编为例:
在
*
*.BIN
文件中,取从地址
$$CE18
开始的机器码:
CD CB 21 00 96 02 70 08 A6 01 <
/p>
用反汇编软件,如
XX
软件中的
XX
功能,反汇编得到的源程序:
(是错误的)
CE18: CD CB 21
jsr
$$CB21
;
调用子程序
$$CB21
CE1B:
00
96
02
brset0
$$96,
$$CE20
;
如果
$$
96
单元的位
0=1
则转到
$$CE20
CE1E: 70
neg $$X
; <
/p>
对
X
寻址的单元进行求负操作
CE1F:
08
A6
01
brset4
$$A6,
$$CE23
;
如果
$$
A6
单元的位
4=1
则转到
$$CE23
正确的反汇编应当得到以下源程序:
CE18 CD CB 21
jsr
$$CB21
;
调用子程序
$$CB21
,将
$$0096
开始的
$$
08
个字节数据复制到
$$0270
开始
的单元中
CE1B
00
96
02
dc.b
$$00,$$96,$$02,$$70,$$08;
这六个字节是传
给子程序
$$CB21
的数据,用伪指令
“
dc.b
”
来
描述
CE1E 70 08
CE20 A6 01
ld
a,
#$$01
; a
取值
$$01
对比以上两个反汇编的源程序,就可以看出,反汇编后的源程
序差别有多大!
前面的反汇编没有正确区别指令与数据,
得到的源程序将误导阅读者,
使之无法了解正
确的程序思路。
而后面的反汇编正确区别了数据与
指令,阅读者就可以明白程序的思路。
像这样的情形大量发生
在
XG
有线的超级反制程序中,正如某黑客所讲:
“
cb
與
ce
code
內,有很多都是特別的
p>
subroutine
,用
Xx
功能時要小心一點,否則會看到不明所以
…
尤其是
等字眼,多是
地址位置而不是
opcode
。早
一頁
post
出的就是例子,自己用
XX
软件時會出現不同結果。而
key
change
的
bytedump
部分全是
random parameters
for MAP CALL
,再多例子也沒分別。再有不明可以
大家研究一下,反正結果都會是『謎』
一個!
第八节
反汇编
2
真正的源程序的价值是非常高的,
而简单反汇编得到的所谓源程
序就没有什么价值,
因
为这样的源程序难以阅
< br>
读,难以修改。
如何能将目标代码转换成为真正的源程序呢?
以下是正确反汇编的基本步骤:
1.
反
汇编首先要选对反汇编的工具程序
XX
,反汇编工具应当针对目
标代码适用的
CPU
。乱抓一个来,也可以反
< br>
汇编,
但产生出来的是莫名其妙的东西。
一般的汇编程序都顺便带有反汇编的功能,
也有专
门
的反汇编工具可以使
用。大型的反汇编工具使用起来比较复杂
,初学者可以先试试简单的。
2.
其次,反汇编得到的源程序要能再汇编成为目标代码,这
个目标代码必须与原先用
于反汇编的目标代码完全
相同,这可以检验反汇编是否基本正确。
3.
再
次,反汇编得到的源程序必须经过人工的阅读、分析和判断,确定哪些是指令代
码,哪些
是数据,确定之
后,再告诉反汇编工具程序,让它做相应的处
理,
产生更合理的源程序。这个步骤要反复进
行,直到数据和指
令正
确分离为止。
判断哪些是数据,
哪些是指令,
要有敏锐的观察力。
通常
,
如果出现
“
Unknown
”
字样,或不合逻辑的
指令(如对同一个变量重复赋值等)
,或程序没有入口标号等,就可以认为这部分是数
据;
如果程序中出现了不合
理的标号,说明其它地方还存在数据被当成指令的错误。
4.
最
后,对这种反汇编得到的原始源程序进行人工修改,使用有意义的变量名、常数
名和子程
序名替换原来没
有意义的标号,加上详细的注释,最终才形成
真正的源程序。这一步是一个再创造的过程,
是反汇编中最难和最关
键的工作。不会编程的人,一般无法完成这一步,因此说
“
反汇编是一个再创造的过程,需
要的能力绝不比编程低
!
”
,是否真正能
得到可以供修改和继续开发的源程序,关键都在这一步。可以说,反汇编
的工作,工具软
件仅仅
帮了我们反汇编工作的其中一小部分,
仅处理了那些死板的固定套路的事,
而关键的智力活
动
都必需要人来完成。
许多初学者可能过分相信和依赖工具软件,
这是不正确的。
好的工具软件可以帮助我们,
减轻不少繁琐的劳动
<
/p>
。但工具是死的,而人是活的,是创造性的源泉。反汇编这种需要高智力的劳动,更是单纯
依靠工具软件不可能完
成的。
以下例子是部分取自
146-D
卡中的
Flash
程序,用于说明上述反汇编过程:
< br>
第九节
反汇编
3
要了解正版卡的反制原理,
首先要反汇编
ROM
卡中
EEPROM
的程序。仍以
XXCA
使用的
ROM
卡为例:
该
ROM
卡
使用的
CPU
是
ST7
,它是
STMicroelectronix8
位处理
器家族的成员,指令系
统与硬件结构向下兼容
Motorola
的
6805
计算机,可以直接执行
EMM
中携带的
6805
指令集。
通过下行的信号对
ROM
卡更新后,产生了新的程序。这些新的
EEPROM
的信息往往以
*.BIN
文件的形式出现在一些黑客
网站上。
我们得到后,
可以选择文件中我们有兴趣的一部分信息,
交给
Xx
软件进行反汇编。
之所以选择
Xx
软件,是
因为
Xx
软件专门针对
ROM
卡,它的反汇编具有一定
智能,可以自动处理变量名、
ROM
卡中已知的子程序和特定子
程序
夹带的数据等,还可以加上注释;之所以只对一部分代码
反汇编,是因为
Xx
软件对反汇编
调入
的代码长度有限制,
不允许超过
4K
B
即
$$1000
。
下面以
XG
有线反制的
EEPROM
程序的反汇编为例,介绍
ROM<
/p>
卡的
*.BIN
文件中部分代
码进行反汇编的基本方法:
根据
Xx
软
件解开的
EMM
,我们可以看到
XG<
/p>
有线下行的
EMM
中夹带了这样的一段程
序:
。
。
。
。
。
。
。
p>
(略)
从中我们知道,一切的关键都在
$$C
E03
这个子程序中,必须要反汇编存在
ROM
卡的
EEPROM
中的地址为
$$CE02
开始的程序
。
1.
将含有
$$CE02
程序的
*.BIN
文件读入某种编程器的缓冲区,缓
冲区地址从
$$0000
开始。
记住
p>
ROM10/ROM11
文件的
*.BIN
文件是从
$$C000
地址开始的。
2.
计算保存文件的开始地址
=
p>
需要反汇编的程序地址的开始地址
-$$C090
。
如,
希望反汇编
$$CE02
p>
开始的子程序,则
计算出的保存文件开始地址
=$$
CE02-$$C090=$$0D72
。
3.
用
编程器保存文件的功能,保存一份文件,文件类型为
*.BIN
,保存的缓冲区地址为计
算得到的开始地址,文
件长度为
$$1000
。
注意
:
Xx
软件的
Xx
只接受长度为
$$1000
的文件。
例,
保存文件名定为:
,开始地址为<
/p>
$$0D72
,长度为
$$1000
。
4.
进入
Xx
软件,点击
Xx
功能,点击
“
Extract Bss Code From EEPROM Image
< br>…”
,
选择在
3.
中保存的文件名,将
Initial
Addresses
和
Code
Base
都改为程序的真实地址,如在上例中,地址都改为<
/p>
$$CE02
,选择
ROM
卡的类型,如
ROM10
,
最后点击
“
XX
!
”
,完成反汇编。
5.
当然,特殊的子程序,如后面
跟随数据的,反汇编可能不正确,需要人工判读,并采取
特殊处理(处理方法略
)
。
第十节介绍
MAP
与反制原理,第十一节介绍如何用
程序来仿真。
不过看现在的情形,大
家对算法的讨论感兴趣的比
较多,
因
此觉得有必要停下来讨论讨论算法的问题。
可能有人说,
一提算
法可能又会把问题
搞的非常发散,最终又
会偏离我们的主题太远,
但谈
CA
破解又不可能不提算法,
所以我们暂且转贴一篇网络上流
行的基
础帖子,从这里插
叙开始谈起:
<
/p>
转贴:
CA
算法的破解方法
理论上说,
CA
算法的破
解方法有两种:一种是
解析法,另一种是穷举法。
解析法是根据
CA
的算法,找到其中的要素,推断
出未知因素从而破解算法,这是一种相对
比较有把握的方法。对于
一种固定的算法,从算法理论上说,它由四个要素构成:第一是被加密的对象
(
明文
)
;第二
p>
是加密完成的结果
(
密文
< br>
)
;第三是实现加密的数学模式;第四是采用的密码。
在电视广播应用中,一般来说,明文
和密文是可以获取的,算
法是不能保密的
(
易泄露
)
,密钥是大家攻击的对象,一旦密钥被攻破,
加密
的方法也就随之
告破。虽然科学家们设
计了很多种巧妙的算法,
但是却没有人敢保证自己的算法是不可破解的。
但是通过系统实现
可以增加算法破解的难
度:
把两重算法结合在一起,
将第一重加密算法
的密文作为第二重加密算法的明文,
这样用
户只能看到原始的明
文
和两次加密以后的密文,
如此就无
法找到每个算法三大要素的对应关系,
从而无法用解析法
来推断
密码。
目前绝大
< br>多数
CA
被破解都使用了穷举法。
由于明文和密文形成了一定的对应关系,
只要拿到足够多
的明
文和密文对,通过数
学的试探方法可以找出中间的对应关系。
对穷举法的防御一方面要加大密钥的长度,
使明文
和密文的位数大大加长
,
另一种方法是让破解者无法在一定的时间段内拿到足够多的对应关系,
典型的做法是将时
间因子作为加密内容加
进去。只要时间不重复,明文和密文就很难找到对应的关系。
但有了一个好的算法并不表
示系统就是安全的,如果
在实施过程中留下了漏洞,还是有机会被破密。
如果
CA
的算法很严密,但全是由外部计算
机软件实现的,只要有一
个手段高明的黑客,
就可以比较容易地将程序下载下来,
经过反汇编,
读取原始代码,
从而
破解密码。在欧洲某国
就发生过这样的事,有个系统工程师下载了某
CA
的程序,成功地进行了破译。现在,为了
提高系统的安全性,人们
p>
普遍采用了软硬结合的方法,把核心的算法和密钥都放在保密性相
对较好的专用
IC
卡里,
使破密者无法
打开
IC
卡里
的内部程序,从而保护核心机密。所以考察安全性的另一个要素,就是要判断厂商提供的
IC
卡是否足够安全,是否
有国际
国内的相应标准能够认证其安全等级。如果
IC
卡本身不够安全
,那么
CA
再强大也
无济于事。另外,
IC
卡必须
是专用卡,绝不能将在其他领域通用的卡用作数字电视
IC
卡,
以免破密者因可以轻易获得
所需的卡而大大增加破密
的机会。
MAP
< br>前几节谈了不少反汇编的方法,
通过反汇编可以阅读程序,
了解不少程序的原理,
这种方法
对于得到目标代码的情
形,是十分直接和有用的方法,但对于
MA
P
功能,却无能为力,因为
MAP
程序
的代码无
法得到!
对于
MAP
功能的分析,只有通过不断调用
MAP
的某个功能,用不同的输入数据喂给它,
观察它的输出从而判读出
p>
MAP
完
成的是何种操作。
由于
MAP
协处理器在
ROM
卡
的内部,因此要实现不断测试
MAP
功能的操作,需要特殊
p>
的方法:
1.
需要编写一段特殊的类似
“
Trojon Horse(
木马
)
”
的程序(行
内称为
“
MAPLogger
”
)
,该
程序的功能是在
EEPROM
中纪录
MAP
执行前
ROM
卡有关内存的数据,然后调用<
/p>
MAP
功能,执行后在
EEPROM
p>
中纪录
MAP
调用后
ROM
卡有关内存
的数据;
2.
修改
ROM
卡
EEPROM
中的部分程序,用
MAPLogger
的调用
取代原先
MAP
的调用,
让
MAPLogger
程序起作用;
3.
将特定的
EMM
发送给
ROM
卡,让它执行
E
MM
中的程序,触发引起调用特定的
MAP
Call,
这时,我们埋伏在其中的
MAPLogger
会起作用,纪录下我们希望看到的数据;<
/p>
4.
将
RO
M
卡的
EEPROM
区读出,取出
p>
MAPLogger
纪录的数据,供分析和研究。
这种嵌
入
-logging
的方法是
hank
er
们研究的常用手段。
对于
ROM
卡,需要的工具与软件有:
写卡器,写卡器的晶振频率应当为
3
.38MHZ
。
图解:
写卡器的作用是配合
XX
和
XX
软件,完成
:往
ROM10
卡中写入
*.BIN<
/p>
文件,发
送
或
其他信息;从
ROM10
卡的
EEPROM
中读出纪录的信息。
<
/p>
MAPLogger
程序由某个高手编写成功,又经其他高手反汇
编后加上注释,列出如下,供参
考:
(对特定读者,略)
MAPLogger
的嵌入与使用方法如下
:
例如,我们想了解
EMM
解
Key
中用到的
M
AP-$$28
功能,我们可以先找到有关的程序:
然后,将:
jsr $$90E3
机器码为:
CD90 E3
改为:
jsr $$c702
机器码为:
CD C7 02
即,将
CE4A
地址处的
CD 90
E3
改为:
CD 07
02
就可以了。
这个工作要直接针对
*.BIN
文件修改,最好要有编程器,调入原来的
*.BIN
文件,查找定
位到要修改的地方,直接
将
十六进制数改到缓冲区中,存盘后就得到了嵌入
MAPLogger
的
*.bin
文件。
第一章:
CA
智能卡的破解与反制
第二章:流行
CA
系统的漏洞分析实践
第三章:流
行
CA
应用算法的破解分析设想
破解讨论综述
CA
安全保障的三层关键:传输流的加扰,控制字的加密,加密体制的保护。
这三种技术是
CA
系统重要的组成部分,在处理技术上有相似之处,但在
CA
系统
标准中是
独立性很强的三个部分。
加解扰技术被用来在发送端<
/p>
CA
系统的控制下改变或控制被传送的
服
务(节目)的某些特征,
使未被授权的用户无法获取该服务提供的利益;而加密技术被用
来在发送端提供一个加密信息,使被授权的用户端解扰器能以此来对数据解密
;
而保密机制
则用于控制该信息,
并以加密形式配置在传输流信息中以防止非授权用户直接利用该信息进
行解扰,
不同的
CA
系统管理和传送该信息的机
制有很大不同。
在目前各标准组织提出的条
件接收标准中,
p>
加扰部分往往力求统一,
而在加密部分和保密机制则一般不作具体规
定,
是
由各厂商定义的部分。
1
、对传输流的加扰,
DVB
已有标准。目前在国际上占主流的有欧洲的
DVB
标准
、北美国
家的
ATSC
标准及日本的<
/p>
ISDB
标准三种标准中,对于
CA
p>
部分都作了简单的规定,并提
出了三种不同的加扰方式。欧洲
DVB
组织提出了一种称之为通用加扰算法(
Common
Scrambling
Algorithm<
/p>
)的加扰方式,由
DVB
组织的四家成员
公司授权,
ATSC
组织使
用了通用的
三迭
DES
算法,而日本使用了松下公司提出的一种加扰算法。
通用加扰算法是
DVB
标准组织推荐的对于
TS
流的标准加扰算法。目前,在欧洲的数字广播节目中普遍采
用了这个算法。我国目前商业化的
CA
中,
TS
节目的加扰也基本上是采用的这个算法。如
果从破
解的角度,攻破这个算法的意义要远远大于破解智能卡和攻破
CA
系统本身。
2
、
< br>对控制字的加密算法一般采用
RSA
以及
3DES
算法,
各家
CA
p>
厂商各不相同。
值得一提
的是
DVB
里有一个规定,提到的同密技术要求每个
CA
系统可以使用不同的加密系统加密
各自的相关信息,
但对节目内容的加扰必须采用同一个加扰算法和加扰控制字,
可以方便多<
/p>
级运营商的管理,
为多级运营商选择条件接收系统提供了灵活性。
这就为黑客攻破智能卡创
造了条件。
3
、对加密体制,不同厂家的系统差别很大,其技术大体有两种
:
一种是以爱迪德系统为代
表的密码
循环体制,另一种是以
NDS
系统为代表的利用专有算法来进行
保护,由于牵涉到
系统安全性,厂家一般不会公开。因此从破解角度,对系统的破解是难
度也是比较大的。
第一章:
CA
p>
智能卡的破解与反制
第一节
对于
CA
智能卡的破解分为两种,
1
p>
、从硬件破解的角度,完全地仿照正版卡来定制
IC
卡;
2
、
从软件
破解的方向,将正版卡的程序读出,最后将程序写入
IC
卡中,
就变成与正卡无
差别的
D
卡了。
仿制正版卡,可以将
IC
< br>卡的触点剥离下来,再将保护的塑料蚀掉,暴露出元件和内部电路
连接,就可以绘
制成电原理图,最后交给能订制生产的
IC
卡的厂家生产。这些
仿制还有一
个冠冕堂皇的名称叫
“
反向
工程
”
。国内在深圳和厦门等地都有能生产定制
IC
卡的厂家,在
利益的驱使下,他们往往不会过问敏
感问题。
IC
卡中的元件如果是通用
元件,通常可以通过
IC
卡的功能原理的分析来确定,虽然困难
,
但总是可以最终确定。
例如深圳目前直接使用流在市面上的<
/p>
ROM10
与
ROM11
卡来制成
D
卡,
ROM10<
/p>
与
ROM11
实际上是
< br>XX
系统正版卡的
“
基础卡
p>
”
,这些卡具有与正版卡相同的
硬件基础,
至于怎么流落到社会上的不得而知,
但有一个事实就是大家应该
都收到过安装卫
星电视的短信,这是个可以想象的到的异常庞大的地下产业!
继续:
IC
卡中的元件
如果是专用元件,确定元件的事情就变得极其困难和十分渺茫了。那
么这个时候硬件仿制
的路走不通了,那么看看软件仿真的路能不能走得通。
再看软
件仿真的路能不能走得通前,首先阐明软件仿真的路能不能走得通有不同的判断标
准。<
/p>
如果仅以在一段时段中,软件仿真的
D
卡与正版卡都具有相同的条件收视功能来判断,那
-
-
-
-
-
-
-
-
-
上一篇:广播电视概论50个知识点--打印版
下一篇:校园电视节目策划书