收藏 分享(赏)

椭圆曲线加密分析:FLEXLM ECC问答.doc

上传人:dreamzhangning 文档编号:2292459 上传时间:2018-09-09 格式:DOC 页数:50 大小:160.50KB
下载 相关 举报
椭圆曲线加密分析:FLEXLM ECC问答.doc_第1页
第1页 / 共50页
椭圆曲线加密分析:FLEXLM ECC问答.doc_第2页
第2页 / 共50页
椭圆曲线加密分析:FLEXLM ECC问答.doc_第3页
第3页 / 共50页
椭圆曲线加密分析:FLEXLM ECC问答.doc_第4页
第4页 / 共50页
椭圆曲线加密分析:FLEXLM ECC问答.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、标 题: 【原创】椭圆曲线加密分析:FLEXLM ECC 问答7 月 16 日更新到第 7 部分作 者: readyu时 间: 2012-06-25,19:00:18链 接: http:/ ECCTool 用于学习和研究椭圆曲线加密在软件上的应用。椭圆曲线密码学工具 ECCTooL v1.04原帖年代久远不再更新。v1.05 版本我放在本帖 3#。FLexLM ECC 是椭圆曲线签名的一个典型应用,不可不察。我整理了一下 FLEXLM ECC 方面的研究心得, 准备把它完全写出来。后面会有算法描述的例子代码。FLEXLM ECC 问答 (1)readyu 2012.61. FLEXLM 是个虾

2、米东西?FLEXlm 是应用广泛的 License 管理工具。宣称数千家 EDA 工具采用它管理授权。FLEXlm 对厂商来说,它的优点是证书管理功能强大, 支持平台众多。对最终用户来说,它的缺点是不够友好, 比如 Windows 下,经常由于某些原因,flexlm 服务启动错误。对于破解者来说,它有着为数众多的教本。维基百科上的条目为:http:/en.wikipedia.org/wiki/FLEXlmFLEXLM 本来属于 GLOBEtrotter。Macrovision 曾经收购 GLOBEtrotter。2006 年的时候,FLEXLM 原来的开发组跑路,另起灶头,产品叫 RLM。ht

3、tp:/ 年 Macrovision 把 FLEXLM 卖了。现在叫 FlexNet Publisher。http:/ FLexLM 的 ECC(椭圆曲线加密)怎么来的?早期的 flexlm 采用的常规加密,不安全,能被做出 lic。这样的教程是很多的。flexlm 的安全性完全得不到保障,所以,自 v8(大约 2001-2002)版本引入了公钥加密算法:椭圆曲线加密。从此,它一直是 flexlm 的金钟罩。包括 v9(2003-) , v10(2004-) , v11(2007-), 到最新的版本v11.10 (2012) 。FlexLm 的 ECC 没有它自己的东西,完全采购自椭圆曲线加密

4、系统的专利拥有者:Certicom 公司。换而言之, flexlm ecc 是购买自 certicom 的一套代码,相当于在腐朽的木门上套一层黄金甲。OK, 从此它是不破金身了。3. Certicom 公司是何方神圣?RSA 和 ECC 是两大主流的公钥密码算法体系。相比 RSA,ECC 晚出生 10 多年,推广不如前者。Certicom 公司是 ECC 的主要商业支持者,它拥有多项专利。其地位可与 RSA 公司匹敌(RSA 于 2006 年被EMC 公司收购)。有一则消息说,2003 年美国国家安全局(NSA)以 2500 万美元支付了 Certicom 的 26 项技术许可。另外有一则消息

5、, Certicom 2007 年起诉索尼公司,要求其支付 PS3,DVD 播放器等涉及加密技术侵权的专利费用。Certicom 的创办人 Scott Vanstone,是加拿大滑铁卢大学的数学系教授和皇家科学院院士。以前是研究椭圆曲线加密的,后来创办 Certicom 公司,努力把 ECC 从数学界推广到工业界。Scott 写过一本椭圆曲线密码学导论, 颇有名气。4. FLEXLM 如何用的 ECC?说来话长。一句话说:FLexLM 在 license 验证上,主要用的 ECDSA(椭圆曲线数字签名算法)。具体的讲: flexlm 针对 ECDSA 有一些自己定义的东西以抵抗破解。 后面我会

