CN102254125A - Elf文件加密方法及*** - Google Patents
Elf文件加密方法及*** Download PDFInfo
- Publication number
- CN102254125A CN102254125A CN201010180099XA CN201010180099A CN102254125A CN 102254125 A CN102254125 A CN 102254125A CN 201010180099X A CN201010180099X A CN 201010180099XA CN 201010180099 A CN201010180099 A CN 201010180099A CN 102254125 A CN102254125 A CN 102254125A
- Authority
- CN
- China
- Prior art keywords
- symbol
- encryption
- elf file
- sign map
- elf
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种ELF文件加密方法,包括如下步骤:遍历符号表中的符号;根据所述符号获取与所述符号相对应的加密符;将所述加密符替换符号表中的符号。上述ELF文件加密方法及***通过加密符对符号表中的符号进行替换,使加密后的符号难以阅读,有效地提高了文件被恶意破解的门槛,从而在不影响应用程序功能的情况下,改善了应用程序的安全性,保护了用户的合法权益。
Description
【技术领域】
本发明涉及加密技术,特别是涉及一种ELF文件加密方法及***。
【背景技术】
ELF(excutable and linking format,可执行链接格式)文件是一种可执行可链接格式的二进制文件,被广泛地应用于电脑、嵌入式***及移动终端等应用程序中,包含了三种格式,即可重定位文件(relocatable object file)、可执行文件(executable file)以及共享文件(shared object file)。在应用程序中,ELF文件可以被调入中央处理器中直接运行,也可与多个ELF文件链接在一起而形成一个可执行文件,具有强大的功能。
然而,由于ELF文件中的符号表记录了文件中的所有函数名、全局变量名以及外部引用的符号名,第三方可以用反编译工具通过对符号表中的符号进行猜测,进而破解篡改。
【发明内容】
基于此,有必要提供一种改善安全性的ELF文件加密方法。
此外,还有必要提供一种改善安全性的ELF文件加密***。
一种ELF文件加密方法,包括如下步骤:遍历符号表中的符号;根据所述符号获取与所述符号相对应的加密符;将所述加密符替换符号表中的符号。
优选地,所述根据所述符号获取与所述符号相对应的加密符的步骤具体是:根据所述符号生成加密符。
优选地,所述根据所述符号获取与所述符号相对应的加密符的步骤还包括:将所述符号及相对应的加密符记录于符号映射表中。
优选地,所述根据所述符号生成加密符的步骤之前还包括在所述符号映射表中查找与所述符号相对应的加密符,若所述符号映射表中有与所述符号相对应的加密符,则获取所述加密符,若所述符号映射表中没有与所述符号相对应的加密符,则执行所述根据所述符号生成加密符的步骤。
优选地,所述方法还包括如下步骤:判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则遍历符号表中的下一位符号。
一种ELF文件加密***,至少包括:遍历模块,用于遍历符号表中的符号;加密符生成模块,用于根据所述符号获取与所述符号相对应的加密符;替换模块,用于将所述加密符替换所述符号表中的符号。
优选地,所述加密符生成模块根据所述符号生成加密符。
优选地,所述加密符生成模块将所述符号及相对应的加密符记录于符号映射表中。
优选地,所述加密符生成模块还用于在所述符号映射表中查找与所述符号相对应的加密符,若符号映射表中有与所述符号相对应的加密符,则获取所述加密符,若没有,则根据符号生成加密符。
优选地,所述替换模块进一步用于判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则通知遍历模块遍历符号表中的下一位符号。
上述ELF文件加密方法及***通过加密符对符号表中的符号进行替换,使加密后的符号难以阅读,有效地提高了文件被恶意破解的门槛,从而在不影响应用程序功能的情况下,改善了应用程序的安全性,保护了用户的合法权益。
【附图说明】
图1为本发明中ELF文件加密方法的流程图;
图2为一实施例中ELF文件加密方法的流程图;
图3为另一实施例中ELF文件加密方法的流程图;
图4为本发明中ELF文件加密***的模块图;
【具体实施方式】
图1示出了本发明中ELF文件加密的方法流程,具体过程如下:
在步骤S10中,遍历符号表中的符号。一实施例中,遍历符号表,逐个访问符号表中的符号。符号表是ELF文件的重要组成部分,记录了定位或重定位的符号以及引用时所需要的信息。
在步骤S20中,根据所述符号获取与所述符号相对应的加密符。一实施例中,根据该符号,得到与之存在映射关系相互关联的加密符,以便于在后续的文件加密过程中提高破解ELF文件的门槛。
在步骤S30中,将所述加密符替换所述符号表中的符号。一实施例中,将根据符号得到与其相对应的加密符,并将符号表中的符号替换成加密符,通过此方式,将编码规范、命名意义明了的符号表替换成难以猜测分析的加密文件,改善了文件的安全性。
图2示出了一实施例中ELF文件加密的方法流程,具体过程如下:
在步骤S101中,遍历符号表中的符号。一实施例中,遍历ELF文件中的符号表,逐一访问其中的符号。
在步骤S102中,根据所述符号生成加密符。一实施例中,根据符号表中的符号,通过加密算法随机生成与该符号相对应的加密符,以便于在后续的加密过程中混淆加密ELF文件。
在步骤S103中,将所述加密符替换符号表中的符号。一实施例中,将通过加密算法计算得到的与该符号有映射关系的加密符替换符号表中的符号。该加密符对于符号而言是唯一的、一一对应的。
在步骤S104中,根据所述替换的符号,判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则进入步骤S105。一实施例中,在替换了符号表中的符号后,判断该符号是否是符号表中的最后一位符号,若是,则ELF文件符号表中的符号已经替换完毕,完成了文件的加密,反之,则继续遍历该符号表中的下一位符号,以继续末完成的加密任务,循环加密过程,直至加密符替换了符号表中与其相对应的最末位符号。
在步骤S105中,遍历符号表中的下一位符号,返回步骤S102。一实施例中,继续遍历符号表中的下一位符号,循环ELF文件的加密过程。
图3示出了另一实施例中ELF文件加密的方法流程,具体过程如下:
在步骤S201中,遍历符号表中的符号。一实施例中,该符号标识了定位或重定位以及引用时所需要的信息。
在步骤S202中,在所述符号映射表中查找与所述符号相对应的加密符,若符号映射表中有与所述符号相对应的加密符,则获取所述加密符。一实施例中,根据所访问的符号,查找符号映射表中关于所访问符号的加密符记录,如果存在该条记录,则获取加密符。该符号映射表是动态地记录了符号以及与之相对应的加密符,如果符号映射表中没有关于所遍历符号的记录,则通过加密算法随机生成加密符,即对所访问的符号随机重新命名,以更新该符号映射表中的记录。
在步骤S203中,根据所述符号生成加密符。一实施例中,如前所述,通过加密算法随机生成与该符号相关联的加密符,对其进行随机重新命名。例如,符号表中,所访问的符号是变量名index,访问预设的符号映射表,查找变量名index,如果没有查找到该变量名index,则通过加密算法随机生成加密符,对变量名index重新命名。
在步骤S204中,将所述符号及相对应的加密符记录于符号映射表中。一实施例中,将符号和通过加密算法得到的加密符保存于符号映射表当中,以便于在ELF文件的符号表加密中一旦生成了所遍历的符号的加密符,便无须再次生成该加密符,而只需调用该符号即可。
在步骤S205中,将所述加密符替换符号表中的符号。一实施例中,将通过加密算法计算得到的与该符号映射关系的加密符替换符号表中的符号。
在步骤S206中,根据所述替换的符号,判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则进入步骤S206。一实施例中,在替换了符号表中的符号后,判断该符号是否是符号表中的最后一位符号,若是,则ELF文件符号表中的符号已经替换完毕,完成了文件的加密,反之,则继续遍历该符号表中的下一位符号,以继续末完成的加密任务,循环加密过程,直至加密符替换了符号表中与其相对应的最末位符号。
在步骤S207中,遍历符号表中的下一位符号,返回步骤S203。一实施例中,继续遍历符号表中的下一位符号,循环ELF文件的加密过程。
图4示出了本发明中ELF文件加密***的模块图,该***包括遍历模块10、加密符生成模块20以及替换模块30,其中:
遍历模块10,用于遍历符号表中的符号。一实施例中,遍历模块10遍历ELF文件中的符号表,逐一访问其中的符号。如前所述,符号表是ELF文件的重要组成部分,记录了定位或重定位的符号和引用时所需要的信息。
加密符生成模块20,用于根据所述符号获取与所述符号相对应的加密符。一实施方式中,如前所述加密符与符号表中的符号是一一对应的,加密符生成模块20根据所述符号生成加密符。一实施中,根据符号表中的符号,通过加密算法随机生成与该符号相关联的加密符,以加密ELF文件。另一实施方式中,加密符生成模块20还用于在所述符号映射表中查找与所述符号相对应的加密符,若符号映射表中有与所述符号相对应的加密符,则获取所述加密符,若符号映射表中没有与所述符号相对应的加密符,则根据所述符号生成加密符,并记录于符号映射表中,以更新符号映射表。一实施例中,加密符生成模块20根据所访问的符号首先查找符号映射表中关于所访问符号的加密符,如果存在该条记录,则获取加密符。符号映射表动态地记录了符号以及与之相对应的加密符,如果符号映射表中没有关于该符号的记录,则通过加密算法随机生成加密符,即对所访问的符号随机重新命名。
替换模块30,用于将所述加密符替换所述符号表中的符号。一实施例中,根据在符号表中所访问的符号,获取加密符,以替换符号表中的符号。另一实施例中,替换模块30进一步用于根据所述替换的符号,判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则通知遍历模块10遍历下一位符号。在替换了符号表中的符号后,判断该符号是否是符号表中的最后一位符号,若是,则ELF文件符号表中的符号已经替换完毕,完成了文件的加密,反之,则继续遍历该符号表中的下一位符号,以继续末完成的加密任务,循环加密过程,直至加密符替换了符号表中与其相对应的最末位符号。
上述ELF文件加密方法及***通过加密符对符号表中的符号进行替换,使加密后的符号难以阅读,有效地提高了恶意破解的门槛,从而在不影响就用程序功能的情况下,改善应用程序的安全性,保护了用户的合法权益。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种ELF文件加密方法,包括如下步骤:
遍历符号表中的符号;
根据所述符号获取与所述符号相对应的加密符;
将所述加密符替换符号表中的符号。
2.根据权利要求1所述的ELF文件加密方法,其特征在于,所述根据所述符号获取与所述符号相对应的加密符的步骤具体是:
根据所述符号生成加密符。
3.根据权利要求2所述的ELF文件加密方法,其特征在于,所述根据所述符号获取与所述符号相对应的加密符的步骤还包括:
将所述符号及相对应的加密符记录于符号映射表中。
4.根据权利要求3所述的ELF文件加密方法,其特征在于,所述根据所述符号生成加密符的步骤之前还包括在所述符号映射表中查找与所述符号相对应的加密符,若所述符号映射表中有与所述符号相对应的加密符,则获取所述加密符,若所述符号映射表中没有与所述符号相对应的加密符,则执行所述根据所述符号生成加密符的步骤。
5.根据权利要求1至4中任意一项所述的ELF文件加密方法,其特征在于,所述方法还包括如下步骤:
判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则遍历符号表中的下一位符号。
6.一种ELF文件加密***,其特征在于,至少包括:
遍历模块,用于遍历符号表中的符号;
加密符生成模块,用于根据所述符号获取与所述符号相对应的加密符;
替换模块,用于将所述加密符替换所述符号表中的符号。
7.根据权利要求6所述的ELF文件加密***,其特征在于,所述加密符生成模块根据所述符号生成加密符。
8.根据权利要求7所述的ELF文件加密***,其特征在于,所述加密符生成模块将所述符号及相对应的加密符记录于符号映射表中。
9.根据权利要求8所述的ELF文件加密***,其特征在于,所述加密符生成模块还用于在所述符号映射表中查找与所述符号相对应的加密符,若符号映射表中有与所述符号相对应的加密符,则获取所述加密符,若没有,则根据符号生成加密符。
10.根据权利要求6至于9中任意一项所述的ELF文件加密***,其特征在于,所述替换模块进一步用于判断所述替换的符号是否为所述符号表中的最末位符号,若是,则结束,反之,则通知遍历模块遍历符号表中的下一位符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010180099XA CN102254125A (zh) | 2010-05-21 | 2010-05-21 | Elf文件加密方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010180099XA CN102254125A (zh) | 2010-05-21 | 2010-05-21 | Elf文件加密方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102254125A true CN102254125A (zh) | 2011-11-23 |
Family
ID=44981385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010180099XA Pending CN102254125A (zh) | 2010-05-21 | 2010-05-21 | Elf文件加密方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102254125A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873250A (zh) * | 2012-12-18 | 2014-06-18 | ***通信集团河南有限公司 | 一种密文生成方法、密文解密方法及加密解密装置 |
CN105095771A (zh) * | 2014-05-08 | 2015-11-25 | 北京娜迦信息科技发展有限公司 | 一种共享目标文件的保护方法及装置 |
CN105404823A (zh) * | 2015-10-29 | 2016-03-16 | 浪潮电子信息产业股份有限公司 | 一种控制elf文件运行的方法、装置和操作*** |
CN105447342A (zh) * | 2014-08-28 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 脚本加密方法、解密方法及引擎 |
CN107122169A (zh) * | 2017-03-21 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种Flash函数加密的方法及装置 |
CN107342931A (zh) * | 2016-04-28 | 2017-11-10 | Sk 普兰尼特有限公司 | 使用个性化模板的安全消息发送方法和使用该方法的设备 |
CN108062292A (zh) * | 2016-11-09 | 2018-05-22 | 北京国双科技有限公司 | 文件存储、读取方法及装置 |
CN109409038A (zh) * | 2018-09-30 | 2019-03-01 | 北京梆梆安全科技有限公司 | 一种动态链接库文件的破解风险检测方法及装置 |
CN112292678A (zh) * | 2019-01-04 | 2021-01-29 | 百度时代网络技术(北京)有限公司 | 用于验证将要由主机***的数据处理加速器执行的内核对象的方法与*** |
CN113420311A (zh) * | 2021-07-01 | 2021-09-21 | 湖南国科微电子股份有限公司 | 一种rtl文件加密方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089816A (zh) * | 2007-08-09 | 2007-12-19 | 威盛电子股份有限公司 | 应用程序处理方法及*** |
CN101340314A (zh) * | 2008-08-11 | 2009-01-07 | 中兴通讯股份有限公司 | 一种嵌入式***的实时调试定位方法及其装置 |
-
2010
- 2010-05-21 CN CN201010180099XA patent/CN102254125A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089816A (zh) * | 2007-08-09 | 2007-12-19 | 威盛电子股份有限公司 | 应用程序处理方法及*** |
CN101340314A (zh) * | 2008-08-11 | 2009-01-07 | 中兴通讯股份有限公司 | 一种嵌入式***的实时调试定位方法及其装置 |
Non-Patent Citations (1)
Title |
---|
傅昌盛: "用VISUL BASIC实现文件加密", 《电脑编程技巧与维护》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873250B (zh) * | 2012-12-18 | 2017-06-20 | ***通信集团河南有限公司 | 一种密文生成方法、密文解密方法及加密解密装置 |
CN103873250A (zh) * | 2012-12-18 | 2014-06-18 | ***通信集团河南有限公司 | 一种密文生成方法、密文解密方法及加密解密装置 |
CN105095771A (zh) * | 2014-05-08 | 2015-11-25 | 北京娜迦信息科技发展有限公司 | 一种共享目标文件的保护方法及装置 |
CN105095771B (zh) * | 2014-05-08 | 2018-12-28 | 北京娜迦信息科技发展有限公司 | 一种共享目标文件的保护方法及装置 |
CN105447342B (zh) * | 2014-08-28 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 脚本加密方法、解密方法及引擎 |
CN105447342A (zh) * | 2014-08-28 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 脚本加密方法、解密方法及引擎 |
CN105404823B (zh) * | 2015-10-29 | 2018-02-23 | 浪潮电子信息产业股份有限公司 | 一种控制elf文件运行的方法、装置和操作*** |
CN105404823A (zh) * | 2015-10-29 | 2016-03-16 | 浪潮电子信息产业股份有限公司 | 一种控制elf文件运行的方法、装置和操作*** |
CN107342931A (zh) * | 2016-04-28 | 2017-11-10 | Sk 普兰尼特有限公司 | 使用个性化模板的安全消息发送方法和使用该方法的设备 |
CN107342931B (zh) * | 2016-04-28 | 2020-11-17 | Sk 普兰尼特有限公司 | 使用个性化模板的安全消息发送方法和使用该方法的设备 |
CN108062292A (zh) * | 2016-11-09 | 2018-05-22 | 北京国双科技有限公司 | 文件存储、读取方法及装置 |
CN107122169A (zh) * | 2017-03-21 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种Flash函数加密的方法及装置 |
CN109409038A (zh) * | 2018-09-30 | 2019-03-01 | 北京梆梆安全科技有限公司 | 一种动态链接库文件的破解风险检测方法及装置 |
CN112292678A (zh) * | 2019-01-04 | 2021-01-29 | 百度时代网络技术(北京)有限公司 | 用于验证将要由主机***的数据处理加速器执行的内核对象的方法与*** |
CN113420311A (zh) * | 2021-07-01 | 2021-09-21 | 湖南国科微电子股份有限公司 | 一种rtl文件加密方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102254125A (zh) | Elf文件加密方法及*** | |
KR101813481B1 (ko) | 사용자 정보를 익명 처리하는 장치, 저장 매체 및 방법 | |
JP5314016B2 (ja) | 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路 | |
MX2007008540A (es) | Metodo y dispositivo de almacenamiento portatil para asignar area segura en area insegura. | |
CN104794388B (zh) | 应用程序存取保护方法及应用程序存取保护装置 | |
KR101033511B1 (ko) | 개인정보 보호 방법 및 이를 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체 | |
CN108334754B (zh) | 嵌入式***程序的加密解密方法及*** | |
US9805216B2 (en) | Privacy compliance event analysis system | |
Calciati et al. | Automatically granted permissions in Android apps: An empirical study on their prevalence and on the potential threats for privacy | |
CN103324671A (zh) | 一种基于Webkit浏览器的信息存储管理方法及装置 | |
CN106295407A (zh) | 一种检测文件是否被篡改的方法及装置 | |
CN108108633B (zh) | 一种数据文件及其访问方法、装置及设备 | |
CN102968455A (zh) | 一种应用层透明的数据库加密方法 | |
CN107885864A (zh) | 一种加密数据查询方法、***、装置及可读存储介质 | |
Fu et al. | Data correlation‐based analysis methods for automatic memory forensic | |
CN111753312B (zh) | 数据处理方法、装置、设备和*** | |
CN104951705A (zh) | 一种基于操作***接口重写的安卓应用数据加密封装方法 | |
CN102118503A (zh) | 数据保护方法、装置及终端 | |
CN114091062A (zh) | 职业数据处理方法及装置 | |
WO2015154469A1 (zh) | 数据库的操作方法及装置 | |
KR102375973B1 (ko) | 사례기반 추론엔진을 이용한 보안 서버 및 보안 기능의 설치를 위한 저장 매체 | |
CN104866740A (zh) | 一种防静态分析文件的方法及装置 | |
US11138319B2 (en) | Light-weight context tracking and repair for preventing integrity and confidentiality violations | |
CN111062030A (zh) | 一种应用程序被篡改的识别方法及装置 | |
CN105975860B (zh) | 一种信任文件管理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111123 |