CN103093155B - 基于源码修改的信息隐藏方法 - Google Patents
基于源码修改的信息隐藏方法 Download PDFInfo
- Publication number
- CN103093155B CN103093155B CN201210549413.6A CN201210549413A CN103093155B CN 103093155 B CN103093155 B CN 103093155B CN 201210549413 A CN201210549413 A CN 201210549413A CN 103093155 B CN103093155 B CN 103093155B
- Authority
- CN
- China
- Prior art keywords
- secret information
- code
- information
- grouping
- redundancy functions
- 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.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于源码修改的信息隐藏方法,利用本算法可以显著提高隐藏信息容量,并增强信息的安全性。本发明通过以下方案予以实现:首先选择载体源代码库,从中选取合适的程序源代码,向源代码中均匀嵌入冗余函数,然后编译,在生成的可执行文件的基础上,用预处理后的隐秘信息替换冗余函数所占空间,并计算出提取密钥。接收端利用提取密钥作用于嵌入信息后的可执行文件,并对提取出的信息做逆处理,得到隐秘信息。
Description
技术领域
本发明涉及一种基于源码修改的信息隐藏方法,属于信息安全技术领域尤其是信息隐藏技术领域。
背景技术
随着互联网技术的不断发展和推广,电子政务、电子商务、航天和军工等行业得到了前所未有的提升和发展。伴随互联网技术的蓬勃发展趋势,各国各地的各种文字、图像、音频和多媒体数据等及时传播到世界各地,人们进行着一种高效和低廉的信息传递工作,政府、企业、个人和各种组织等普遍利用这一个开放互联的公共网络信息平台,构建适合自己的信息渠道,传递大量的公开或秘密的信息。同时,对于这些平台或网络上的数据信息的安全性保护也引起世界各地用户的普遍担忧。
信息隐藏技术是20世纪90年代以来从国外兴起的一门前沿技术,属于信息安全领域的研究范畴。信息隐藏技术也称信息伪装术,集信息论、计算机通信、计算机图形与图像、计算机网络攻防与密码分析等多学科知识,是国际学术界的研究热点之一。简而言之,信息隐藏(InformationHiding)是利用公开的载体在时间或空间的冗余特性,将隐秘信息嵌入到公开的载体之中,从而形成了携密载体,实现利用公共网络进行隐秘信息的隐蔽通信或存储。这些公开载体包括网页、文字、图形图像、音频和视频、软件等相关数字多媒体信息。隐藏后的隐秘信息对于非授权者一般而言是看不见或触摸不到的,从而达到对版权、密钥和秘密信息的保护或传递。可见,信息隐藏是利用人类感觉器官的不敏感性,以及多媒体数字信号本身的冗余特性,将隐秘信息隐藏在宿主信号之中,不被人感觉或注意,而且不影响宿主信号的使用效果。
目前多数隐写算法均采用数字图像、音频、视频和文字等载体,实现隐蔽通信或信息存储。而基于可执行文件方面的隐写算法则研究不多。
Hydan和Silo算法:Hydan和Silo被认为是在可执行文件中嵌入隐秘信息的代表性方法。在Hydan中提出了在x86机器上通过定义一系列功能相同的指令集合,利用随机密钥将隐秘信息嵌入到指令中,并对可执行文件进行指令替换,达到信息隐藏的目的。Silo在此基础上进行了改进,提出了可执行文件存在的三处冗余,同时也提高了编码率与安全性。但此方法存在以下缺陷:1、嵌入容量小,不到整个可执行文件大小的六分之一;2、现在编译器的指令优化不断提高,对功能相同的指令替换越来越困难。
ZaidanA.A.等人提出的一系列的基于可执行文件的信息隐藏方法具有很高的信息嵌入容量。通过分析可执行文件的三种可用于隐藏信息的区域,一个大小固定的区域和两个大小可变的区域。通过增加可变区域的大小,可以明显的提高信息嵌入容量,并通过实验证明了该方法能够保持程序的完整功能,并且可以抵抗杀毒软件的检测。但此方法存在以下不足:1、此方法改变了程序结构与大小,这给攻击者提供了很好的分析途径,安全性太差。2、此方法局限于windows下的PE文件,对于其他平台的可执行文件无效。
发明内容
针对现有关于可执行文件的信息隐藏技术的缺陷,提出一种基于源码修改的信息隐藏方法,采用如下技术方案:
本发明解决了以下问题:
(1)针对Hydan和Silo算法的嵌入容量低,明显提高嵌入容量与嵌入效率;
(2)针对ZaidanA.A.等人提出的方法安全性较差的问题,增大攻击的难度;
(3)隐秘信息区域均匀分布;
(4)提取算法不唯一。
附图说明
图1是本发明一种基于源码修改的信息隐藏模型图;
图2是本发明中涉及到的隐秘信息存储结构示意图;
图3是本发明一种后门提取算法流程图。
具体实施方式
以下结合具体实施例,对本发明进行详细说明。
本发明属于信息隐藏方法,即将隐秘信息隐藏到可执行文件中;参考图1,本实施例提供了一种利用后门提取法实现的程序源码修改的信息隐藏方法,包括以下步骤(步骤1与2不分先后;步骤3与4不分先后):
(1)源代码预处理对程序多个源文件均匀的嵌入冗余函数,生成对应的冗余代码分组。冗余代码是指嵌入冗余函数后的源代码,冗余代码包含冗余函数,并且包含正常的有效代码。
(2)构造后门代码构造用于提取隐秘信息的一个后门代码。所谓后门代码,是指这段代码在程序正常运行的情况下,不会被执行。我们需要特定的数据输入,来触发后门代码的执行,从而提取出隐秘信息。将此后门代码加入到冗余代码中。对冗余代码分组进行编译链接,生成可执行文件载体C。对载体C进行分析,得出每个冗余函数在C中的地址信息。
(3)隐秘信息预处理首先对隐秘信息的加密,压缩。然后将处理后的隐秘信息进行平均分组,隐秘信息分组数量要小于冗余函数的数量。建立隐秘信息分组与冗余函数分组的一一映射关系,同时在每个隐秘信息分组中加入在(2)中得到的对应的地址信息,从而构成隐秘信息分组链表,如图2。
(4)构造提取密钥根据(2)中得到的第一个隐秘信息分组的地址信息,作为整个隐秘信息链表的头地址,将表头地址写进后门代码中,同时设计特定的数据,用以触发后门代码,此数据即为提取密钥。
(5)隐秘信息嵌入将冗余函数在C中对应的位置替换成隐秘信息分组,生成最终携密载体C′。
(6)隐秘信息的提取提取过程如图3。运行携密载体C′,将提取密钥作用于携密载体,从而触发后门代码。隐秘信息链表被后门代码读取并解析,从而生成隐秘信息。对生成的隐秘信息做相应的逆处理,就得到了最终的隐秘信息S。
本发明的信息隐藏方法具有以下有益效果:
(1)此隐写模型从源码的角度修改载体,使得载体的变化与以往的不同。源码隐写具有更高的安全性与抗攻击性。
(2)由于是从源码修改载体,载体在生成可执行文件时,文件的大小是不明确的。所以我们的嵌入容量可以无限增加。
(3)通过不同的编译器进行编译,生成不同版本的携密载体,但依然可以利用对应的密钥正确提取出完整的隐秘信息,提高了攻击的难度。
(4)携密载体具有抵抗杀毒软件的能力,并且程序功能完善,不具有明显的变化特征,使攻击者难以察觉。
(5)通过控制冗余函数大小,可提高隐秘信息的嵌入效率。
(6)由于我们提取隐秘信息时,携密载体是运行的。所以对于可执行文件的任何非破坏性压缩(保持可执行文件的可执行性),我们都能够正确提取出隐秘信息。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (1)
1.一种基于源码修改的信息隐藏方法,其特征在于,该方法包括以下步骤:
(1)源代码预处理:对程序多个源文件均匀的嵌入冗余函数,生成对应的冗余代码分组,冗余代码是指嵌入冗余函数后的源代码,冗余代码包含冗余函数,并且包含正常的有效代码;
(2)构造后门代码:构造用于提取隐秘信息的一个后门代码,所谓后门代码,是指这段代码在程序正常运行的情况下,不会被执行,用特定的数据输入,来触发后门代码的执行,从而提取出隐秘信息,将此后门代码加入到冗余代码中,对冗余代码分组进行编译链接,生成可执行文件载体C,对载体C进行分析,得出每个冗余函数在C中的地址信息;
(3)隐秘信息预处理:首先对隐秘信息的加密,压缩,然后将处理后的隐秘信息进行平均分组,隐秘信息分组数量要小于冗余函数的数量,建立隐秘信息分组与冗余函数分组的一一映射关系,同时在每个隐秘信息分组中加入每个冗余函数在C中的地址信息,从而构成隐秘信息分组链表;
(4)构造提取密钥:根据第一个隐秘信息分组的地址信息,作为整个隐秘信息链表的头地址,将表头地址写进后门代码中,同时设计特定的数据,用以触发后门代码,此数据即为提取密钥;
(5)隐秘信息嵌入:将冗余函数在C中对应的位置替换成隐秘信息分组,生成最终携密载体C′;
(6)隐秘信息的提取:运行携密载体C′,将提取密钥作用于携密载体,从而触发后门代码,隐秘信息链表被后门代码读取并解析,从而生成隐秘信息,对生成的隐秘信息做相应的逆处理,就得到了最终的隐秘信息S;
步骤(1)与步骤(2)不分先后;步骤(3)与步骤(4)不分先后。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549413.6A CN103093155B (zh) | 2012-12-07 | 2012-12-07 | 基于源码修改的信息隐藏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549413.6A CN103093155B (zh) | 2012-12-07 | 2012-12-07 | 基于源码修改的信息隐藏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103093155A CN103093155A (zh) | 2013-05-08 |
CN103093155B true CN103093155B (zh) | 2016-04-27 |
Family
ID=48205711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210549413.6A Expired - Fee Related CN103093155B (zh) | 2012-12-07 | 2012-12-07 | 基于源码修改的信息隐藏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103093155B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116712B2 (en) * | 2013-02-28 | 2015-08-25 | Microsoft Technology Licensing, Llc | Compile based obfuscation |
CN104991521B (zh) * | 2015-07-02 | 2018-03-09 | 大族激光科技产业集团股份有限公司 | 一种nc程序段防止泄密的方法 |
CN106598828B (zh) * | 2015-10-14 | 2018-11-30 | 阿里巴巴集团控股有限公司 | 一种源代码中的无效类确定方法及装置 |
CN110457874A (zh) * | 2019-08-02 | 2019-11-15 | 中国工商银行股份有限公司 | 一种信息写入方法、信息读取方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101084478A (zh) * | 2004-12-22 | 2007-12-05 | Lm爱立信电话有限公司 | 为计算机程序代码加水印 |
CN101350055A (zh) * | 2008-09-05 | 2009-01-21 | 清华大学 | 一种在计算机程序中嵌入和提取水印的方法 |
CN101477610A (zh) * | 2008-12-25 | 2009-07-08 | 中国人民解放军信息工程大学 | 源码和目标码联合嵌入的软件水印方法 |
-
2012
- 2012-12-07 CN CN201210549413.6A patent/CN103093155B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101084478A (zh) * | 2004-12-22 | 2007-12-05 | Lm爱立信电话有限公司 | 为计算机程序代码加水印 |
CN101350055A (zh) * | 2008-09-05 | 2009-01-21 | 清华大学 | 一种在计算机程序中嵌入和提取水印的方法 |
CN101477610A (zh) * | 2008-12-25 | 2009-07-08 | 中国人民解放军信息工程大学 | 源码和目标码联合嵌入的软件水印方法 |
Non-Patent Citations (4)
Title |
---|
Steganography for Executable and Code Transformation Signatures;Bertrand Anckaert et al.;《Proceedings of the 7th Information Security and Cryptology》;20051231;431-445页 * |
一种基于混沌的软件水印算法框架及实现;芦斌等;《软件学报》;20070228;第18卷(第2期);351-360页 * |
基于PE文件的信息隐藏技术研究;徐晓静;《中国优秀硕士学位论文全文数据库》;20071115(第5期);22-32页 * |
基于PE文件资源数据的信息隐藏方案;端木庆峰等;《计算机工程》;20090731;第35卷(第13期);128-130页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103093155A (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Collberg et al. | Software watermarking: Models and dynamic embeddings | |
CN105005718B (zh) | 一种利用马尔可夫链实现代码混淆的方法 | |
Linn et al. | Obfuscation of executable code to improve resistance to static disassembly | |
Collberg et al. | On the limits of software watermarking | |
Mavrogiannopoulos et al. | A taxonomy of self-modifying code for obfuscation | |
CN103093155B (zh) | 基于源码修改的信息隐藏方法 | |
Li et al. | FedIPR: Ownership verification for federated deep neural network models | |
CN102542212B (zh) | 一种文本信息隐藏方法及装置 | |
Fang et al. | Detecting webshell based on random forest with fasttext | |
Tian et al. | DKISB: Dynamic key instruction sequence birthmark for software plagiarism detection | |
Collberg et al. | Dynamic graph-based software watermarking | |
Park et al. | Effects of Code Obfuscation on Android App Similarity Analysis. | |
Sahoo et al. | A novel approach for hiding secret data in program files | |
CN102968596A (zh) | 一种基于删除标记的oox文档数字水印方法 | |
Huang et al. | Smart contract watermarking based on code obfuscation | |
Lyu et al. | An efficient and packing-resilient two-phase android cloned application detection approach | |
JP2017509942A (ja) | 暗号アルゴリズムで使用されるときに秘密データを保護する方法 | |
CN107958141A (zh) | 一种基于芯片id号的软件保护方法 | |
Rui et al. | A multiple watermarking algorithm for texts mixed Chinese and English | |
Huang et al. | An algorithm of webpage information hiding based on attributes permutation | |
Hamilton et al. | An evaluation of the resilience of static java bytecode watermarks against distortive attacks | |
CN103714294A (zh) | 一种数据覆写方法 | |
Chionis et al. | Evaluating the WaterRpg software watermarking model on Java application programs | |
Khanduja et al. | Ownership and tamper detection of relational data: framework, techniques and security analysis | |
Tian et al. | Code fusion information-hiding algorithm based on PE file function migration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Chen Gouxi Inventor after: Chen Gang Inventor after: Wen Tao Inventor after: Xue Zebin Inventor before: Chen Gouxi Inventor before: Chen Gang Inventor before: Zhang Meng Inventor before: Ma Yuzhen |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160427 Termination date: 20181207 |
|
CF01 | Termination of patent right due to non-payment of annual fee |