CN104766018A - 一种Mapinfo地图加解密方法 - Google Patents

一种Mapinfo地图加解密方法 Download PDF

Info

Publication number
CN104766018A
CN104766018A CN201410005890.5A CN201410005890A CN104766018A CN 104766018 A CN104766018 A CN 104766018A CN 201410005890 A CN201410005890 A CN 201410005890A CN 104766018 A CN104766018 A CN 104766018A
Authority
CN
China
Prior art keywords
mapinfo
file
map
interface function
api interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410005890.5A
Other languages
English (en)
Other versions
CN104766018B (zh
Inventor
夏欢
王国清
时宜
吕崇毅
宋峥晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Yaxun Zhilian Technology Co ltd
Original Assignee
Xiamen Yaxon Networks Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Yaxon Networks Co Ltd filed Critical Xiamen Yaxon Networks Co Ltd
Priority to CN201410005890.5A priority Critical patent/CN104766018B/zh
Publication of CN104766018A publication Critical patent/CN104766018A/zh
Application granted granted Critical
Publication of CN104766018B publication Critical patent/CN104766018B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种Mapinfo地图加解密方法,通过将Mapinfo地图文件目录下所有的小文件打包到一个Mapinfo地图引擎程序不可读的加密文件中,完成对Mapinfo地图文件的加密;之后,利用API拦截技术捕捉并拦截Mapinfo地图引擎程序所调用的API接口函数,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数,由API接口函数将接收到的读取数据返回给所述Mapinfo地图引擎程序,完成解密。本发明不依赖硬件、没有复杂的解密算法、维护成本低,是一种低成本、高性能的Mapinfo地图加解密方法。

Description

一种Mapinfo地图加解密方法
技术领域
本发明涉及一种加解密方法,特别涉及一种Mapinfo地图加解密方法。
背景技术
随着Mapinfo地图在GIS(地理信息系统)中的应用越来越广泛、地图的含金量越来越高,各企业也越来越重视正版地图的购买和保护,地图加密将成为运营企业在实际应用中保护自身合法利益的一种有效手段。其中,Mapinfo地图对应的地图引擎是mapx,而GIS程序都是基于mapx技术开发的。
目前,市场上做Mapinfo地图加密的企业比较多,方法各种各样。有的是加密某些关键性文件,有的需要使用到硬件狗,有的则是采用分布式部署的密钥管理系统来控制文件的加解密。这些方法存在解密过程复杂、需要硬件协助、成本较高等问题。
Windows API是Windows操作系统提供的应用程序编程接口,它包含了上千个API接口函数以供程序员控制和使用操作系统的所有资源。当程序员考虑要对API接口函数的功能加以修改或替换时,就要使用API拦截技术。本发明所公开的Mapinfo地图的加解密方法,即是一种基于API接口和API拦截技术的方法。
发明内容
本发明的目的在于克服现有技术之不足,提供一种Mapinfo地图加解密方法,通过将Mapinfo地图文件目录下所有的小文件打包到一个Mapinfo地图引擎程序不可读的加密文件中,完成对Mapinfo地图文件的加密;之后,利用API拦截技术完成解密;具有不依赖硬件、没有复杂的解密算法、维护成本低的性能。
本发明解决其技术问题所采用的技术方案是:一种Mapinfo地图加密方法,包括如下步骤:
1)利用API接口函数在待加密的Mapinfo地图文件目录下创建一个加密文件,且将所述加密文件的格式在Mapinfo地图引擎程序的可读格式种类范围以外,且所述加密文件的格式满足所在操作系统的文件格式要求;
2)利用API接口函数将所述Mapinfo地图文件目录下的所有小文件打包到所述加密文件中,完成加密。
步骤2)中,所述加密文件里所有小文件的存储机制为文件头和文件块分别存储;其中,所述小文件的文件头以链表方式存储,所述小文件的文件块以顺序方式存储。
所述文件头信息包括文件名称、文件属性、文件创建时间、最后一次访问时间、最后一次更新时间、文件长度和文件块信息的开始索引。
步骤1)中,所述Mapinfo地图引擎程序的可读格式的种类范围包括所述Mapinfo地图引擎程序根据其本身的文件操作规律而调用的API接口函数所查找的所有文件格式种类。
一种Mapinfo地图解密方法,针对如上所述的加密方法,其解密方法包括步骤如下:
1)Mapinfo地图引擎程序加载所述加密文件,并将所述加密文件的查找路径信息传给用于解密的API拦截程序;
2)所述Mapinfo地图引擎程序接收到对地图的操作命令后,根据所述Mapinfo地图引擎程序本身的文件操作规律向操作系统调用相应的API接口函数;
3)所述API拦截程序主动捕捉并拦截所述Mapinfo地图引擎程序所调用的API接口函数的操作;
4)所述API拦截程序捕捉到所述的API接口函数的信息后,到所述加密文件的查找路径下,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数;
5)所述API接口函数将所接收到的读取数据返回给所述Mapinfo地图引擎程序,所述Mapinfo地图引擎程序实现对地图的操作,完成解密。
所述API拦截程序以中间件的形式加载在所述Mapinfo地图引擎程序中。
所述API拦截程序包括用于捕捉并拦截所述API接口函数的拦截段、用于替所拦截的API接口函数查找并读取指定的小文件中的数据的操作段,及用于将读取结果返回给所述API接口函数的返回段。
所述加密文件的格式可被所述API拦截程序的操作段所读取;同时,所述API拦截程序的操作段还包括所述加密文件中的所有小文件的存储结构信息,能够正确查找并读取指定的小文件的数据。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
本发明通过将Mapinfo地图文件目录下所有的小文件打包到一个Mapinfo地图引擎程序不可读的加密文件中,完成对Mapinfo地图文件的加密;之后,利用API拦截技术捕捉并拦截Mapinfo地图引擎程序所调用的操作系统API接口函数,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数,由API接口函数将接收到的读取数据返回给所述Mapinfo地图引擎程序,完成解密。本发明将API拦截技术应用到Mapinfo地图解密当中,Mapinfo地图引擎程序需要读取哪部分的地图,API就拦截命令并解密相应文件的数据,从而能够实现地图的快速展现。整个过程中,不依赖硬件、没有复杂的解密算法、维护成本低,因此,本发明是一种低成本、高性能的Mapinfo地图加解密方法。
附图说明
图1为本发明实施例的一种Mapinfo地图加密方法中小文件的存储机制示意图;
图2为本发明实施例的一种Mapinfo地图解密方法流程示意图。
具体实施方式
实施例,
以下通过具体实施方式对本发明做进一步的描述。
本发明提供了一种Mapinfo地图加密方法,包括如下步骤:
1)利用API接口函数在待加密的Mapinfo地图文件目录下创建一个加密文件,且将所述加密文件的格式在Mapinfo地图引擎程序的可读格式种类范围以外,且所述加密文件的格式满足所在操作系统的文件格式要求;
2)利用API接口函数将所述Mapinfo地图文件目录下的所有小文件打包到所述加密文件中,完成加密。
作为一种优选,步骤2)中,所述加密文件里所有小文件的存储机制为文件头a和文件块b分别存储;其中,所述小文件的文件头a以链表方式存储,所述小文件的文件块b以顺序方式存储,如图2所示。所述文件头a的信息包括文件名称、文件属性、文件创建时间、最后一次访问时间、最后一次更新时间、文件长度和文件块的开始索引信息。从而便于API拦截程序的快速查找。
作为一种优选,步骤1)中,所述Mapinfo地图引擎程序的可读格式的种类范围包括所述Mapinfo地图引擎程序根据其本身的文件操作规律而调用的API接口函数所查找的所有文件格式种类。
未加密前,Mapinfo地图引擎程序读取地图的过程包括:
A.Mapinfo地图引擎程序加载地图文件;
B.所述Mapinfo地图引擎程序接收到对地图的操作命令后,根据所述Mapinfo地图引擎程序本身的文件操作规律向操作系统调用相应的API接口函数;其中,所述文件操作规律是指,Mapinfo地图引擎程序针对指定的地图操作命令将调用对应的API接口函数;
C.所述API接口函数在所述地图文件目录下查找并读取到指定的小文件的数据,并将读取结构返回给所述Mapinfo地图引擎程序,所述Mapinfo地图引擎程序实现对地图的操作。
因此,当加密后,Mapinfo地图引擎程序所调用的API接口函数还在原来的地图文件目录下查找指定格式的文件时,所述API接口函数将由于查找不到文件而导致操作失败。
如图2所示,本发明还提供了一种Mapinfo地图解密方法,针对如上所述的加密方法,其解密方法包括步骤如下:
R1.Mapinfo地图引擎程序加载所述加密文件,并将所述加密文件的查找路径信息传给用于解密的API拦截程序,本实施例中采用GIS程序作为Mapinfo地图引擎程序;
R2.所述GIS程序接收到对地图的操作命令(如用户对地图的查找、放大、缩小等操作)后,根据所述GIS程序本身的文件操作规律向操作系统调用相应的API接口函数;
R3.所述API拦截程序主动捕捉并拦截所述GIS程序所调用的API接口函数的操作;
R4.所述API拦截程序捕捉到所述的API接口函数的信息后,到所述加密文件的查找路径下,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数;
R5.所述API接口函数将所接收到的读取数据返回给所述GIS程序,所述GIS程序实现对地图的操作,完成解密。
本发明的实施例中API拦截采用微软研究院Detour开发包,其中用到了API hook的技术,是一个在x86平台上截获任意Win32函数调用的工具库。
作为一种优选,所述API拦截程序以中间件的形式加载在所述Mapinfo地图引擎程序(或GIS程序)中。
作为一种优选,所述API拦截程序包括用于捕捉并拦截所述API接口函数的拦截段、用于替所拦截的API接口函数查找并读取指定的小文件中的数据的操作段,及用于将读取结果返回给所述API接口函数的返回段。
作为一种优选,所述加密文件的格式可被所述API拦截程序的操作段所读取;同时,所述API拦截程序的操作段还包括所述加密文件中的所有小文件的存储结构信息,能够正确查找并读取指定的小文件的数据。
而对于加密地图的破解者,即使他通过API拦截技术了解到Mapinfo地图引擎程序的文件操作规律,进而了解所述Mapinfo地图引擎程序的各种操作所需读取的各种文件,由于他不了解如何打开所述加密文件,且不了解所述加密文件的内部存储机制,所以他也无法正确查找和读取指定的文件。
上述实施例仅用来进一步说明本发明的一种Mapinfo地图加解密方法,但本发明并不局限于实施例,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均落入本发明技术方案的保护范围内。

Claims (8)

1.一种Mapinfo地图加密方法,其特征在于,包括如下步骤:
1)利用API接口函数在待加密的Mapinfo地图文件目录下创建一个加密文件,且将所述加密文件的格式在Mapinfo地图引擎程序的可读格式种类范围以外,且所述加密文件的格式满足所在操作系统的文件格式要求;
2)利用API接口函数将所述Mapinfo地图文件目录下的所有小文件打包到所述加密文件中,完成加密。
2.如权利要求1所述的一种Mapinfo地图加密方法,其特征在于,步骤2)中,所述加密文件里所有小文件的存储机制为文件头和文件块分别存储;其中,所述小文件的文件头以链表方式存储,所述小文件的文件块以顺序方式存储。
3.如权利要求2所述的一种Mapinfo地图加密方法,其特征在于,所述文件头信息包括文件名称、文件属性、文件创建时间、最后一次访问时间、最后一次更新时间、文件长度和文件块信息的开始索引。
4.如权利要求1至3中任一权利要求所述的一种Mapinfo地图加密方法,其特征在于,步骤1)中,所述Mapinfo地图引擎程序的可读格式的种类范围包括所述Mapinfo地图引擎程序根据其本身的文件操作规律而调用的API接口函数所查找的所有文件格式种类。
5.一种Mapinfo地图解密方法,其特征在于,针对如权利要求1至4中任一权利要求所述的加密方法,其解密方法包括步骤如下:
1)Mapinfo地图引擎程序加载所述加密文件,并将所述加密文件的查找路径信息传给用于解密的API拦截程序;
2)所述Mapinfo地图引擎程序接收到对地图的操作命令后,根据所述Mapinfo地图引擎程序本身的文件操作规律向操作系统调用相应的API接口函数;
3)所述API拦截程序主动捕捉并拦截所述Mapinfo地图引擎程序所调用的API接口函数的操作;
4)所述API拦截程序捕捉到所述的API接口函数的信息后,到所述加密文件的查找路径下,替所述API接口函数查找并读取指定的小文件中的数据,并将所读取的数据返回给所述API接口函数;
5)所述API接口函数将所接收到的读取数据返回给所述Mapinfo地图引擎程序,所述Mapinfo地图引擎程序实现对地图的操作,完成解密。
6.如权利要求5所述的一种Mapinfo地图解密方法,其特征在于,所述API拦截程序以中间件的形式加载在所述Mapinfo地图引擎程序中。
7.如权利要求5或6所述的一种Mapinfo地图解密方法,其特征在于,所述API拦截程序包括用于捕捉并拦截所述API接口函数的拦截段、用于替所拦截的API接口函数查找并读取指定的小文件中的数据的操作段,及用于将读取结果返回给所述API接口函数的返回段。
8.如权利要求7所述的一种Mapinfo地图解密方法,其特征在于,所述加密文件的格式可被所述API拦截程序的操作段所读取;同时,所述API拦截程序的操作段还包括所述加密文件中的所有小文件的存储结构信息,能够正确查找并读取指定的小文件的数据。
CN201410005890.5A 2014-01-06 2014-01-06 一种Mapinfo地图加解密方法 Active CN104766018B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410005890.5A CN104766018B (zh) 2014-01-06 2014-01-06 一种Mapinfo地图加解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410005890.5A CN104766018B (zh) 2014-01-06 2014-01-06 一种Mapinfo地图加解密方法

Publications (2)

Publication Number Publication Date
CN104766018A true CN104766018A (zh) 2015-07-08
CN104766018B CN104766018B (zh) 2018-10-16

Family

ID=53647839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410005890.5A Active CN104766018B (zh) 2014-01-06 2014-01-06 一种Mapinfo地图加解密方法

Country Status (1)

Country Link
CN (1) CN104766018B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851849A (zh) * 2019-11-12 2020-02-28 西安中科星图空间数据技术有限公司 一种免费地图影像数据的加密方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819602A (zh) * 2010-05-07 2010-09-01 北京飞天诚信科技有限公司 一种数据文件引擎的实现方法
CN102214409A (zh) * 2011-06-16 2011-10-12 杭州星软科技有限公司 基于车辆在路线上的判断方法
CN102436492A (zh) * 2011-11-09 2012-05-02 浙江大学 一种定量化遥感数据的网络发布方法
CN102567427A (zh) * 2010-12-30 2012-07-11 中国移动通信集团公司 一种对象数据处理方法及装置
US20130101214A1 (en) * 2011-10-25 2013-04-25 John T. Sample System and method for converting source image data to tile data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819602A (zh) * 2010-05-07 2010-09-01 北京飞天诚信科技有限公司 一种数据文件引擎的实现方法
CN102567427A (zh) * 2010-12-30 2012-07-11 中国移动通信集团公司 一种对象数据处理方法及装置
CN102214409A (zh) * 2011-06-16 2011-10-12 杭州星软科技有限公司 基于车辆在路线上的判断方法
US20130101214A1 (en) * 2011-10-25 2013-04-25 John T. Sample System and method for converting source image data to tile data
CN102436492A (zh) * 2011-11-09 2012-05-02 浙江大学 一种定量化遥感数据的网络发布方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李锋 等: "移动终端离线电子地图应用框架研究", 《测绘科学》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851849A (zh) * 2019-11-12 2020-02-28 西安中科星图空间数据技术有限公司 一种免费地图影像数据的加密方法及装置

Also Published As

Publication number Publication date
CN104766018B (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
US10607020B2 (en) Securing files
TWI709059B (zh) 檔案打包、檔案包解包方法、裝置及網路設備
US10440111B2 (en) Application execution program, application execution method, and information processing terminal device that executes application
US10509905B2 (en) Ransomware mitigation system
US20140019498A1 (en) System, method and computer readable medium for file management
CN102254124A (zh) 一种移动终端信息安全防护系统和方法
US10089371B2 (en) Extensible extract, transform and load (ETL) framework
CN103647636B (zh) 安全访问数据的方法及装置
EP2778953A1 (en) Encoded-search database device, method for adding and deleting data for encoded search, and addition/deletion program
DE102013203126A1 (de) Transparentes Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
US20140281499A1 (en) Method and system for enabling communications between unrelated applications
Tamma et al. Practical Mobile Forensics: Forensically investigate and analyze iOS, Android, and Windows 10 devices
CN104090913B (zh) 基于瘦客户机的文件操作方法及装置
CN108229190B (zh) 透明加解密的控制方法、装置、程序、存储介质和电子设备
CN104504313A (zh) 一种对代码进行保密处理的方法及装置
JP6324794B2 (ja) クラウド・ストレージ・システム
US11876814B2 (en) Proxy services for the secure upload of file system tree structures
CN109997144A (zh) 对于固态驱动器的分开加密
CN104766018A (zh) 一种Mapinfo地图加解密方法
US20240054236A1 (en) Selective encryption while loading from network attached storage system
Sengupta et al. A platform independent and forensically sound method to extract WhatsApp data from mobile phones
KR101772129B1 (ko) 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템
CN104731684B (zh) 一种基于驱动过滤技术的动态文件监控和保护系统
CN104866740A (zh) 一种防静态分析文件的方法及装置
CN107292196A (zh) Io数据的读写方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 303-e, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province

Patentee after: Xiamen Yaxun Zhilian Technology Co.,Ltd.

Country or region after: China

Address before: No.46 guanri Road, phase II, software park, Xiamen City, Fujian Province, 361000

Patentee before: XIAMEN YAXON NETWORK Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address