当前位置:文档之家› 基于QQ的DB文件格式解析

基于QQ的DB文件格式解析

基于QQ的DB文件格式解析
基于QQ的DB文件格式解析

基于QQ的DB文件格式解析

摘要QQ作为国内主流的在线即时通讯软件,已经成为当今人们的重要通讯手段之一。由于QQ用户规模巨大,很多不法分子便自然的以QQ作为媒介来进行违法犯罪活动。针对通过QQ进行的网络犯罪,QQ客户端的数据文件便成为调查取证的重要对象。而其首要条件就是要对QQ客户端的数据文件进行格式解析。本文对DB数据文件格式进行了解析,能够实现查看和导出本地所有QQ 的聊天记录,从而为证据信息的取得提供了重要手段。

关键词QQ Blowfish算法聊天记录MsgEx.db

QQ DB File Format Analysis

Abstract QQ is the domestic mainstream online immediate communication software, it become one of people’s important communication methods. As the large size of QQ users, a great many of lawless man carry out illegal criminal activities by QQ. In allusion to the crime of networks which carrys on by QQ, The data file in the QQ client become important to the evidence collection. Then, the first thing what we should do is analysis the QQ data file format. The article expound how to analysis the DB file format, and dump all the local QQ record on chat message in the form of text documents, which provide a important means to collect evidence.

Key Words QQ Blowfish arithmetic Chat Record MsgEx.db

目录

引言 (1)

第一章QQ及其DB数据文件的介绍 (2)

1.1 QQ简介 (2)

1.2 db格式文件的介绍 (3)

第二章Blowfish算法介绍 (9)

2.1 Blowfish算法的背景 (9)

2.2 Blowfish算法的特性 (9)

2.3 Blowfish算法的实现 (9)

第三章聊天记录的解析 (13)

3.1聊天记录的查看方法 (13)

3.2聊天记录的存储方式 (14)

3.3聊天记录的存储结构 (14)

3.4解析流程图 (15)

3.5解析的代码实现 (17)

3.5.1 读取QQ号码 (17)

3.5.2 访问MsgEx.db文档 (17)

3.5.3 访问Matrix.db (17)

3.5.4 获取消息加密密码 (20)

3.5.5 解密消息内容 (21)

3.5.6 导出消息内容 (22)

3.6程序运行效果 (23)

第四章总结与展望 (24)

致谢语 (25)

参考文献 (26)

引言基于QQ的DB文件格式解析

引言

在线即时通讯技术是高新网络通讯技术的一部分,通过即时通讯,你能方便的与来自世界的各地的网络用户进行交流沟通。即时通讯所具备简便、实时、快捷的特点使得它得以在社会生活的各个方面得以发展应用,如:商务、交友、娱乐、服务等。网络技术的进一步发展更促进了即时通讯技术与生活各层面的交融。

QQ作为国内主流的在线即时通讯软件,注册帐号数多达5.9亿,总活跃帐号数超过3亿,最高同时在线帐号数多达4000多万,QQ的用户数已经覆盖了我国网民的90%之多。如此庞大的用户规模,一旦有不法分子混入,而广大网民又疏于防范的情况下,就很容易出现网络诈骗横行的局面。针对通过QQ进行的网络犯罪,QQ客户端的数据文件便成为调查取证的重要对象。尤其是对本地聊天记录的取证极为重要,从中挖掘、捕获直接的犯罪信息成为调查取证的重要手段。

利用本地聊天记录进行取证,首要的任务就是要解析聊天记录的存放格式,将经过加密的二进制文件数据还原为可见的Txt文本文档格式。本文主要就QQ聊天记录存储格式DB 的数据文件格式进行了分析。

本文分为四个部分:

第一章:QQ及其DB数据文件的介绍

第二章:Blowfish算法介绍

第三章:聊天记录的解析

第四章:总结与展望

第一章QQ及其DB数据文件的介绍基于QQ的DB文件格式解析

第一章QQ及其DB数据文件的介绍

1.1QQ简介

QQ也就是OICQ,也叫做腾讯即时聊天工具。QQ以前也是模仿ICQ者,ICQ是面向国际的一个聊天工具,是I seek you(我找你)的意思。OICQ意为Opening I seek you,意思是“开放的ICQ”。到了2000年腾讯的OICQ占领了中国在线即时通讯90%以上的市场。这时候腾讯为避免AOL控诉其侵权的风险,腾讯做出了一个提前的自我保护的改变,OICQ正式更名为QQ。

软件特点:由于QQ在我国的普及率很高,这使得QQ的用户数量和易用性在同类软件中占有绝对的优势。此外,QQ聊天界面设计合理,用户操作十分简单。腾讯QQ支持在线聊天、即时传送视频、语音和文件等多种多样的功能。同时,QQ也可与移动通讯终端、IP电话网、无限寻呼等多种通讯方式相连,这使QQ不仅仅是单纯意义上的网络虚拟呼机,而更是一种方便、实用、高效的即时通讯工具。

其聊天界面如下:

第一章QQ及其DB数据文件的介绍基于QQ的DB文件格式解析

1.2db格式文件介绍

本地所有的QQ用户数据、聊天记录及其系统设置都存储在后缀名为db的数据文件中,文件大小不定。其db数据文件默认存放目录为X:\Program Files\Tencent\QQ\用户QQ号码。其中X代表盘符,默认为C盘。该目录下默认的db数据格式文件有:Config.db、notes.db、User.db、ShareInfo.db、ewh.db、MsgEx.db、CardMgr.db。如下图:

1.2.1Config.db

Config.db为QQ系统配置文件。

通过VC自带的工具DocFile Viewer对该文件进行查看有如下结构:

Config.db文件为QQ的系统配置重要文件,其记录的明文信息大致如下:

QQ系统声音配置,如下图:

QQ服务器地址,如下图:

QQ广告窗口信息,如下图:

QQ系统快速回复信息,如下图:

1.2.2notes.db

notes.db为QQ备忘录管理文件。

文件大小始终为3KB,内容被加密。初步理解为用来管理用户信息备忘录。

通过VC自带的工具DocFile Viewer对该文件进行查看有如下结构:

1.2.3ShareInfo.db

ShareInfo.db为QQ共享信息设置文件。

ShareInfo.db文件记录了好友的共享网络硬盘的相关设置信息,包含浏览共享文件、共享文件列表、下载共享文件等信息。

DocFile Viewer对该文件进行查看有如下结构:

1.2.4User.db

User.db为QQ本地好友列表文件。

通过VC自带的工具DocFile Viewer对该文件进行查看有如下结构:

User.db文件为QQ本地存放用户好友分组等信息的文件。下面简单分析下User.db文件格式,取的串是User.db里某个QQ号码的信息。

User.db文件原始数据:

51 44 :"QD"数据段标志代表QQ Data;

01 01 :保留的数据结构;

58 00 :总数据段;

04:第一个数据段(简称1S,下同)的类型,可以从0x01到0x0F,04代表本数据没经过加密处理;

03 00 :1S标志的长度;

A9 B5 B2 :1S标志(例如AST、UIN、EWH等),是经过简单的异或并求反计算处理的;

04 00 00 00 :1S数据的长度;

9A 4D 1F 04 :1S数据,此处为QQ号码,即69160346 0x041F4D9A(高位在前);

06 :第二个数据段的类型(2S);

04 00 :2S标志的长度;

B5 BA B6 BE :2S标志,此处是昵称标志;

04 00 00 00 :2S数据长度;

35 25 35 29 :2S数据,昵称内容,已被加密;

2S数据加密的分析:

69160346,此号的昵称是“无我”,正常用UE打开显示为:CE DE CE D2 ;User.db显示为:35 25 35 29 ;

其转换过程与2S数据长度有关系,取第一个字节0x000035与0x0000FB(255-2S 数据长度=251)的值异或,得206 ,进行判断得数<160,则单字符值(单个可见字符的ASC<160),得值>160,表明应是2字节的字符,所以取0x00003525 与0x00FBFB异或,得到ASC码值52958换为16进制表示为0xCEDE,这便是昵称的第一个字符“无”。当然后面的 35 29 也是这样转,得到的就是字符“我”。

1.2.5ewh.db

ewh.db为QQ密码信息文件。

QQ密码在用户正确登陆后,会将加密的结果保存在用户目录的ewh.db文件中。该文件采用公开的MD5算法加密,通过N次循环以及异或后求反,然后将计算出的加密结果与用户的ewh.db文件中的密文比较后,发出“输入密码与上次成功登陆密码不一致,$0A是否到服务器验证?”(这条信息在BasicCtrlDll.dll(QQ的登陆控件)的资源中,$0A在C的格式化中为回车)。根据这个提示,就有可能完成本地QQ密码的破解。

ewh.db文件原始数据:

其中,红色为AST循环次数,蓝色为EWH加密字符串,绿色为QQ号码。

1.2.6MsgEx.db

MsgEx.db为QQ聊天记录文件。

MsgEx.db采用Storage结构化存储。通过VC自带的DocFile Viewer工具查看该文件的内容,能够看到文件结构大致如下:

其中C2CMsg为QQ好友聊天信息,SysMsg为QQ系统信息,DiscMsg为讨论组信息,GroupMsg为群组信息,MobileMsg为移动信息,TempSessionMsg 为临时会话信息。

QQ用户聊天记录内容都存储在QQ号码下面的Data.msj中,通过Index.msj 索引。消息内容是经过加密处理的,必须经过解密才能看到。消息内容采用Blowfish分组加密,每8个字节为一个分组。密钥Key通过QQ号码生成,具体算法下章讨论。

1.2.7CardMgr.db

对于使用TM的用户会产生这个文件,初步判断是保存好友名片信息的数据文件。

第二章Blowfish算法介绍

2.1Blowfish算法背景

Blowfish算法是1993年由Bruce Schneier提出的备选加密方法,它是一种强对称的分组密码,使用32位至448位可变长度密钥,应用内部加密或加密输出。自32位处理器诞生后,Blowfish高效、容易实现等优良性能得以体现,正越来越多的应用于电子商务、军事、安全通信等诸多领域,逐步取代了DES和IDEA 算法。

2.2Blowfish算法特性

2.2.1快速性

Blowfish在32位的微处理器上的加密速度达到每字节18个时钟周期。

2.2.2紧凑性

Blowfish能在容量小于5K的存储器中运行。

2.2.3简单性

Blowfish仅使用了一些简单运算:基于32位的加、异或和查表。它的设计容易分析,易于实现和判定算法强度。

2.2.4可变的安全性

通过选择不同的密钥长度选择不同的安全级别。Blowfish的密钥为32位至448位可变长度密钥,通过密钥扩展可把长度最多达448位的密钥转变成总共4168位的一些字密钥系列。

2.3Blowfish算法的实现

Blowfish算法是用来加密64Bit长度的字符串,Blowfish算法使用两个“盒”ungigned long pbox[18]和unsigned long sbox[4][256]。Blowfish算法中,有一个核心加密函数:BF_En,该函数输入64位信息,在运算后,以64位密文的

形式输出。用Blowfish算法加密信息,需要两个过程:

2.3.1密钥预处理

Blowfish算法的源密钥pbox和sbox是固定的。我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。具体的变化算法如下:

1)用sbox填充key_sbox

2)用自己选择的key8个一组地去异或pbox,用异或的结果填充key_pbox。key

可以循环使用。

比如说:选的key是"abcdefghijklmn"。则异或过程为:

k ey_pbox[0]=pbox[0]^abcdefgh

key_pbox[1]=pbox[1]^ijklmnab

…………

如此循环,直到key_pbox填充完毕。

3)用BF_En加密一个全0的64位信息,用输出的结果替换key_pbox[0]和

key_pbox[1],i=0。

4)用BF_En加密替换后的key_pbox[i]和key_pbox[i+1],用输出替代

key_pbox[i+2]和key_pbox[i+3]。

5)i+2,继续第4步,直到key_pbox全部被替换。

6)用key_pbox[16]和key_pbox[17]做首次输入(相当于上面的全0的输入),用

类似的方法,替换key_sbox信息加密。

2.3.2信息加密

信息加密就是用函数把待加密的信息X(设X为64位输入数据)进行加密。加密过程如下:

1)将待加密信息X分成32位的两部分:XL、XR。

2)函数BF_En对输入信息进行变换,详细变换过程如下:

其中函数F:把XL分为4个8位分组:a、b、c和d.

函数F定义如下:

3)恢复最后一轮XL和XR的交换:

4)对XL和XR进行异或处理:

5)重新合并XL和XR,重新合并后得到的结果就是我们需要的密文。

2.3.3信息解密

用Blowfish算法解密,需要经过密钥预处理和信息解密两个过程。

密钥预处理过程与信息加密过程的密钥预处理完全相同,信息解密过程就是把信息加密过程中的key_pbox逆序使用即可。要破解Blowfish算法,就是要得到Blowfish算的的Key。所以用Blowfish算法进行加密,最重要的也就是Key 的选择以及Key的保密。其中Key的选择可以使用bf_sdk中的_WeakKey函数进行检验。

_WeakKey函数原文说明:

译文如下:

_WeakKey

功能:测试产生的box是否安全

参数:无

返回:AX=1 不安全;AX=0安全

影响:AX, BX, CX, DX, SI, DI, 方向标志

描述:使用"_InitCrypt"函数产生用于加密的Boxes后,你应该用这个函数测试产生的Boxes是否安全。如果该key产生的Boxes不安全——可以被密码分析者通过分析Boxes得到key,那么,你应该采用另外一个key产生一个安全的Boxes 用来加密。

第三章聊天记录的解析

3.1聊天记录的查看方法

自从有了即时聊天软件,伴随来的就是各种聊天记录查看工具,当然前提是在不知道即时通讯软件登陆密码的情况下。相对与完全没有加密,隐藏的MSN 来说,QQ的聊天记录查看就显得复杂了一些.具体来说,主要有两种方法:

3.1.1hook方式

利用QQ程序在登陆过程中验证密码后才退出QQ界面的bug,使用钩子捕获QQ的登陆状态,在QQ程序提示密码错误的情况下马上进行拦截,使得QQ 程序滞留在登陆不成功又可操作状态下,随后即可调用QQ自带的消息管理器进行查看消息。

3.1.2解密方式

直接读取QQ的在本地消息记录文件,这种方式是对QQ的MsgEx.db文件格式进行解析。也就是说,通过第三方软件来实现QQ的消息管理器功能借以查看QQ聊天记录。

应该说两个方法各有优缺点,并且实现的技术也迥然不同。总的来说hook 方式界面是特别友好的,因为它直接使用了QQ的自身功能,但是这类程序大都捆绑了木马,使用起来安全性不高。此外Tencent对这种方式比较敏感,往往一个新的版本出来,原来的hook方式就没用了。解密方式最主要的特点是利用了消息密钥Key是通过QQ号码生成的来进行运算,如果使用了QQ的本地信息安全,即将本地聊天记录进行加密,那就没办法解密了。此外MsgEx.db中QQ消息的具体格式是未知的,往往无法完全还原聊天内容,如表情,图片,字体等就无法恢复。

3.2聊天记录存储方式

QQ聊天记录存放在MsgEx.db文档中,早期版本的聊天记录是保存在Msg.db 文档中,两个文档的结构并不相同。本文主要针对新版本QQ的聊天记录文件MsgEx.db进行分析。MsgEx.db文档的存储目录为:X:\Program Files\Tencent\QQ\用户QQ号码\。

3.3聊天记录存储结构

QQ聊天记录文件MsgEx.db采用IStorage结构化存储,对于此类复合文档可以通过VC自带的DocFile Viewer工具来查看该文档的内容及其结构:

从MsgEx.db的文档结构中,可以看到QQ分了若干消息类型,诸如好友消息C2CMsg、系统信息SysMsg、多人聊天消息DiscMsg、群组消息GroupMsg、移动QQ消息MobileMsg、临时会话消息TempSessionMsg,在每个类型的消息下都有Data.msj和Index.msj两个文件。聊天记录内容就存放在每个QQ号码下

的Data.msj中,Index.msj为一个索引文件,具体消息内容已经经过加密。消息的加密密码存放在Matrix.db中,提取出来之后就可以用来解密实际存放消息记录的Data.msj文件了。

3.4解析流程图

3.5解析的代码实现

3.5.1读取QQ号码

消息内容是通过Blowfish分组加密,每8个字节为一组。密钥Key则是通过QQ号码生成的。要解密聊天记录,需要MsgEx.db文件和对应用户的QQ号码。QQ号码可以通过MsgEx.db文件的存储路径信息来读取。

3.5.2访问MsgEx.db文档

MsgEx.db文档采用IStorage结构化存储,可以通过WIN API函数StgOpenStorage()打开它,得到它的根存储接口指针hr。由hr出发可以遍历整个MsgEx.db文档。代码实现如下:

3.5.3访问Matrix.db

1)取Matrix.db存储接口指针

消息的加密密码就存储在Matrix.db的数据中。要获得加密密码的密文就必须取得Matrix.db的数据,并对其进行解码。为取得Matrix.db

pe文件格式

PE文件格式详解(一)――基础知识 什么是PE文件格式: 我们知道所有文件都是一些连续(当然实际存储在磁盘上的时候不一定是连续的)的数据组织起来的,不同类型的文件肯定组织形式也各不相同;PE文件格式便是一种文件组织形式,它是32位Wind ow系统中的可执行文件EXE以及动态连接库文件DLL的组织形式。为什么我们双击一个EXE文件之后它就会被Window运行,而我们双击一个DOC文件就会被Word打开并显示其中的内容;这说明文件中肯定除了存在那些文件的主体内容(比如EXE文件中的代码,数据等,DOC文件中的文件内容等)之外还存在其他一些重要的信息。这些信息是给文件的使用者看的,比如说EXE文件的使用者就是Window,而DOC文件的使用者就是Word。Window可以根据这些信息知道把文件加载到地址空间的那个位置,知道从哪个地址开始执行;加载到内存后如何修正一些指令中的地址等等。那么PE文件中的这些重要信息都是由谁加入的呢?是由编译器和连接器完成的,针对不同的编译器和连接器通常会提供不同的选项让我们在编译和 联结生成PE文件的时候对其中的那些Window需要的信息进行设定;当然也可以按照默认的方式编译连接生成Window中默认的信息。例如:WindowNT默认的程序加载基址是0x40000;你可以在用VC连接生成EXE文件的时候使用选项更改这个地址值。在不同的操作系统中可执行文件的格式是不同的,比如在Linux上就有一种流行的ELF格式;当然它是由在Linux上的编译器和连接器生成的,

所以编译器、连接器是针对不同的CPU架构和不同的操作系统而涉及出来的。在嵌入式领域中我们经常提到交叉编译器一词,它的作用就是在一种平台下编译出能在另一个平台下运行的程序;例如,我们可以使用交叉编译器在跑Linux的X86机器上编译出能在Arm上运行的程序。 程序是如何运行起来的: 一个程序从编写出来到运行一共需要那些工具,他们都对程序作了些什么呢?里面都涉及哪些知识需要学习呢?先说工具:编辑器-》编译器-》连接器-》加载器;首先我们使用编辑器编辑源文件;然后使用编译器编译程目标文件OBJ,这里面涉及到编译原理的知识;连接器把OBJ文件和其他一些库文件和资源文件连接起来生成EXE文件,这里面涉及到不同的连接器的知识,连接器根据OS的需要生成EXE文件保存着磁盘上;当我们运行EXE文件的时候有W indow的加载器负责把EXE文件加载到线性地址空间,加载的时候便是根据上一节中说到的PE文件格式中的哪些重要信息。然后生成一个进程,如果进程中涉及到多个线程还要生成一个主线程;此后进程便开始运行;这里面涉及的东西很多,包括:PE文件格式的内容;内存管理(CPU内存管理的硬件环境以及在此基础上的OS内存管理方式);模块,进程,线程的知识;只有把这些都弄清楚之后才能比较清楚的了解这整个过程。下面就让我们先来学习PE文件格式吧。

南方Cass转MapGis数据格式

关于Cass图形转入MapGis系统的使用帮助 使用本软件转换与Mapgis直接转dxf有什么区别: 本软件转换结果符合MapGis制图规范,可以按照Cass代码和使用者的设定自动完成分点、线、注记分文件转换。 ①同样是折线软件可以根据Cass代码的不通转换出多个Mapgis的wl文件,比如地类界、行政界、线状地物。 ②保留cad的捕捉关系。 ③对每个Mapgis文件赋属性字段和属性数据以及添加默认的属性数据。 注:“数据转换平台”系统安装完成后,如果MapGis的安装目录不是“C:\mapgis65\program”,需要将“C:\mapgis65\program\明码转文件.exe”复制到MapGis安装目录的对应目录中。 转换步骤: 1. 按照Cass上图规定,完成Cass图的绘制。使用Cass6.1“-数据-生成交换文件-”菜单下的“生成交换文件”,保存交换文件。不要保存在桌面上,最好保存在一个单独文件夹内,在转换过程中会产生大量临时文件,以免影响使用。 Cass图必须使用正确的坐标系统。 2. 图形导出为dxf格式(因为cas文件坐标精度不够,需要使用dxf文件的坐标,也可仅将文件中的“多线段”和“直线”做块为dxf格式即可)。 3. 打开“数据处理平台”,使用“-南方Cass6.1-Cass to Mdb-”菜单,选择第1步生成的交换文件后,再选择转入*.Mdb按钮。

提示完成后,在*.Cas文件夹里边,生成同名的*.Mdb文件。4. 使用“-MapGis6.5-二调Cass图转MapGis-”菜单,选择第2步生成的*.Mdb文件,然后再点“转出为MapGis明码文件”。 转换过程中会提示进行Cass编码检查,将编码检查后的错误编码进行更正,也可忽略错误进行进行。错误的编码需要在南方Cass中进行返工。 5. 打开桌面的“明码转文件”,选择*.Cas文件存放目录,然后选择处理。 程序自动处理,直到完成。 6.在*.Cas文件夹内就生成了MapGis的*.wl、*.wt文件。 以上实现了南方Cass *.Cas文件到MapGis *.wl *.wt文件的转

elf文件格式

第1章文件格式 1.1 Executable and Linking Format (ELF) 1.1.1整体结构 ELF对象格式用于目标文件(.o扩展名)和执行文件. 有些信息只出现在目标文件或执行文件中. ELF文件由下列部件构成. ELF header必须放在文件的开始;其他部件可以随便排放(ELF header给出了其他部件的偏移量). 1.1.2ELF头[ELF Header] ELF头包含目标文件的一般信息;具有如下结构(from elf.h): #define EI_NIDENT 16 typedef struct { unsigned char e_ident[EI_NIDENT]; Elf32_Half e_e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; }; ELF头域描述:

1.1.3程序头[Program Header] 程序头为一结构数组,每个元素描述执行文件的一个可载入段. 元素结构如下(from elf.h): typedef struct { Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align; } Elf32_Phdr;

Mapgis明码文件格式详解

Mapgis明码文件格式详解 点文件结构 逻辑结构: 文件头点数 1号点 2号点…… 具体为: A、文件头,8个字节 WMAP9022 (老的文件为WMAP6022或WMAP7022和WMAP8022) B、点数 n C、1号点 x1 y1 ID type1 {点类型,类型不同,点信息也不同。点类型取值如下: 0 字符串 1 子图 2 圆 3 弧 4 图象 5 文本 } 点信息{点信息和点类型相对应} 当type=0时,点信息为: "字符串" 字符高度字符宽度字符间隔字符串角度中文字体西文字体字形水平(0)或垂直排列(1) 颜色图层透明输出 当type=1时,点信息为: 子图号子图高子图宽子图角度辅色颜色线宽图层透明输出 当type=2时,点信息为: 半径轮廓颜色线宽填充(1)或不填充(0)标志颜色图层透明输出 当type=3时,点信息为: 半径起始角度终止角度线宽颜色图层透明输出 当type=4时,点信息为: "图象文件名" 宽度高度角度颜色图层透明输出 当type=5时,点信息为: "文本字串" 字高字宽字间距角度中文字体西文字体字形行间距版面长版面宽水平(0)或垂直排列(1) 颜色图层透明输出 2号点 …… n号点 **************************************************************

区文件结构 区逻辑结构为: 文件头弧段数 1号弧段 2号弧段……最后弧段节点数 1号结点 2号结点……最后结点区数 1号区 2号区 ……最后区 具体为: A、文件头,8个字节 WMAP9023 (老的文件为WMAP6023或WMAP7023和WMAP8023) B、弧段数 an C、1号弧段 线型号辅助线型号线色线宽 X系数 Y系数辅助色图层透明输出 前节点号后节点号 {若没有指向任何节点,则为0} 左区号右区号 {若没有区号,则为0} 线点数m1 x1 y1 x2 y2 … xm1 ym1 ……… ID 线长度 an号弧段 线型号辅助线型号线色线宽 X系数 Y系数辅助色图层透明输出 前节点号后节点号 {若没有指向任何节点,则为0} 左区号右区号 {若没有区号,则为0} 线点数m an x1 y1 x2 y2 … xm an ym an ID 线长度 D、节点数 nn E、1号节点 x1 y1 节点弧段数k 弧段号1 弧段号2…弧段号k ……… nn号节点 xnn ynn 节点弧段数knn

第八章 MAPGIS数据输出

第八章MAPGIS数据输出 教学目的与要求 通过本章的学习,要求大家了解MAPGIS输出系统与文件转换系统,熟悉MAPGIS的输出方式和输出流程,掌握MAPGIS的输出方法;熟悉MAPGIS数据输入与输出接口,掌握AUTOCAD、ARCINFO、MAPGIS明码数据的转换方法。 教学重点 MAPGIS数据输出方法 MAPGIS文件转换方法 教学难点 MAPGIS文件转换方法 内容提要 8.1 MAPGIS图形输出 8.2 MAPGIS文件转换 8.1 MAPGIS图形输出 8.1.1 拼版设计 用创建工程或打开工程菜单创建或打开文件后,用编辑工程文件进行编辑。 插入项目 插入点、线、面文件 添加项目 添加点、线、面文件 删除项目 删除点、线、面文件 修改项目 修改点、线、面文件 设编辑项 输出编辑 对话框左边是页面信息,右可以置版面,中间可以选择输出方式,输出范围是第一限范围,如果图不在第一限范围,可通过位移参数移动到第一限,图的左下角坐标不能离原点太远,避免纸张浪费。

8.1.2 输出方式 WINDOWS输出 WINDOWS输出是利用WINDOWS的GDI,在各种打印,绘图仪上进行输出。打开一个*.MPJ工程后,可直接选择打印输出,它可以动打印备进行图形输出。 POSTSCRIPT输出 通用PS输出 不分色输出指黄、品、青、黑四种颜色的版面均描述在一个PS文件中,输出只产生一个PS文件。分色输出指每种颜色的版面均输出产生一个PS文件 AI EPS输出 AI EPS输出能输出符合Adobe Illustrator格式的EPS文件 方正PS文件 假如输出分色胶片的输出中心用的是北大方正的RIP,那么就选用方正PS格式输出能,输出中心的方正系统必须是方正93以上的彩色系统。 光栅输出 光栅输出是先对地图进行分色光栅化,形成分色光栅化后的栅格文件,用打印光栅文件能可以在HP系列和NOVJET系列的喷墨绘图仪上输出光栅文件。 8.1.3 输出流程

mapgis讲义2

第一讲 MAPGIS简介 一、几个术语 图层:按照一定的需要或标准把某些相关物体组合在一起。可以把图层理解为一张透明薄膜,每一层的图元在同一薄膜上,如水系力图层、铁路图层、地质界限图层、断层图层等。图层的分层有利于地图图元的管理,提高成图速度。 栅格图:即扫描的图像。 矢量图:即进行了数字化的图像,图中的每一个点都有相对的X和Y座标。 图元:图面上表示空间信息特征的基本单位,分为点、线(孤段)、多边形等三种类型。 点元:点图元的简称,有时称点。指其位置只有一组X和Y座标来控制。它包括字符串(注释)、子图(专用符号)等。所有点保存在点文件中(*.wt)结点:指某线或孤段的端点或数条线或孤段的交点。 结点平差:使几条线或孤段成为共用一个结点的过程 线图元:地图中线状物的总称。如划线、省界、国界、地质界线、断层、水系、公路等。所有线图元都保存在线文件中(*.wl) 区图元(面图元):由线或孤段组的封闭区域,可以以颜色和花纹图案填充。如湖泊、地层、岩体分布区等。所有区图元都保存在区文件中(*.wp)。 工程:对一系列的点、线、面文件进行管理的描述性文件。 二、MAPGIS几种主要文件类型及后缀 .wp 区(面)文件 .pnt 控制点文件 .wl 线文件 .wt 点文件 .tif 栅格文件 .rbm 光栅求反后文件 .mpj 工程文件 .cln 图例板文件

点文件(.wt):包括文字注记、符号等。即在输入时,文字和符号都存在点文件中。在机助制图时,文字注记称为注释(如各种标注等),符号称为子图(矿点符号,泉符号等)。 线文件(.wl):是由境界线、河流、航空线、海岸线等线状地物组成的图元。 面文件(.wp):将各个行政区进行普染色后,就得到了区文件。在理论上,区是封闭的线组成的区域,因此区是基于线生成的。 工程(.mpj):对一系列的点、线、面文件进行管理的描述性文件。其主要记录了各个文件的信息,如存放地、可编辑性等。(如何建立工程,见以后) 三、MAPGIS总体结构 MAPGIS总体结构如下图,其中框线圈中的部分是要学习的部分。

elf详解

ARM-ELF文件格式与GNU ARM Linker机制 作者:admin 日期:2008-10-13 字体大小: 小中大

里面除了二进制的机器代码,还有一些可用于进行重定位的信息。它主要是作为LINKER(ld)的输入,LINKER将跟据这些信息,将需要重定位的符号重定位,进而产生可执行的OBJECT 文件。ELF格式的可重定位OBJECT文件由header与section 组成。 Header 包括ELF header 与 section header. ELF header 位于文件的头部,用于存储目标机器的架构,大小端配置,ELF header 大小,object文件类型,section header 在文件中的偏移,section header 的大小,section header 中的项目数等信息。Section header 则定义了文件中每个section 的类型,位置,大小等信息。Linker就是通过查找ELF header,找到 section header 的入口,再在section header 中找到相应的section 入口,进而定位到目标section 的。 Section 包括 .text :经过编译的机器代码。 .rodata :只读的数据,例如printf(“hello!”)中的字符串hello。.data :已初始化的全局变量,局部变量将在运行时被存放在堆栈中,不会在.data或 .bss段中出现。 .bss :未初始化的全局变量,在这里只是一个占位符,在object 文件中并没有实际的存储空间。 .symtab :符号表,用于存放程序中被定义的或被引用到的全局变量和函数的信息。

elf文件资料格式(中文版)

3. 页标题的容和文章的页脚已经在开始的时候被换掉了。 4. 文章的排版也已经修正过了。 5. 如果必要,不同的字体已经被忽略了。大部分地方,这片文档能让你 充分的理解。然而,很小的地方,原始的文档使用了斜体字来指出文 章中的字符变量。在那种情况下,本文使用<尖括号>。在原始的文档 中没有出现尖括号。 6. 原始的文档有三个错误,如果你是不经意读它的话,是不会明显 就能找出的。但是在这里,明确的被鉴别出来了。 我很冒昧的纠正了那些错误。在他们的位置用一个{*}做上了标记。 可能还有其他我没有看出来的的错误。 如果有如何其他的区别都是我的责任。这样的错误请 mailto:breadboxmuppetlabs.. Brian Raiter [Last edited Fri Jul 23 1999] ________________________________________________________________ EXECUTABLE AND LINKABLE FORMAT (ELF) Portable Formats Specification, Version 1.1 Tool Interface Standards (TIS) ________________________________________________________________ =========================== Contents 容=========================== 序言 1. OBJECT文件 导言 ELF头(ELF Header) Sections String表(String Table) Symbol表(Symbol Table) 重定位(Relocation) 2. 程序装载与动态连接 导言 Program头(Program Header)

关于ELF文件格式

现代Linux采用ELF(Executable and Linking Format)做为其可连接和可执行文件的格式,因此ELF格式也向我们透出了一点Linux核内的情景,就像戏台维幕留下的一条未拉严的缝。 PC世界32仍是主流,但64位的脚步却已如此的逼近。如果你对Windows比较熟悉,本文还将时时把你带回到PE中,在它们的相似之处稍做比较。ELF文件以“ELF 头”开始,后面可选择的跟随着程序头和节头。地理学用等高线与等温线分别展示同一地区的地势和气候,程序头和节头则分别从加载与连接角度来描述EFL文件的组织方式。 ELF头 ------------------------------------------------ ELF头也叫ELF文件头,它位于文件中最开始的地方。 /usr/src/linux/include/linux/elf.h typedef struct elf32_hdr{ unsigned char e_ident[EI_NIDENT]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; /* Entry point */ Elf32_Off e_phoff;

Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; } Elf32_Ehdr; #define EI_NIDENT 16 ELF头中每个字段的含意如下: Elf32_Ehdr->e_ident[] (Magic) 这个字段是ELF头结构中的第一个字段,在elf.h中EI_NIDENT被定义为16,因此它占用16个字节。e_ident的前四个字节顺次应该是0x7f、 0x45、 0x4c、 0x46,也就是"\177ELF"。这是ELF文件的标志,任何一个ELF文件这四个字节都完全相同。 16进制 8进制字母 0x7f 0177 0x45 E 0x4c L

MapGis明码格式说明

