CN108733990B - 一种基于区块链的文件保护方法及终端设备 - Google Patents
一种基于区块链的文件保护方法及终端设备 Download PDFInfo
- Publication number
- CN108733990B CN108733990B CN201810496143.4A CN201810496143A CN108733990B CN 108733990 B CN108733990 B CN 108733990B CN 201810496143 A CN201810496143 A CN 201810496143A CN 108733990 B CN108733990 B CN 108733990B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- protection
- configuring
- protection information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000003993 interaction Effects 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 15
- 230000002452 interceptive effect Effects 0.000 description 13
- 239000003550 marker Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003014 reinforcing effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种基于区块链的文件保护方法及终端设备,该方法包括:获取需要保护的第一文件的类型信息;所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言;根据所述类型信息确定所述第一文件的防护信息;所述防护信息用于防止反编译;根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;所述第二文件的执行逻辑与所述第一文件的执行逻辑相同。本发明通过为用于搭建区块链的数据交互端口的第一文件配置防护信息,通过配置的防护信息混淆第一文件中的内容,能够提高第一文件的数据安全性,提高第一文件对应的应用程序的用户信息或用户财产的安全性的目的。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种基于区块链的文件保护方法及终端设备。
背景技术
随着移动互联网的发展,提供各种服务的应用程序应运而生,用户可在终端上下载并安装应用程序,使用该应用程序(Application,App)享受相应的服务。例如,区块链App、打车类App、金融类App等。
然而,应用程序安装在终端上之后,容易被黑客或不法分子通过反编译工具进行攻击,获取应用程序的安装包里面的可执行文件,并对可执行文件进行反编译得到该可行性文件的源码,窃取源码中包含的算法或对源码进行篡改等,进而导致该应用程序的用户信息或用户财产被窃取,甚至给用户带来巨大的经济损失,数据安全性较低。
发明内容
有鉴于此,本发明实施例提供了一种基于区块链的文件保护方法及终端设备,以解决现有技术因应用程序的可执行文件被反编译泄露源码而导致数据安全性低的问题。
本发明实施例的第一方面提供了一种基于区块链的文件保护方法,包括:
获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言;
根据所述类型信息确定所述第一文件的防护信息;其中,所述防护信息用于防止反编译;
根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,所述第二文件的执行逻辑与所述第一文件的执行逻辑相同。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言;
根据所述类型信息确定所述第一文件的防护信息;其中,所述防护信息用于防止反编译;
根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,所述第二文件的执行逻辑与所述第一文件的执行逻辑相同。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言;
根据所述类型信息确定所述第一文件的防护信息;其中,所述防护信息用于防止反编译;
根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,所述第二文件的执行逻辑与所述第一文件的执行逻辑相同。
实施本发明实施例提供的一种基于区块链的文件保护方法及终端设备具有以下有益效果:
本发明实施例通过为用于搭建区块链的数据交互端口的第一文件配置防护信息,从而通过配置的防护信息混淆第一文件中的内容,进而防止第一文件在被反编译时因暴露源码而导致第一文件中的算法被泄露。由于第一文件是二进制文件,通过对第一文件进行处理,而不是对第一文件的源码进行处理,能够提高反编译第一文件获取源码的复杂度以及难度,从而提高第一文件的数据安全性。由于第一交互文件用于搭建区块链的数据交互端口,提高第一文件的安全性的同时,能够提高通过区块链的数据交互端口传输的数据的安全性,进而增加第一文件对应的应用程序的用户信息或用户财产的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于区块链的文件保护方法的实现流程图;
图2是本发明实施例提供的一种基于区块链的文件保护方法中S103的具体实现流程图;
图3是本发明另一实施例提供的一种基于区块链的文件保护方法的实现流程图;
图4是本发明一实施例提供的一种终端设备的示意框图;
图5是本发明另一实施例提供的一种终端设备的示意框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1是本发明实施例提供的一种基于区块链的文件保护方法的实现流程图。本实施例中基于区块链的文件保护方法的执行主体为终端设备,终端设备包括但不限于智能手机、平板电脑、笔记本电脑等移动终端,还可以包括台式电脑。如图所示的基于区块链的文件保护方法包括以下步骤:
S101:获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言。
终端设备在检测到用户通过交互界面触发文件加固指令时,获取用户选择的需要保护的第一文件,并获取第一文件的类型信息。用户可以是开发人员、测试人员或软件管理人员等。文件加固指令用于对需要保护的文件进行加固处理,防止需要保护的文件被反编译暴露源程序。
其中,区块链的架构可以简单分为协议层、扩展层和应用层,第一文件可以用于搭建扩展层与应用层之间的数据交互端口,从而防止第一文件被反编译后暴露源码而导致用户上传的数据或存储于扩展层的数据泄露。
第一文件对应的源文件所采用的程序设计语言可以是汇编语言,也可以是高级语言。例如Java语言、GO语言等。
具体地,在一实施方式中,第一文件的文件头中可以包括用于标识第一文件对应的源文件所采用的程序设计语言的描述信息,终端设备可以从第一文件的文件头中读取该描述信息,并通过该描述信息确定第一文件对应的源文件所采用的程序设计语言。
在另一实施方式中,终端设备可以扫面第一文件包含的内容,并从中提取特征信息,通过特征信息确定第一文件的类型信息。特征信息可以是关键字段,关键字段可以标识编译器的类型、编译器的版本号等。
S102:根据所述类型信息确定所述第一文件的防护信息;其中,所述防护信息用于防止反编译。
终端设备在获取到第一文件的类型信息时,可以从数据库中选择与类型信息匹配的防护信息,并从匹配的防护信息中确定第一文件的防护信息。当获取到的匹配的防护信息的数目为至少两个时,终端设备可以至少两个匹配的防护信息从中随机选择一个防护信息作为第一文件的防护信息;也可以对匹配的防护信息进行标识,以便依次循环选用,比如,终端设备在第一次执行S102时,将匹配的第一防护信息作为该类型信息对应的防护信息,在第二次执行S102时,将匹配的第二防护信息作为该类型信息对应的防护信息,依次类推。
可以理解的是,防护信息可以包括无效的程序片段,或者,防护信息可以包括由无效的程序片段编译后得到的数据。无效的程序片段用于混淆或修改所述第一文件包含的内容的执行路径,增加分析第一文件对应的二进制数据的难度,防止第一文件被反编译时暴露源码,以保护第一文件对应的源码,并且无效的程序片段不会改变第一文件包含的内容的执行逻辑,以维持第一文件的算法实现逻辑。无效的程序片段可以是毫无意义的程序指令,也可以是具有执行逻辑的无效的程序指令。程序片段的数目可以是一个或至少两个。例如,当第一文件对应的源文件所采用的程序语言为GO语言时,从数据库中选择采用GO语言编写的程序片段。当第一文件对应的源文件所采用的程序语言为Java语言时,从数据库中选择采用Java语言编写的程序片段。
在另一实施方式中,S102可以具体为:根据所述类型信息随机生成需要插入所述第一文件中的干扰信息;其中,所述干扰信息用于混淆所述第一文件包含的内容的执行路径。
例如,终端设备可以根据第一文件的类型信息随机生成与该类型信息匹配的防护信息。随机生成的防护信息可以包括干扰信息,干扰信息可以是无效的程序片段,每次生成的无效的程序片段的数据长度可以相同,也可以不同;随机生成的干扰信息所包含的内容不同。例如,终端设备第一次执行S102时随机生成的与第一文件的类型信息匹配的防护信息中包含的程序片段的长度为第一长度,终端设备第二次执行S102时随机生成的与第一文件的类型信息匹配的防护信息中包含的程序片段的长度为第二长度。
S103:根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,第二文件的执行逻辑与第一文件的执行逻辑相同。
终端设备内预先存储了预设的配置策略,预设的配置策略用于指示如何配置确定的防护信息,预设的配置策略可以根据实际的需求进行设置,此处不做限制。
可以理解的是,终端设备可以在第二文件中标记配置到第一文件中的防护信息所在的位置或地址,以便终端设备在加载第二文件或第二文件对应的可执行文件时,能够准确识别出配置的防护信息,第二文件的执行逻辑与第一文件的执行逻辑相同,以保证增加防护信息前后的算法或主函数的执行逻辑不变,以能够执行该算法或主函数的预设操作,进而实现预期的功能。
在另一实施例中,为了提高第一文件的数据安全性,增加反编译后分析第一文件的难度,防护信息包括无效的程序片段,无效的程序片段用于混淆第一文件包含的内容的执行路径,且不改变第一文件的执行逻辑。S103可以包括步骤S1031~S1032。具体地,请一并参阅图2,请参阅图2,图2是本发明实施例提供的一种基于区块链的文件保护方法中S103的具体实现流程图,具体如下:
S1031:确定插入所述无效的程序片段的位置信息。
预设的配置策略可以用于指示将无效的程序片段配置到第一文件的数据区的首端或尾端,此时,插入无效的程序片段的位置信息对应第一文件的数据区的首端或尾端;预设的配置策略还可以用于指示将无效的程序片段配置到第一文件中需要保护的函数对应的二进制数据中,此时,插入无效的程序片段的位置信息对应第一文件中需要保护的函数中的相应位置;预设的配置策略还可以用于指示将第一文件的二进制信息分组,并指示将无效的程序片段插入至任意两组数据之间,此时,插入无效的程序片段的位置信息对应需要插入无效的程序片段的两组数据的连接处。
S1032:根据所述位置信息将所述无效的程序片段配置到所述第一文件,得到第二文件。
例如,终端设备在确定预设的配置策略用于指示将防护信息配置到第一文件的数据区的首端或尾端时,如果第一文件的防护信息中包含无效的程序片段,通过编译工具对无效的程序片段进行编译得到干扰数据,并将干扰数据插入第一文件的数据区的首端或尾端;如果第一文件的防护信息中包含将无效的程序片段编译后得到的干扰数据,那么直接将干扰数据插入第一文件的数据区的首端或尾端。终端设备在将干扰数据插入第一文件的数据区的首端或尾端后,通过编译器对处理后的第一文件进行编译得到第二文件。
终端设备在确定预设的配置策略用于指示将防护信息配置到第一文件中需要保护的函数对应的二进制数据中时,如果第一文件的防护信息中包含无效的程序片段,通过编译工具对无效的程序片段进行编译得到干扰数据,并将干扰数据插入第一文件中需要保护的函数对应的二进制数据中;如果第一文件的防护信息中包含将无效的程序片段编译后得到的干扰数据,那么直接将干扰数据插入第一文件中需要保护的函数对应的二进制数据中。终端设备在将干扰数据插入第一文件中需要保护的函数对应的二进制数据中之后,通过编译器对处理后的第一文件进行编译得到第二文件。
终端设备在确认预设的配置策略用于指示将第一文件的二进制信息分组,并指示将防护信息插入至任意两组数据之间时,终端设备将第一文件中数据区的二进制数据拆分为预设数目的数据组,如果第一文件的防护信息中包含无效的程序片段,通过编译工具对无效的程序片段进行编译得到干扰数据,并将干扰数据插入第一文件对应的任意两个数据组之间;如果第一文件的防护信息中包含将无效的程序片段编译后得到的干扰数据,那么直接将干扰数据插入第一文件对应的任意两个数据组之间。终端设备在将干扰数据插入第一文件对应的任意两个数据组之间之后,通过编译器对处理后的第一文件进行编译得到第二文件。
进一步地,当防护信息包括无效的程序片段或由无效的程序片段编译后得到的干扰数据,终端设备在配置防护信息时,还设置用于指示防护信息的执行策略的信息时,S1032可以具体包括以下步骤:
根据所述无效的程序片段以及所述位置信息确定所述无效的程序片段的标记信息,其中,所述标记信息包括标识符或标记值,所述标识信息用于指示所述无效的程序片段的执行策略;
根据所述位置信息将所述无效的程序片段以及所述无效的程序片段的标记信息配置到所述第一文件,得到第二文件。
例如,终端设备在配置防护信息时,可以标记防护信息所对应的位置或地址,根据防护信息的所属类型设置用于指示防护信息的执行策略的标记位,并在标记位设置标识符或标记值。标记防护信息所对应的位置或地址用于准确识别出防护信息,防护信息的执行策略是指是否执行防护信息或者如何执行防护信息。比如,当标记位的标记值为0时,表示不执行防护信息;当标记位的标记值为1时,标识执行防护信息。
在一种实施方式中,假设第一文件的数据区由二进制数组a和二进制数组b组成,当防护信息为由无效的程序片段编译后得到的干扰数据,且无效的程序片段具有执行逻辑时,如果将无效的程序片段编译后得到的干扰数据c插入到第一文件中的二进制数组a与二进制数组b之间,那么终端设备可以在二进制数组a的末尾设置第一标识符以及在由无效的程序片段编译后得到的干扰数据c末尾设置第二标识符。
其中,二进制数组a以及二进制数组b各自对应的程序指令均完整。第一标识符用于指示在执行完二进制数组a对应的指令后跳转至无效的程序片段对应的入口地址,执行无效的程序片段。第二标识符用于指示在执行完无效的程序片段时,跳转至二进制数组b对应的程序指令,以执行二进制数组b对应的程序指令。
在插入由无效的程序片段编译后得到的干扰数据c之前,第一文件的执行路径为:二进制数组a、二进制数组b;在插入由无效的程序片段编译后得到的干扰数据c之后,第二文件的执行路径相应地变为:二进制数组a、干扰数据c、二进制数组b。
在另一种实施方式中,当防护信息为无效的程序片段编译后的干扰数据,且无效的程序片段不具有执行逻辑时,此时无效的程序片段为乱码或垃圾代码,终端设备不需要执行无效的程序片段,因此,终端设备可以在无效的程序片段的首部设置用于表示不执行该无效的程序片段的标识符或标记值。
当第一文件为目标文件,配置防护信息得到的第二文件也为目标文件时,终端设备还可以在第二文件的符号区设置防护信息所处位置的地址以及用于指示防护信息的执行策略的标识符,在对第二文件进行连接形成可执行文件的过程中,在符号描述符表设置用于指示防护信息的执行策略的标识符,以使得终端设备可以在加载第二文件对应的可执行文件时,可以根据防护信息所处位置的地址识别出防护信息,从第二文件对应的可执行文件的符号描述符表中查询用于指示防护信息的执行策略的标识符,并对其进行解析得到防护信息的执行策略,从而根据防护信息的执行策略执行防护信息。
当第一文件为可执行文件时,终端设备可以在第二文件的符号描述符表配置用于指示防护信息的执行策略的标识符的相关信息,例如,该相关信息可以包括防护信息所对应的地址段以及标记位对应的地址,还可以包括标记位对应的标识符。防护信息所对应的地址段用于识别防护信息,标记位对应的地址用于获取标记值或标记符,从而能够在解析得到标记值或标记符标识的防护信息的执行策略时,根据解析得到的防护信息的执行策略进行处理。
上述方案,通过为用于搭建区块链的数据交互端口的第一文件配置防护信息,从而通过配置的防护信息混淆第一文件中的内容,进而防止第一文件在被反编译时因暴露源码而导致第一文件中的算法被泄露。由于第一文件是二进制文件,通过对第一文件进行处理,而不是对第一文件的源码进行处理,能够提高反编译第一文件获取源码的复杂度以及难度,从而提高第一文件的数据安全性。由于第一交互文件用于搭建区块链的数据交互端口,提高第一文件的安全性的同时,能够提高通过区块链的数据交互端口传输的数据的安全性,进而增加第一文件对应的应用程序的用户信息或用户财产的安全性。
请参阅图3,图3是本发明实施例提供的另一种基于区块链的文件保护方法的实现流程图。本实施例与上述实施例的区别在于:在根据预设的配置策略将防护信息配置到所述第一文件得到第二文件之前,还可以隐藏或修改需要保护的目标数据对应的目标函数的入口地址。具体地,图3所示的基于区块链的文件保护方法具体包括以下步骤:
S201:获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言。
本实施例的S201与上述实施例的S101相同,具体请参阅上述实施例中S101的相关描述,此处不赘述。
S202:根据所述类型信息确定所述第一文件的防护信息;所述防护信息用于防止反编译。
本实施例的S202与上述实施例的S102相同,具体请参阅上述实施例中S102的相关描述,此处不赘述。
S203:确定所述第一文件中需要保护的目标数据;其中,所述目标数据用于实现需要保护的目标函数。
目标函数可以是主函数,也可以是包含核心算法的函数。终端设备可以通过目标函数的标识符确定第一文件中需要保护的目标数据;也可以根据第一文件中目标函数对应的地址段确定第一文件中需要保护的目标数据。
可以理解的是,S201与S203不分先后顺序执行,可以先执行S201~S202再执行S203,也可以先执行S203再执行S201~S202,还可以同时执行S201以及S203,此处不做限制。
S204:隐藏或修改所述目标函数的入口地址,并在所述第一文件中添加标识信息;其中,所述标识信息用于描述所述入口地址。
具体地,终端设备在通过目标函数的标识符确定第一文件中需要保护的目标数据时,可以获取目标数据分配到的目标地址段,并设置目标数据的地址偏移量,然后按设置的地址偏移量修改目标地址段,从而修改目标函数的入口地址。地址偏移量可以是随机分配的,也可以是预设值,此处不做限制。
终端设备在根据第一文件中目标函数对应的地址段确定第一文件中需要保护的目标数据时,可以设置目标数据的地址偏移量,然后按设置的地址偏移量修改目标地址段,从而修改目标函数的入口地址。
在修改目标函数的入口地址之后,可以根据地址偏移量在第一文件的符号区添加用于描述入口地址的地址偏移量的标识信息。
终端设备还可以根据目标数据分配到的目标地址段,在目标地址段之前插入无效的数据,从而隐藏目标数据对应的目标函数的入口地址。
S205:根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,第二文件的执行逻辑与第一文件的执行逻辑相同。
本实施例的S205与上述实施例的S103相同,具体请参阅上述实施例中S103的相关描述,此处不赘述。
上述方案,通过为用于搭建区块链的数据交互端口的第一文件配置防护信息,从而通过配置的防护信息混淆第一文件中的内容,进而防止第一文件在被反编译时因暴露源码而导致第一文件中的算法被泄露。由于第一文件是二进制文件,通过对第一文件进行处理,而不是对第一文件的源码进行处理,能够提高反编译第一文件获取源码的复杂度以及难度,从而提高第一文件的数据安全性。由于第一交互文件用于搭建区块链的数据交互端口,提高第一文件的安全性的同时,能够提高通过区块链的数据交互端口传输的数据的安全性,进而增加第一文件对应的应用程序的用户信息或用户财产的安全性。
终端设备隐藏或改变需要保护的目标数据对应的目标函数的入口地址,提高获取以及分析目标数据的难度,可以提高目标数据的安全性。
图4是本发明一实施例提供的一种终端设备的示意框图,该终端设备包括的各单元用于执行前述任意实施例中的基于区块链的文件保护方法的各步骤,具体请参阅图1至图3所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。本实施例的终端设备4包括获取单元410、防护信息确定单元420以及配置单元430,具体如下:
获取单元410,用于获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言。
防护信息确定单元420,用于根据所述类型信息确定所述第一文件的防护信息;所述防护信息用于防止反编译。
进一步地,防护信息确定单元420具体用于:根据所述类型信息随机生成需要插入所述第一文件中的干扰信息;其中,所述干扰信息用于混淆所述第一文件包含的内容的执行路径。
配置单元430,用于根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,第二文件的执行逻辑与第一文件的执行逻辑相同。
进一步地,所述防护信息包括无效的程序片段,配置单元430可以包括:
位置信息确定单元431,用于确定插入所述无效的程序片段的位置信息;
信息配置单元432,用于根据所述位置信息将所述无效的程序片段配置到所述第一文件,得到第二文件。
进一步地,信息配置单元432具体用于:
根据所述无效的程序片段以及所述位置信息确定所述无效的程序片段的标记信息,其中,所述标记信息包括标识符或标记值,所述标识信息用于指示所述无效的程序片段的执行策略;
根据所述位置信息将所述无效的程序片段以及所述无效的程序片段的标记信息配置到所述第一文件,得到第二文件。
可选地,终端设备还可以包括:
目标数据确定单元440,用于确定所述第一文件中需要保护的目标数据;其中,所述目标数据用于实现需要保护的目标函数;
设置单元450,用于隐藏或修改所述目标函数的入口地址,并在所述第一文件中添加标识信息;其中,所述标识信息用于描述获取所述入口地址。
上述方案,通过为用于搭建区块链的数据交互端口的第一文件配置防护信息,从而通过配置的防护信息混淆第一文件中的内容,进而防止第一文件在被反编译时因暴露源码而导致第一文件中的算法被泄露。由于第一文件是二进制文件,通过对第一文件进行处理,而不是对第一文件的源码进行处理,能够提高反编译第一文件获取源码的复杂度以及难度,从而提高第一文件的数据安全性。由于第一交互文件用于搭建区块链的数据交互端口,提高第一文件的安全性的同时,能够提高通过区块链的数据交互端口传输的数据的安全性,进而增加第一文件对应的应用程序的用户信息或用户财产的安全性。
终端设备隐藏或改变需要保护的目标数据对应的目标函数的入口地址,提高获取以及分析目标数据的难度,可以提高目标数据的安全性。
图5是本发明另一实施例提供的一种终端设备的示意框图。如图5所示,该实施例的终端设备5包括:处理器510、存储器520以及存储在所述存储器520中并可在所述处理器510上运行的计算机程序530,例如基于区块链的文件保护程序。所述处理器510执行所述计算机程序530时实现上述各个基于区块链的文件保护方法的实施例中的各步骤,例如图1所示的S101至S103。或者,所述处理器510执行所述计算机程序530时实现上述图4对应的实施例中各单元的功能,例如图4所示的单元410至450的功能,具体请参阅图4对应的实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序530可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器520中,并由所述处理器510执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序530在所述终端设备5中的执行过程。例如,所述计算机程序530可以被分割成获取单元、防护信息确定单元以及配置单元,各单元具体功能如上所述。
所述终端设备可包括,但不仅限于,处理器510、存储器520。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述空调还可以包括输入输出设备、网络接入设备、总线等。
所称处理器510可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器520可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器520也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器520还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器520用于存储所述计算机程序以及所述空调所需的其他程序和数据。所述存储器520还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于区块链的文件保护方法,其特征在于,包括:
获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言;
根据所述类型信息确定所述第一文件的与所述类型信息匹配的防护信息;其中,所述防护信息用于防止反编译;
根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,所述第二文件的执行逻辑与所述第一文件的执行逻辑相同。
2.根据权利要求1所述的基于区块链的文件保护方法,其特征在于,所述根据所述类型信息确定所述第一文件的与所述类型信息匹配的防护信息包括:
根据所述类型信息随机生成需要插入所述第一文件中的干扰信息;其中,所述干扰信息用于混淆所述第一文件包含的内容的执行路径。
3.根据权利要求1或2所述的基于区块链的文件保护方法,其特征在于,所述防护信息包括无效的程序片段;所述根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件,包括:
确定插入所述无效的程序片段的位置信息;
根据所述位置信息将所述无效的程序片段配置到所述第一文件,得到第二文件。
4.根据权利要求3所述的基于区块链的文件保护方法,其特征在于,所述根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件,包括:
根据所述无效的程序片段以及所述位置信息确定所述无效的程序片段的标记信息,其中,所述标记信息包括标识符或标记值,所述标记信息用于指示所述无效的程序片段的执行策略;
根据所述位置信息将所述无效的程序片段以及所述无效的程序片段的标记信息配置到所述第一文件,得到第二文件。
5.根据权利要求1所述的基于区块链的文件保护方法,其特征在于,所述根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件之前,还包括:
确定所述第一文件中需要保护的目标数据;其中,所述目标数据用于实现需要保护的目标函数;
隐藏或修改所述目标函数的入口地址,并在所述第一文件中添加标识信息;其中,所述标识信息用于描述获取所述入口地址。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取需要保护的第一文件的类型信息;其中,所述第一文件用于搭建区块链的数据交互端口,所述第一文件为目标文件或可执行文件,所述目标文件是源文件经过编译程序产生的能被处理器执行的二进制文件,所述可执行文件是将目标文件链接后形成的文件,所述类型信息用于标识所述第一文件对应的源文件所采用的程序设计语言;
根据所述类型信息确定所述第一文件的与所述类型信息匹配的防护信息;其中,所述防护信息用于防止反编译;
根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件;其中,所述第二文件的执行逻辑与所述第一文件的执行逻辑相同。
7.根据权利要求6所述的终端设备,其特征在于,所述防护信息包括无效的程序片段;
所述根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件,包括:
确定插入所述无效的程序片段的位置信息;
根据所述位置信息将所述无效的程序片段配置到所述第一文件,得到第二文件。
8.根据权利要求7所述的终端设备,其特征在于,所述根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件,包括:
根据所述无效的程序片段以及所述位置信息确定所述无效的程序片段的标记信息,其中,所述标记信息包括标识符或标记值,所述标记信息用于指示所述无效的程序片段的执行策略;
根据所述位置信息将所述无效的程序片段以及所述无效的程序片段的标记信息配置到所述第一文件,得到第二文件。
9.根据权利要求6所述的终端设备,其特征在于,所述根据预设的配置策略将所述防护信息配置到所述第一文件,得到第二文件之前,所述处理器执行所述计算机程序时还实现如下步骤:
确定所述第一文件中需要保护的目标数据;其中,所述目标数据用于实现需要保护的目标函数;
隐藏或修改所述目标函数的入口地址,并在所述第一文件中添加标识信息;其中,所述标识信息用于描述获取所述入口地址。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810496143.4A CN108733990B (zh) | 2018-05-22 | 2018-05-22 | 一种基于区块链的文件保护方法及终端设备 |
SG11201912786WA SG11201912786WA (en) | 2018-05-22 | 2018-07-25 | Block Chain-based File Protection Method and Terminal Device |
PCT/CN2018/097119 WO2019223094A1 (zh) | 2018-05-22 | 2018-07-25 | 一种基于区块链的文件保护方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810496143.4A CN108733990B (zh) | 2018-05-22 | 2018-05-22 | 一种基于区块链的文件保护方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733990A CN108733990A (zh) | 2018-11-02 |
CN108733990B true CN108733990B (zh) | 2022-04-05 |
Family
ID=63937791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810496143.4A Active CN108733990B (zh) | 2018-05-22 | 2018-05-22 | 一种基于区块链的文件保护方法及终端设备 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN108733990B (zh) |
SG (1) | SG11201912786WA (zh) |
WO (1) | WO2019223094A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733990B (zh) * | 2018-05-22 | 2022-04-05 | 深圳壹账通智能科技有限公司 | 一种基于区块链的文件保护方法及终端设备 |
CN109104445B (zh) * | 2018-11-05 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 基于区块链的业务系统的防攻击方法及系统 |
CN115459914A (zh) * | 2022-09-14 | 2022-12-09 | 山东银瑞信息科技有限公司 | 一种基于区块链的数据加密和点对点传输方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807239A (zh) * | 2010-03-29 | 2010-08-18 | 山东高效能服务器和存储研究院 | 一种防止源代码反编译的方法 |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
US9032526B2 (en) * | 2011-05-12 | 2015-05-12 | Microsoft Technology Licensing, Llc | Emulating mixed-code programs using a virtual machine instance |
CN103324872B (zh) * | 2013-07-12 | 2016-04-27 | 上海交通大学 | 基于指令混淆的Android应用程序保护方法及系统 |
CN103544414B (zh) * | 2013-10-25 | 2015-08-19 | 江苏通付盾信息科技有限公司 | 一种Android系统应用的深度代码混淆方法 |
CN103778355B (zh) * | 2014-01-15 | 2017-02-15 | 西北大学 | 一种基于代码变形的二进制代码混淆方法 |
CN104834837B (zh) * | 2015-04-03 | 2017-10-31 | 西北大学 | 一种基于语义的二进制代码反混淆方法 |
EP3281104B1 (en) * | 2015-04-07 | 2024-01-24 | Runsafe Security, Inc. | System and method of obfuscation through binary and memory diversity |
CN105005718B (zh) * | 2015-06-23 | 2018-02-13 | 电子科技大学 | 一种利用马尔可夫链实现代码混淆的方法 |
CN106529224A (zh) * | 2016-10-27 | 2017-03-22 | 南京大学 | 基于rop攻击特点的二进制混淆方法 |
CN106650340B (zh) * | 2016-11-16 | 2019-12-06 | 中国人民解放军国防科学技术大学 | 一种采用动态细粒度代码隐藏与混淆技术的二进制软件保护方法 |
CN107819777B (zh) * | 2017-11-17 | 2020-07-24 | 利姆斯(北京)区块链技术有限公司 | 一种基于区块链技术的数据存证方法及系统 |
CN108733990B (zh) * | 2018-05-22 | 2022-04-05 | 深圳壹账通智能科技有限公司 | 一种基于区块链的文件保护方法及终端设备 |
-
2018
- 2018-05-22 CN CN201810496143.4A patent/CN108733990B/zh active Active
- 2018-07-25 SG SG11201912786WA patent/SG11201912786WA/en unknown
- 2018-07-25 WO PCT/CN2018/097119 patent/WO2019223094A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019223094A1 (zh) | 2019-11-28 |
CN108733990A (zh) | 2018-11-02 |
SG11201912786WA (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10586026B2 (en) | Simple obfuscation of text data in binary files | |
US7757097B2 (en) | Method and system for tamperproofing software | |
CN101908119B (zh) | 一种动态链接库dll文件的处理方法和装置 | |
US7584364B2 (en) | Overlapped code obfuscation | |
AU2012200181B2 (en) | System and method for supporting JIT in a secure system with randomly allocated memory ranges | |
KR101503785B1 (ko) | 동적 라이브러리를 보호하는 방법 및 장치 | |
CN108733990B (zh) | 一种基于区块链的文件保护方法及终端设备 | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN104866739A (zh) | 安卓系统中应用程序加密方法及系统 | |
CN110659459B (zh) | 一种软件代码处理方法、装置、电子设备及存储介质 | |
US20110271350A1 (en) | method for protecting software | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
CN109388946B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN112001376B (zh) | 基于开源组件的指纹识别方法、装置、设备及存储介质 | |
JP2015103253A (ja) | 構造体を生成する方法および対応する構造体 | |
CN110119601B (zh) | 基于应用程序安装包的程序加固方法及装置 | |
KR101536920B1 (ko) | Arm 프로세서 기반의 파일 난독화 방법 | |
US11256786B2 (en) | Method to secure a software code | |
CN108021790B (zh) | 文件保护方法、装置、计算设备及计算机存储介质 | |
CN114090965B (zh) | java代码混淆方法、系统、计算机设备及存储介质 | |
CN113094664B (zh) | 一种防止安卓应用程序被反编译的系统 | |
CN104680043A (zh) | 一种可执行文件的保护方法及装置 | |
US9684631B2 (en) | Processing sytem with a secure set of executable instructions and/or addressing scheme | |
Bazhenov et al. | Methodology of software code decomposition analysis | |
CN109918872B (zh) | Android应用加固方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1257009 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |