一种基于隐写术的代码保护及还原方法

文档序号:8445781阅读:540来源:国知局
一种基于隐写术的代码保护及还原方法【
技术领域
】[0001]本发明涉及一种基于隐写术的代码保护及还原方法,属于信息隐藏
技术领域
,特别涉及软件重要代码的保护及还原方法。【
背景技术
】[0002]随着计算机软件技术的日益普及,盗版软件让企业蒙受了巨大的损失,软件版权保护受到业界的重点关注。国际数据资讯公司(InternationalDataCorporation,IDC)和新加坡国立大学展开的一项最新研宄显示,2014年盗版软件或导致全球企业损失近5000亿美元;另据商业软件联盟(BusinessSoftwareAlliance,BSA)最新的全球调查显示,亚太地区软件盗版率已攀升至62%,其中我国所受商业损失最大,高达87.6亿美元。因此,保护软件的重要代码对遏制软件盗版起着至关重要的作用。[0003]从安全需求上看,重要软件的编制需要有基本的代码保护技术作为支撑,以对抗静态代码分析手段,避免软件操作意图通过代码暴露(参考:白金荣,王俊峰,赵宗渠.基于PE静态结构特征的恶意软件检测方法,计算机科学,40(1):122-126,2013年1月)。虽然对静态代码的保护仅仅是相关保护技术的一部分,但是,这种保护一般非常必要,得到了大量应用。[0004]软件加壳技术是当前一种常用的保护软件版权、防止软件被破解的技术,它通过利用加密或压缩形式来保护软件代码,加壳后的软件可以直接运行但是无法识别源代码(参考文献:M.SikorskiandA.Honig.PracticalMalwareAnalysis:TheHands-OnGuidetoDissectingMaliciousSoftware.NoStarchPress,SanFrancisco,CA,USA,2012;徐向阳,解庆春,刘勇,俞笛,刘寅.PE文件隐型加壳技术的研宄与实现,计算机应用研宄,26(1):337-341,2009年1月)。至目前,网上出现了大量的加壳软件,如ASProtect、ACProtect、ArmadilloCustom、Dbpe、TheEnigmaProtector、EXECryptor、EXEStealth、Xtreme-Protector、ZProtect等。但是,由于加壳软件的特点较明显,代码检测系统已普遍能识别它们并做出警告(参考文献:B.Tao,R.Isawa,S.GuoandD.Inoue.EfficientMalwarePackerIdentificationUsingSupportVectorMachineswithSpectrumKernel.In:Proc.2013EighthAsiaJointConferenceonInformationSecurity(AsiaJCIS),pp.69-76,July25-26,2013,Seoul),例如,瑞星软件能够"识别数百种加壳工具"(参考:陈勤,黄剑军,褚一平,方海英.基于带权欧拉距离的PE文件壳检测技术,计算机工程与科学,32(7):1-3,7,2010年);有些脱壳软件甚至能对加壳软件进行破解,还原出原先的代码,如Procdump32、Un-ASPACK、LinxerUnpacker、SymbianUnpackTool、WinUpackStripper、RL!dePacker等(参考:看雪学院安全论坛.http://tools.pediy.comAmpacker.htm,2013)。此外,从应用方式上看,基于加壳技术的代码保护有"此地无银三百两"的行为特征,同隐蔽性需求相矛盾。因此软件加壳技术在实际应用中存在隐蔽性差、安全性较弱问题。[0005]从20世纪末开始,多媒体在计算机和网络系统中大量使用,由于多媒体信息冗余较大,使得基于多媒体为载体的信息隐藏获得了迅速发展。近年来,一些代码编制者也逐渐发现了用信息隐藏方法保护代码的潜在优势,设计了一些代码隐藏方法,即将代码隐藏在随软件发行的图像、图标图像、视频或者格式化文档等数字媒体中,在正常的媒体操作中提取隐藏的代码执行。显然,采用这类代码保护方法形成的软件没有特定的组成结构特点(如加密数据区或者压缩数据区),而当前软件中包含大量图像资源(如闪屏、图标、窗口背景、Web页面图像、表情符等),使得对图像的操作显得非常自然。[0006]在利用加壳技术来保护软件代码的发明专利方面,中国发明专利102609666A提出了一种可执行程序加壳保护方法,中国发明专利102136053A利用ELF文件框架提出了一种对可执行文件源代码保护的方法,中国发明专利101964040A提出了一种基于PELoader的软件加壳保护方法。然而,在利用代码隐藏技术的代码保护方法还未见公开的发明专利。[0007]根据上述分析可以发现当前采用代码隐藏技术是保护软件代码的一种新技术发展趋势,它是替代加壳技术的有效手段之一,得到的最终软件不像加壳软件那样具有较显著的特征。但是,当前基于代码隐藏方法的代码保护还处于一个技术上的初级阶段,这主要体现在以下两个方面:[0008](1)代码隐藏方法的隐蔽性不强。[0009]当前,代码隐藏保护一般没有假设隐写分析(参考:J.Fridrich,J.Kodovsky,andV.Holub.Richmodelsforsteganalysisofdigitalimages.IEEETransactionsonInformationForensicsandSecurity,7(3):868-882,2012)的威胁,实施信息隐藏的方法非常简陋,甚至造成视觉上的感知异常情况,或者代码的存储位置很容易分析出来,因此比较容易被检测到。BitDefender和Symantec公司的产品也能够类似地识别JPEG文件的异常。[0010]由于当前的检测手段能够直接从隐藏载体上分析出异常,甚至能够直接提取出隐藏的保护代码,因此需要加强隐藏方法对代码保护的隐蔽性。从技术实现上分析,可以采用更好的隐写方法实施代码隐藏。当前,隐写码的出现(参考FridrichandD.Soukal.Matrixembeddingforlargepayload.IEEETrans.InformationForensicsandSecurity,2006,I(3):390-395),使得可以减少需要修改载体的次数,自适应隐写的出现(参考:T.Pcvn夕,T.Filler,andP.Bas.Usinghigh-dimensionalimagemodelstoperformhighlyundetectablesteganography.InProc.IH2010,LNCS6387,pp.161-177,Springer,2010),使得能够减小对统计量的影响,它们有待应用于提高以上隐藏代码的抗隐写分析的能力。[0011](2)代码提取的隐蔽性不够强。[0012]当前,代码隐藏保护的另一个不足是对提取隐藏代码的操作保护不够,使得反编译后分析者很可能看出提取操作中的特殊操作。[0013]现有的代码隐藏保护方法没有能够很好地隐蔽代码的提取操作,反编译后能够找到具体的定位和解密操作。【
发明内容】[0014]针对现有代码隐藏保护方法中提取操作隐蔽性不强的问题,本发明提供一种基于隐写术的代码保护方法,通过利用图像来隐藏软件的重要代码,进一步加强对提取操作的保护,将提取操作混合在载体媒体的读取等正常操作中,无需加解密隐藏代码,并且避免用脚本类语言写这类操作的程序,使得反编译的结果更难反映程序的基本意图,保护代码的隐蔽性及代码提取操作的隐蔽性进而保护软件的安全性,以满足软件对重要代码保护的要求。[0015]本发明技术解决方案是一种基于隐写术的代码保护方法,它主要包括代码隐藏算法和代码还原算法两个部分:[0016]代码隐藏算法利用先进的信息隐写技术,比如HUGO、F5、J-UNIWARD,将待保护的重要程序代码以二进制模式嵌入到图像载体,其中信息嵌入技术的选择根据载体图像格式、操作复杂性及抗隐写分析需求确定,载体图像的大小和所选择的隐写技术会影响可隐藏保护代码的长度。在保证隐写容量和既定嵌入操作复杂度情况下,将代码完整嵌入到载体图像。代码隐藏算法的输入数据包括需要保护的重要代码和载体图像,输出数据是携码图像。[0017]代码还原算法是代码隐藏算法的反向算法,它从携码图像中完整地恢复出隐藏的代码。代码还原算法的输入数据是携码图像,输出数据是隐藏代码。代码还原操作在受保护代码执行前完成执行,以保证还原的隐藏代码能够正确被执行。[0018]当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1