点文件格式说明: 逻辑结构: 文件头点数1号点2号点…… 具体为: A、文件头,8个字节 WMAP9022 (老的文件为WMAP6022或WMAP7022和WMAP8022) B、点数n C、1号点 x1 y1 ID type1 {0字符串/1子图/2 圆/3弧/4 图象/5 文本} 点信息{点信息和点类型相对应} 当type=0时,点信息为: "字符串" 字符高度字符宽度字符间隔字符串角度中文字体 西文字体字形水平(0)或垂直排列(1) 颜色图层透明输出 当type=1时,点信息为: 子图号子图高子图宽子图角度辅色颜色线宽图层透明输出 当type=2时,点信息为: 半径轮廓颜色线宽填充(1)或不填充(0)标志颜色图层透明输出 当type=3时,点信息为: 半径起始角度终止角度线宽颜色图层透明输出 当type=4时,点信息为: "图象文件名" 宽度高度角度颜色图层透明输出 当type=5时,点信息为: "文本字串" 字高字宽字间距角度中文字体西文字体字形 行间距版面长版面宽水平(0)或垂直排列(1) 颜色图层透明输出 2号点 …… n号点 举例如下: WMAP9022 43 1.733216,1.328583,1,1,247, 2.000000,2.000000,0.000000,0,6,0.050000,0,0 15.597249,1.515934,2,1,247,2.000000,2.000000,0.000000,0,6,0.050000,0,0 30.210690,1.515934,3,1,247,2.000000,2.000000,0.000000,0,6,0.050000,0,0 …… 3.499549,1 4.453784,38,0,"木湖瓦窑",6.000000,6.000000,0.000000,0.000000,3,0,0,0,5,0,0 说明: (1)文件头为WMAP9022 (2)一号点信息为: 坐标1.733216,1.328583 ID:1 类型:1(子图)

MAPGIS

《GIS软件及其应用》课程考试大纲 MAPGIS部分 一、考试范围与考核要求 1、考试范围 MAPGIS基本概念,软件的特点、结构、用途及功能应用,主要的文件类型,GIS与通用数据库的区别;图形编辑系统的基本功能,点编辑、线编辑、区编辑的操作;拓扑处理工作流程、实用工具的功能与操作、对数据的要求;误差校正子系统功能、使用步骤、文件和显示操作、对图形及其参数进行校正;MAPGIS 系统和其它GIS系统间数据转换操作;标准图框和非标准图框的生成方法与操作、投影变换的类型;图形裁剪方式和操作;输出系统概述、输出拼版设计、输出系统的基本操作;属性库图形数据与属性数据挂接,属性数据导入和导出,地图库文件批量入库,地图无缝拼接;矢量数据空间分析的方法与步骤;DTM和DEM概念,相关模型的功能及其构建方法;网络分析种类,常用的路径分析、资源分配方法,电子沙盘概念及用途。 2、考核要求: (1)识记:基本概念、定义; (2)理解:基本理论与基本方法; (3)综合应用:要求掌握地理信息系统的基础理论与研究方法,并熟练运用MAPGIS软件分析问题和解决问题。 二、考试形式与试卷结构 1、考试形式:闭卷,笔试+机试,考试时间为120分钟,试卷满分为100分。 2、试卷结构: (l)内容结构:基础知识:50分;综合应用:50分 (2)题型结构:名词解释(10分)、单选题(10分)、多(不定)项选择题(10分)、判断题(10分)、简答题(20分)、应用操作题(40分)。 三、评价目标与考试内容 第一讲 MAPGIS概述 (一)评价目标 l、识记基本概念,了解软件的特点、结构、用途及功能应用; 2、熟悉MAPGIS主要的文件类型; 3、理解GIS与通用数据库的区别。 (二)考试内容 1、MAPGIS基本概念,软件的特点、结构、用途及功能应用,主要的文件类

目标文件格式分析工具-ar-nm等等

目标文件格式分析工具: ar,nm,objdump,objcopy,readelf 如果普通编程不需要了解这些东西,如果想精确控制你的目标文件的格式或者你想查看一下文件里的内容以便作出某种判断,那么你可以看一下下面的工具:ar,nm,objdump,objcopy。具体用法请参考man在线手册。 ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。 下面是ar命令的格式: ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files... 例如我们可以用ar rv libtest.a hello.o hello1.o来生成一个库,库名字是test,链接时可以用-ltest链接。该库中存放了两个模块hello.o和hello1.o。选项前可以有‘-'字符,也可以没有。下面我们来看看命令的操作选项和任选项。现在我们把{dmpqrtx}部分称为操作选项,而[abcfilNoPsSuvV]部分称为任选项。 {dmpqrtx}中的操作选项在命令中只能并且必须使用其中一个,它们的含义如下: ?d:从库中删除模块。按模块原来的文件名指定要删除的模块。如果使用了任选项v 则列出被删除的每个模块。 ?m:该操作是在一个库中移动成员。当库中如果有若干模块有相同的符号定义(如函数定义),则成员的位置顺序很重要。如果没有指定任选项,任何指定的成员将移到库的最后。也可以使用'a','b',或'I'任选项移动到指定的位置。 ?p:显示库中指定的成员到标准输出。如果指定任选项v,则在输出成员的内容前,将显示成员的名字。如果没有指定成员的名字,所有库中的文件将显示出来。 ?q:快速追加。增加新模块到库的结尾处。并不检查是否需要替换。'a','b',或'I'任选项对此操作没有影响,模块总是追加的库的结尾处。如果使用了任选项v则列出每个模块。 这时,库的符号表没有更新,可以用'ar s'或ranlib来更新库的符号表索引。 ?r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。 如果若干模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。 ?t:显示库的模块表清单。一般只显示模块名。 ?x:从库中提取一个成员。如果不指定要提取的模块,则提取库中所有的模块。 下面在看看可与操作选项结合使用的任选项: ?a:在库的一个已经存在的成员后面增加一个新的文件。如果使用任选项a,则应该为命令行中membername参数指定一个已经存在的成员名。

计算机操作系统实验_解析ELF文件