6、说到,这些自定义的东西也不是那么牢固。5. FLEXLM ECC 的通用破解方法?FLEXLM ECC 的通用破解方法就是:完全按照它的 ECDSA 算法签名, 只替换公钥和 checksum, 写一个 keygen 生成 license。从逻辑上讲,生成 license 的方法和原厂的完全一致。具体该怎么做呢:首先, 实现标准的 ECDSA 签名算法。椭圆曲线的具体算法,可以用现成的 miracl,cryptopp 等加密库代码。 只需要搞清楚 ECDSA 的使用方法就可以。从早期版本 v9.2 (2004) , 到最新版本 v11.10 (2012) 。它的 ecc 公钥都是有 check

7、sum 的。替换公钥,首先得搞清楚 checksum。它只有一个函数,不算复杂,后面我会给出代码。计算这个 checksum, 对所有版本都是适合的。其次, 公钥在文件里是加密打散的,有大量垃圾代码。这些干扰使得 flexlm 可读性很差。获取公钥需要调试。在我写 SlickEdit 的 patch keygen,我曾经采用调试的方法,非常不方便。那么,有没有更方便的方法获取公钥呢?ECC 验证代码在它执行过程中有其自身的特点。正如游戏辅助工具可以搜索血量,我们也可以写一个辅助工具从内存中获取公钥。在很多次研究之后,我找出一个通用的方法。不需要再拘泥于具体的代码,可以 dump 出公钥 ,然后

8、用ecctool 生成自己的公私钥对,替换公钥,然后可以就写 keygen。由此写了一个工具,对 windows 平台可直接操作。 对其它平台,把内存镜像出来操作即可。对于非 Windows 平台,可以在 VMware 里面操作,制作一份 snapshot,得到内存镜像。算法上经过多次优化和排除错误数据,从 2GB 的内存镜像里找出正确的公钥,平均只需要 6 秒钟。我对它的性能非常满意了。总算是磨刀不误砍柴工。所以,对于纯粹采用 flexlm ecc sign 的 license,是可以做出通用的 patch_keygen 的,不需要去考虑它有没有反调试,也不用管具体的细节。只要 dump 公

9、钥, 替换公钥和 checksum, 写 patch_keygen 就可以了。6. 研究 flexlm 主要需要哪些资料?flexlm 相对来说资源丰富,基本上每个版本的 sdk 都有泄漏。如果想深入研究 flexlm 的加密算法,flexlm sdk 是必需的。写 kg 是必须要读 sdk 的,值得注意的是 v9.2 sdk sourcecode 泄漏。这个网上可搜索到。sdk 有一部分是 c 代码,里面最有用的是 l_prikey.c, 这里有 ECDSA 验证的函数。这个文件的尾部有 300 行 comments,其中有一封 email 很值得一读。ECC 核心库没有源文件,只有 lib

10、 文件。在 certicom 目录下的 lib 里面,主要为 libsb.lib 等(Certicom 的加密库:Security Builder)。lib 是混淆过了的,但是不影响 ida 反编译,只是不便于做 sig 文件。主要依靠人脑识别函数,需要经验和时间。7. flexlm 的 key 加密强度有哪些?以 flexlm sdk v9 为例,用宏定义表示 LM_SIGN_LEVEL。#define LM_SIGN2 2 /* SIGN2= */#define LM_SIGN 1 /* SIGN= the default */#define LM_NO_SIGN 0 /* license

11、 key */v9 以后,默认就采用 ECC PUBKEY 加密。SIGN 支持 ECC,所以大部分情况下用 SIGN 比较多,有些用 SIGN2。LM_NO_SIGN 是传统的 license key, 强度最弱,不建议使用。ECC PUBKEY 只有 3 种类别, 113, 163, 239 bits。对应的 sign 长度(字符数) , 字节为( bits + 7 )/8 字节数 , 打印出来,用 hex digits 表示,ECC 的 SIGN 长度分别是一对 30,42,60 0-9,A-F。采用 ECC 的,pubkey_strength 必须定义为下面的一个类别,否则 l_pub

12、key_verify 会出错:LM_STRENGTH_113BIT,LM_STRENGTH_163BIT,LM_STRENGTH_239BIT。#define LM_STRENGTH_LICENSE_KEY 0#define LM_STRENGTH_DEFAULT 1#define LM_STRENGTH_113BIT 2#define LM_STRENGTH_163BIT 3#define LM_STRENGTH_239BIT 4#define LM_STRENGTH_PUBKEY LM_STRENGTH_113BIT#define LM_STRENGTH_VERYHIGH LM_STREN

13、GTH_239BIT在 l_pubkey_verify 有这么一段初始化代码, 判断 pubkey_strength。代码:switch(pubkey_strength)case LM_STRENGTH_LICENSE_KEY: return 0;case LM_STRENGTH_113BIT: ellipticCurve = break;case LM_STRENGTH_163BIT: ellipticCurve = break;case LM_STRENGTH_239BIT: ellipticCurve = break;default:fprintf(stderr, “LM_STRENGT

14、H in lm_code.h has invalid value %dn“, pubkey_strength);fprintf(stderr, “Use only LM_STRENGTH_113|163|239BIT, LM_STRENGTH_DEFAULT, OR LM_STRENGTH_LICENSE_KEY, exitingn“);exit(1);下面,演示 113, 163, 239 bits 的 ECDSA 签名一段最简单的文本,msg: “123“sha hash:40BD001563085FC35165329EA1FF5C5ECBDBBEEF#define LM_SEED1 0x

15、47d381a0#define LM_SEED2 0x4fadf97c#define LM_SEED3 0xc4ae244cl_genkeys: seed3=A081D3477CF9AD4F4C24AEC4LM_PUBKEY_CURVE113BITprvlen=15, prv=00CFDF0247BF6EC0C8D1AA16DD505Fpublen=16, pub=0301523DD4646BB65FE4238B8AB44D01 l_prikey_sign_dbg start signing “123“hash=40BD001563085FC35165329EA1FF5C5ECBDBBEEF

16、l_prikey_sign_dbg done siglen=30sig.r=0048D5DD2A57B1A1B357E98C193E63sig.s=000A6FFDF76899F05ABFD2EDD9E065LM_PUBKEY_CURVE163BITprvlen=21, prv=03DC603CB1683D43FF5631BBEEC5396D7BD4067300publen=22, pub=0300368FE93082E1ACDD35222AD76782DBA8237B66EC l_prikey_sign_dbg start signing “123“hash=40BD001563085FC3

17、5165329EA1FF5C5ECBDBBEEF l_prikey_sign_dbg done siglen=42sig.r=039283F2FEA664BE7628F89BBA9D014E89E3868D2Csig.s=017DA34A68C3FC64CB6EBE2B13676B04BE97EB5C20LM_PUBKEY_CURVE239BITprvlen=30, prv=13C0E251A5130072A8D2D953EB2C94FAD487C0141B3197863BCC115D7B7Epublen=31, pub=035875A53B693A2861837E08FC6A7C58529D

18、F52B565111C3DF55F18E34C9FA l_prikey_sign_dbg start signing “123“hash=40BD001563085FC35165329EA1FF5C5ECBDBBEEF l_prikey_sign_dbg done inputlen=3, input=123siglen=60sig.r=1589FCFE91F988D28F7072DBF129424F0D71FA5E7AAC39258F3C408A656Asig.s=0B50642E8ED77FC6A1E6F805CFA0299F44BC7B8035FE17142812B79EA576sig.r

19、 sig.s 组成一个完整的 SIGN, 输出 lic 的时候,为了可读性, 一般切分为 16 bit 的分组(4 个 hex char)。比如:sig.r=038B9BE995B887B2665C02940C00155DD557C278AC95EADC1BD668DF185Bsig.s=1C50F25E81044E4DD9AD072699AAB4A63F4C99249AC8C091F476A6C73682转化为:SIGN=“ 038B9BE995B887B2665C02940C00155DD557C278AC95EADC1BD668DF185B1C50F25E81044E4DD9AD0726

20、99AAB4A63F4C99249AC8C091F476A6C73682”或者:SIGN=“038B 9BE9 95B8 87B2 665C 0294 0C00 155D D557 C278 AC95 EADC 1BD6 68DF 185B 1C50 F25E 8104 4E4D D9AD 0726 99AA B4A6 3F4C 9924 9AC8 C091 F476 A6C7 3682“对 flexlm 的程序来说,是没有差别的。 都能处理。8. flexlm 用到的椭圆曲线有哪些?flexlm 用到三条椭圆曲线,都是有来历的, 名字分别为 sect113r1, sect163k1, sec