西北工业大学操作系统实验实验报告 一、实验目的 熟悉可执行链接文件(ELF)的结构,了解GeekOS将ELF格式的可执行程序加载到内存,建立内核线程并运行的实现技术。 二、实验要求 1.修改Project1项目中的/GeekOS/elf.c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头),获取可执行文件长度、代码段、数据段等信息,并打印输出。并且,填充Exe_Format 数据结构中的值域。 2.掌握GeekOS在核心态运行可执行程序的原理,绘制出可执行程序在内核中加载、运行的流程图(需反映关键函数的调用关系)。 3.回答实验讲义P125页的思考题。 三、实验过程及结果 1、修改Project1项目中的/GeekOS/elf.c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头),获取可执行文件长度、代码段、数据段等信息,并打印输出。并且,填充Exe_Format 数据结构中的值域。 答:修改Project1项目中的/GeekOS/elf.c文件:在函数Parse_ELF_Executable()中添加代码,如下: ==============elf.c=================== int Parse_ELF_Executable(char *exeFileData, ulong_t exeFileLength, struct Exe_Format *exeFormat) { int i; elfHeader *head=(elfHeader*)exeFileData; programHeader *proHeader=(programHeader *)(exeFileData+head->phoff); KASSERT(exeFileData!=NULL); KASSERT(exeFileLength>head->ehsize+head->phentsize*head->phnum); KASSERT(head->entry%4==0); exeFormat->numSegments=head->phnum;

ELF格式-中文

________________________________________________________________ EXECUTABLE AND LINKABLE FORMAT (ELF) Portable Formats Specification, Version 1.1 Tool Interface Standards (TIS) ________________________________________________________________ =========================== Contents 内容=========================== 序言 1. OBJECT文件 导言 ELF头(ELF Header) Sections String表(String Table) Symbol表(Symbol Table) 重定位(Relocation) 2. 程序装载与动态连接 导言 Program头(Program Header) Program装载(Program Loading) Dynamic连接(Dynamic Linking) 3. C LIBRARY C Library ________________________________________________________________ 导言 ________________________________________________________________ ELF: 可执行连接格式 可执行连接格式是UNIX系统实验室(USL)作为应用程序二进制接口 (Application Binary Interface(ABI)而开发和发布的。工具接口标准委 员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操 作系统之间可移植的二进制文件格式。

新手学习mapgis教程

新手学习mapgis教程 一、几个术语 图层:按照一定的需要或标准把某些相关物体组合在一起。可以把图层理解为一张透明薄膜,每一层的图元在同一薄膜上,如水系力图层、铁路图层、地质界限图层、断层图层等。图层的分层有利于地图图元的管理,提高成图速度。 栅格图:即扫描的图像。 矢量图:即进行了数字化的图像,图中的每一个点都有相对的X 和Y 座标。 图元:图面上表示空间信息特征的基本单位,分为点、线(孤段)、多边形等三种类型。 点元:点图元的简称,有时称点。指其位置只有一组X 和Y 座标来控制。 它包括字符串(注释)、子图(专用符号)等。所有点保存在点文件中(*.wt) 结点:指某线或孤段的端点或数条线或孤段的交点。 结点平差:使几条线或孤段成为共用一个结点的过程 线图元:地图中线状物的总称。如划线、省界、国界、地质界线、断层、水系、公路等。所有线图元都保存在线文件中(*.wl) 区图元(面图元):由线或孤段组的封闭区域,可以以颜色和花纹图案填充。 如湖泊、地层、岩体分布区等。所有区图元都保存在区文件中(*.wp)。 工程:对一系列的点、线、面文件进行管理的描述性文件。 二、MAPGIS 几种主要文件类型及后缀 .wp 区(面)文件.pnt 控制点文件 .wl 线文件 .wt 点文件 .tif 栅格文件 .rbm 光栅求反后文件 .mpj 工程文件 .cln 图例板文件 点文件(.wt):包括文字注记、符号等。即在输入时,文字和符号都存在点 文件中。在机助制图时,文字注记称为注释(如各种标注等),符号称为子图(矿 点符号,泉符号等)。 线文件(.wl):是由境界线、河流、航空线、海岸线等线状地物组成的图元。 面文件(.wp):将各个行政区进行普染色后,就得到了区文件。在理论上,区是封闭的线组成的区域,因此区是基于线生成的。 工程(.mpj):对一系列的点、线、面文件进行管理的描述性文件。其主要记录了各个文件的信息,如存放地、可编辑性等。(如何建立工程,见以后) 图形处理—输入编辑 一、输入编辑步聚 主要步骤为: 1、将图件进件进行扫描,成灰度、或彩色、或二值。 2、建立相应的工作目录,即建立自已的工作文件夹。如mapgis 学习 3、将扫描的图像拷入到工作文件夹中, 4、将系统库(相当于\mapgis65\slib 文件夹)拷到工作文件夹中。 5、进行读图分析,看分几层。如水系层(河流、水库、泉等),交通层(铁 路、公路、小路、航空线等),断层层(各种断层),地层层(地层界线,地层区,

Linux ELF 运行时内存详解 - 黑客防线官方站

Linux ELF 运行时内存详解 4/22/2012 前一段时间做ROP (return-oriented programming )的东西,想要系统的了解Linux 中程序的内存格式(memory layout ),网上有很多文章,却没有一个深入完整的介绍。所以花了些时间做深入的了解,不放过一个细节。由于最初写的是英文文档,所以文中的图都是用英文标识的,不过应该不影响阅读。 本文详细解释了Linux ELF 文件的虚拟地址空间。另外本文也大概介绍了ASLR (Address Space Layout Randomization)技术对ELF 虚拟地址空间的影响。作者的测试系统是Linux Ubuntu 2.6.32-24和Vmware Workstation 7。另外所有的分析都基于Intel x86架构。 虚拟地址空间 当代的操作系统中每个进程都有自己的独立虚拟地址空间。在32位系统上,该虚拟地址空间有4G 大小。为了将虚拟地址转换为物理地址,Linux 内核使用了一个两级(事实上是三级,但是中间一级没有任何实质操作)分页机制,即页目录表和页表。分页机制与MMU (Memory Management Unit )合作将虚拟地址转换为物理地址。当操作系统引入虚拟地址后,所有的用户操作系统和内核线程(事实上Linux 只有进程概念而没有线程概念,Linux 通过页表机制来模拟实现内核线程)都将运行于虚拟地址模式。 另外Linux (以及Windows )使用了CPU 提供的权限机制。内核代码将运行于ring 0而用户程序运行于ring 3。 因此为了适应该分级机制以及适应多任务机制,Linux 的虚拟地址空间被分为两部分,如图1所示: 0xffff ffff 0x0Linux Virtual Address Split 0xffff ffff 0x0 Windows Virtual Address Split 图1. Linux/Windows 虚拟地址空间的内核部分和用户部分。 Linux 中,内核空间为0xc0000000到0xffffffff 的地址,因此内核代码将被映射到区域。而在Windows 中,默认的分割方式为内核与用户各占2GB 。本文仅详细分析Linux 的地址空间而不再涉及Windows 。下面分两部分介绍Linux 地址空间,首先是内核地址空间然后再介绍用户地址空间。 1. 内核地址空间 黑 客防线 a c k e r .c o m .c n 明出处

mapgis文件转换

一、如何将mapgis的图形插到word、excel、PowerPoint中 首先点取mapgis菜单“其他->OLE拷贝”,接着打开word,点取“粘贴”。 Mapgis数据就复制到word文档里。 二、空心字格式 使用空心字时,字体采用相应字体编号的负数。如:-3表示黑体空心字。 三、合并区 1、可以在屏幕上开一个窗口,系统就会将窗口内的所有区合并,合并后区的图形参数及属性与左键弹起时所在的区相同。 2、也可以先用菜单中的选择区功能将要合并的区拾取到,然后再使用合并区功能实现。 3、还可以先用光标单击一个区,然后按住 CTRL键,在用光标单击相邻的区即可。 四、翻转图形 在Mapgis中的其它下面整图变换中比例参数的X比例中输入法-1或Y比例中输入-1后确定。 五、CAD转化为MAPGIS 1.将CAD文件另存为2004/2000DXF格式。

2.在MAPGIS主程序中选择“文件转换”。 3.输入中选择转入DXF文件,确定并复位 4.保存点线文件(面无法转化) 六、MAPGIS转化为CAD 1.在MAPGIS主程序中选择“文件转换”。 2.分别装入点线文件,复位并全选。 3.输出中选择“部分图形方式输入DXF”全选并确定。 4. 打开保存的DXF文件,用CAD复位显示图形,并改字体样式。 5.保存成CAD格式。 七、如何把JPG格式的转成MSI格式 图象处理----------图象分析模块。在里面点:文件 --------数据输入--------转换数据类型(选JPG)---------添加文件---------转换转换后的格式为mapgis的msi影像文件!转换为MSI文件格式后再在输入编辑里,导入后矢量化。 八、在电脑里如何做剖面图,不用手画,而且精度更高! 1、先把MAPGIS图生成JPG格式,在PHOTOSHOP中图像—图像大小—文挡大小中输入经过变化后的宽度和高度数字(根据剖面图的比例和JPG图的比例关系得出);然后按需要裁剪,以减少图形的所占内存; 2、裁剪后旋转使剖面线处于水平位置; 3、在MAPGIS中插入裁剪旋转后光栅文件,新建线和点文件,以剖面线为水平的X轴,画垂直X轴的线为Y轴,以剖面线起点的位置为坐标原点,以剖面线起点的高程为起始Y轴刻度,在X和Y轴上标上相对应比例尺的刻度。 4、以图上等高线和X轴交点为垂足画垂直X轴的直线,以等高线的高程画垂直于Y轴的直线,上述两直线相交点就是我们要求剖面轮廓线的拐点,把这样一系列的点连起来就成了剖面图的轮廓线。 5、最后再整饰一下,就作成了剖面图。 其实也可以直接在MAPGIS中直接做,这样就省了用PHOTOSHOP这一步骤,但这样很容易破坏原文件。(如果是已成的矢量图,目前可以用些软件实现

Linux系统下的ELF文件分析

Linux系统下的ELF文件分析 摘要:随着linux系统的发展,elf成了十分重要的可执行文件格式。本文介绍了eIf文件的格式,并在此基础上分析出eIf文件的特性。关键词:elf文件:平台相关PIC 1.引言 ELF(Executable and Linkable Format)IN可执行连接文件格式.是LinuxSVR4和Solaris2,0默认的目标文件格式,目前标准接口委员会TIS已将ELF标准化为一种可移植的目标文件格式,运行于32一bitIntel体系微机上,可与多种操作系统兼容。分析elf文件有助于理解一些重要的系统概念,例如程序的编译和链接,程序的加载和运行等 2.ELF文件格式 2.1 ELF文件的类型ELF文件主要有三种类型 (1)可重定位文件包含了代码和数据.可与其它ELF文件建立一个可执行或共享的文件: (2)可执行文件时可直接执行的程序: (3)共享目标文件包括代码和数据,可以在两个地方链接。第一,连接器可以把它和其它可重定位文件和共享文件一起处理以建立另一个ELF文件;第二,动态链接器把它和一个可执行文件和其它共享文件结合在一起建立一个进程映像。 2.2 ELF文件的组织 ELF文件参与程序的连接(建立一个程序)和程序的执行(运行一个程序),编译器和链接器将其视为节头表(section headertable)描述的一些节(section)的集合,而加载器则将其视为程序头表(program header table)描述的段(segment)的集合,通常一个段可以包含多个节。可重定位文件都包含一个节头表.可执行文件都包含一个程序头表。共享文件两者都包含有。为此,ELF文件格式同时提供了两种看待文件内容的方式,反映了不同行为的不同要求。

elf文件格式(中文版)

3. 页标题的内容和文章的页脚已经在开始的时候被换掉了。 4. 文章的排版也已经修正过了。 5. 如果必要,不同的字体已经被忽略了。大部分地方,这片文档能让你 充分的理解。然而,很小的地方,原始的文档使用了斜体字来指出文 章中的字符变量。在那种情况下,本文使用<尖括号>。在原始的文档 中没有出现尖括号。 6. 原始的文档有三个错误,如果你是不经意读它的话,是不会明显 就能找出的。但是在这里,明确的被鉴别出来了。 我很冒昧的纠正了那些错误。在他们的位置用一个{*}做上了标记。 可能还有其他我没有看出来的的错误。 如果有如何其他的区别都是我的责任。这样的错误请 mailto:breadbox@https://www.doczj.com/doc/9d10369116.html,. Brian Raiter [Last edited Fri Jul 23 1999] ________________________________________________________________ EXECUTABLE AND LINKABLE FORMAT (ELF) Portable Formats Specification, Version 1.1 Tool Interface Standards (TIS) ________________________________________________________________ =========================== Contents 内容=========================== 序言 1. OBJECT文件 导言 ELF头(ELF Header) Sections String表(String Table) Symbol表(Symbol Table) 重定位(Relocation) 2. 程序装载与动态连接 导言 Program头(Program Header)

mapgis明码文件格式

明码文件是mapgis生成的交换文件,其结构清晰,内容可见,但不能携带属性,现将文件结构说明如下: 1、点文件结构 逻辑结构: 文件头点数1号点2号点…… 具体为: A、文件头,8个字节 WMAP9022 (老的文件为WMAP6022或WMAP7022和WMAP8022) B、点数n C、1号点 x1 y1 ID type1 {点类型,类型不同,点信息也不同。点类型取值如下: 0 字符串 1 子图 2 圆 3 弧 4 图象 5 文本 } 点信息{点信息和点类型相对应} 当type=0时,点信息为: "字符串" 字符高度字符宽度字符间隔字符串角度中文字体 西文字体字形水平(0)或垂直排列(1) 颜色图层透明输出 当type=1时,点信息为: 子图号子图高子图宽子图角度辅色颜色线宽图层透明输出 当type=2时,点信息为: 半径轮廓颜色线宽填充(1)或不填充(0)标志颜色图层透明输出 当type=3时,点信息为: 半径起始角度终止角度线宽颜色图层透明输出 当type=4时,点信息为: "图象文件名" 宽度高度角度颜色图层透明输出 当type=5时,点信息为: "文本字串" 字高字宽字间距角度中文字体西文字体字形 行间距版面长版面宽水平(0)或垂直排列(1) 颜色图层透明输出 2号点 …… n号点 2、线文件结构 逻辑结构:文件头线数1号线2号线…… 具体为: A、文件头,8个字节 WMAP9021 (老的文件为WMAP6021或WMAP7021 和WMAP8021)

C、1号线 线型号辅助线型号线色线宽X系数Y系数辅助色图层透明输出 线点数m1 x1 y1 x2 y2 … xm1 ym1 ID 线长度 2号线 线型号辅助线型号线色线宽X系数Y系数辅助色图层透明输出 线点数m2 x1 y1 x2 y2 … xm2 ym2 …… ID 线长度 n号线 线型号辅助线型号线色线宽X系数Y系数辅助色图层透明输出 线点数mn x1 y1 x2 y2 … xmn ymn ID 线长度 3、区文件结构 区逻辑结构为: 文件头弧段数1号弧段2号弧段……最后弧段节点数1号结点2号结点……最后结点区数1号区2号区…… 最后区 具体为: A、文件头,8个字节 WMAP9023 (老的文件为WMAP6023或WMAP7023和WMAP8023) B、弧段数 an C、1号弧段 线型号辅助线型号线色线宽X系数Y系数辅助色图层透明输出 前节点号后节点号{若没有指向任何节点,则为0} 左区号右区号{若没有区号,则为0} 线点数m1 x1 y1 x2 y2 …

相关主题
文本预览
相关文档 最新文档