21、t239k1。具体参数可以参看:http:/en.wikipedia.org/wiki/SECGSEC 2: Recommended Elliptic Curve Domain Parameters (Version 2.0)在 flexlm lib 里面, 它是写死的静态变量。位置在certicomlibcrvs.lib保存为 3 个结构体:struct ellipticCurveParameters sect113r1struct ellipticCurveParameters ec163a02struct ellipticCurveParameters ec239a03头文件在ertic

22、omi86_n3includecurves.h代码:/*= Curves Definitions =* sect113r1 (K-163 NIST), ec163a02 (SEC2, sect163k1) , ec239a03 (sec2, sect239k1)*/#define LM_PUBKEY_CURVE113BIT sect113r1#define LM_PUBKEY_CURVE163BIT ec163a02#define LM_PUBKEY_CURVE239BIT ec239a03#define MAXIM_OID_CHARS 31 struct ellipticCurveParam

23、eters #pragma pack(4)unsigned char oid MAXIM_OID_CHARS + 1 ;struct unsigned char major 1 ;unsigned char minor 1 ; version;unsigned char checksum 4 ;unsigned char fieldSize 2 ; /* bits */unsigned char fieldSizeOctets 1 ; /* octets */unsigned char basisType 1 ;unsigned char modulus 32 ;const unsigned

24、char *ident1;const unsigned char *ident2;struct unsigned char a 32 ;unsigned char b 32 ; curveParameter;struct unsigned char value 64 ; generatingPoint;struct unsigned char size 2 ; /* bits */unsigned char value 32 ; pointOrder;struct unsigned char size 2 ; /* bits */unsigned char value 32 ; cofacto

25、r;struct unsigned char size 2 ; /* bits */unsigned char value 32 ; curveOrder;#pragma pack(2)struct unsigned char A 32 ;unsigned char B 32 ; reserved; ;9. flexlm ecc ellipticCurveParameters 结构体中 checksum 的怎么计算的?ellipticCurveParameters 带有 4 字节 checksum,每次初始化 ECC 计算时,都会校验 checksum。一方面为了避错, 另一方面为了反对篡改。

26、修改其中的公钥,必须重新计算 checksum。从 libsb.lib 里面分析反汇编代码, 逆向为 c 代码,经测试无误的代码:代码:int checksum(unsigned int len, void *src , int *val)unsigned int i;unsigned int h;unsigned int c;unsigned char *p = (unsigned char *)src;if(p = 0) | (val = 0) | (len = 0)return 1;i = 0;c = *val;while(i 24);c i+;*val = c;return 0;uns

27、igned int getbits(unsigned char *p, unsigned int len)unsigned int val;val = 0;while(len -) val 3);int do_ecp_checksum(struct ellipticCurveParameters *e, int *sum1, int*sum2)unsigned int val = getbytes(e-fieldSize, 2);unsigned int bytes = val;unsigned char *p = (unsigned char *)e;#if 1checksum(sizeof

28、(e-oid), checksum(sizeof(e-version.major), checksum(sizeof(e-version.minor), checksum(sizeof(e-fieldSize), checksum(sizeof(e-fieldSizeOctets), checksum(sizeof(e-basisType), #endifchecksum(32u, p, sum1);checksum(1u, p + 32, sum1);checksum(1u, p + 33, sum1);checksum(2u, p + 38, sum1);checksum(1u, p +

29、40, sum1);checksum(1u, p + 41, sum1);#if 1 checksum(bytes, checksum(bytes, checksum(bytes, checksum(2 * bytes, #endifchecksum(val, p + 42, sum1);checksum(val, p + 84, sum1);checksum(val, p + 116, sum1);checksum(2 * val, p + 148, sum1);#if 1checksum(2, checksum(getbytes(e-pointOrder.size, 2), checksu

30、m(2, checksum(getbytes(e-cofactor.size, 2), checksum(2, checksum(getbytes(e-curveOrder.size, 2), checksum(bytes, checksum(bytes, #endifchecksum(2u, p + 212, sum1);checksum(getbytes(e-pointOrder.size, 2), p + 214, sum1);checksum(2u, p + 246, sum1);checksum(getbytes(e-cofactor.size, 2), p + 248, sum1)

31、;checksum(2u, p + 280, sum1);checksum(getbytes(e-curveOrder.size, 2), p + 282, sum1);checksum(val, p + 314, sum1);checksum(val, p + 346, sum1);return val;10. flexlm ecc 三条椭圆曲线的参数?flexlm 采用 GF(2m)椭圆曲线。这三条椭圆曲线, 在 openssl 也有描述的。在 certicomlibcrvs.lib 是纯数据保存。openssl 描述:代码:EcRecommendedParameters(ASN1:sec

32、t113r1(),113, 9, 0,A/a2 = “003088250CA6E7C7FE649CE85820F7“,B/a6 = “00E8BEE4D3E2260744188BE0E9C723“,“04009D73616F35F4AB1407D73562C10F00A52830277958EE84D1315ED31886“,“0100000000000000D9CCEC8A39E56F“,2),EcRecommendedParameters(ASN1:sect239k1(), 239, 158, 0,“000000000000000000000000000000000000000000000

33、000000000000000“,“000000000000000000000000000000000000000000000000000000000001“,“0429A0B6A887A983E9730988A68727A8B2D126C44CC2CC7B2A6555193035DC76310804F12E549BDB011C103089E73510ACB275FC312A5DC6B76553F0CA“,“2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5“,4),EcRecommendedParameters(ASN1:

34、sect163k1(), 163, 7, 6, 3, 0,“000000000000000000000000000000000000000001“,“000000000000000000000000000000000000000001“,“0402FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE80289070FB05D38FF58321F2E800536D538CCDAA3D9“,“04000000000000000000020108A2E0CC0D99F8A5EF“,2),flexlm sdkcerticomlibcrvs.lib 内存 dump, check

35、sum 只需要签名 378 bytes 的结构体。为了调试和区分的方便, 我在尾部增加了标志:E C 1 1 , E C 1 6 , E C 2 3 , 分别表示 ecc 113, 163, 239 bits。代码:unsigned char ec113384 = 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

36、 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x43, 0x8E, 0x10, 0x00, 0x71, 0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xCB,

37、 0x46, 0x00, 0xF0, 0xCA, 0x46, 0x00, 0x00, 0x30, 0x88, 0x25, 0x0C, 0xA6, 0xE7, 0xC7, 0xFE, 0x64, 0x9C, 0xE8, 0x58, 0x20, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xBE, 0xE4, 0xD3, 0xE2, 0x26, 0x07, 0x44, 0x18, 0x8B, 0xE0,

38、 0xE9, 0xC7, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x73, 0x61, 0x6F, 0x35, 0xF4, 0xAB, 0x14, 0x07, 0xD7, 0x35, 0x62, 0xC1, 0x0F, 0x00, 0xA5, 0x28, 0x30, 0x27, 0x79, 0x58, 0xEE, 0x84, 0xD1, 0x31, 0x5E, 0xD3, 0x18, 0x86,

39、 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xCC, 0xEC, 0x8A, 0x39, 0xE5,

40、 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

41、 0x00, 0x00, 0x00, 0x72, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xB3, 0x99, 0xD9, 0x14, 0x73, 0xCA, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

42、 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

43、 0x00, 0x00, E, C, 1, 1;unsigned char ec163384 = 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07, 0x48, 0x77, 0x70, 0x00, 0xA3, 0x15, 0x05,

44、 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xD4, 0x4D, 0x00, 0x00, 0xD3, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

45、 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,

46、 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFE, 0x13, 0xC0, 0x53, 0x7B, 0xBC, 0x11, 0xAC, 0xAA, 0x07, 0xD7, 0x93, 0xDE, 0x4E, 0x6D, 0x5E, 0x5C, 0x94, 0xEE, 0xE8, 0x02, 0x89, 0x07, 0x0F, 0xB0, 0x5D, 0x38, 0xFF, 0x58, 0x32, 0x1F, 0x2E, 0x80, 0x05, 0x36, 0xD5, 0x38, 0xCC, 0xDA, 0xA3, 0xD9, 0x00, 0x00,

47、 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x08, 0xA2, 0xE0, 0xCC, 0x0D, 0x99, 0xF8, 0xA5, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

48、 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x11, 0x45, 0xC1, 0x98, 0x1B, 0x33, 0xF1, 0x4B, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报