用于应用程序的信息隐藏方法

文档序号:9235648阅读:709来源:国知局
用于应用程序的信息隐藏方法
【技术领域】
[0001]本发明涉及信息隐藏方法,更具体地,涉及用于应用程序的信息隐藏方法。
【背景技术】
[0002]目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,基于特定操作系统的应用程序(例如运行于Android操作系统上的支付交易应用程序)的安全性变得越来越重要。
[0003]如本领域技术人员所知的,基于高级语言代码(例如JAVA代码)的应用程序在被编译生成后,其源代码中的涉及应用逻辑的字符串也被打包到生成在二进制文件中。由此,攻击者可以在逆向工程(即将二进制代码还原为源代码)的基础上通过字符串定位而分析应用程序代码,以得到该应用程序的完整的代码逻辑。因此,对基于高级语言代码(例如JAVA代码)的应用程序进行安全性保护随之变得越来越重要。
[0004]在现有的技术方案中,通常通过代码混淆的方式对应用程序进行安全性保护,例如,针对基于JAVA语言的应用程序,可以将具有明确含义的JAVA类名和方法名通过混淆而转换成一连串无意义的类名、方法名,从而打乱逆向工程的分析过程。
[0005]然而,现有的技术方案存在如下问题:由于仅仅对应用程序的一少部分具有明确含义的字符串(例如JAVA类名和方法名)进行了保护,而没有对应用程序代码中使用的其它明文字符串进行保护,故存在较大的潜在安全性隐患。
[0006]因此,存在如下需求:提供能够对应用程序代码中使用的所有需要进行保护的明文字符串进行加密处理以获得增强的安全性的信息隐藏方法。

【发明内容】

[0007]为了解决上述现有技术方案所存在的问题,本发明提出了能够对应用程序代码中使用的所有需要进行保护的明文字符串进行加密处理以获得增强的安全性的信息隐藏方法。
[0008]本发明的目的是通过以下技术方案实现的:
一种用于应用程序的信息隐藏方法,所述用于应用程序的信息隐藏方法包括:基于配置参数对目标应用程序的源代码或汇编代码中的明文字符串进行加密处理以隐藏所述明文字符串,其中,所述配置参数包括字符串筛选规则以及加密函数列表和对应的解密函数列表。
[0009]在上面所公开的方案中,优选地,所述方法进一步包括:如果所述目标应用程序是便于获取源代码的应用程序,则以如下方式隐藏所述目标应用程序中的明文字符串:
(Al)获取所述目标应用程序的源代码;
(A2)通过对所述源代码进行字符串扫描而获取所述源代码中的字符串;
(A3)根据所述字符串筛选规则从所获取的字符串中筛选出需要加密的字符串;
(A4 )针对每个需要加密的字符串执行如下操作,直至所有需要加密的字符串均被加密:从所述加密函数列表中随机地选择一个加密函数,并通过所选择的加密函数加密该需要加密的字符串,以生成加密后的字符串;
(A5)针对每个加密后的字符串执行如下操作,直至所有加密后的字符串均被处理完毕,以获得加密后的新的应用程序代码:从所述解密函数列表中选择与该加密后的字符串的加密函数相对应的解密函数的代码,并将其与该加密后的字符串相组合,并用所述组合替换原始代码中的与该加密后的字符串相对应的原始字符串;
(A6)编译所获得的新的应用程序代码以进行后续的操作。
[0010]在上面所公开的方案中,优选地,所述方法进一步包括:如果所述目标应用程序是不便于获取源代码的应用程序,则以如下方式隐藏所述目标应用程序中的明文字符串:
(BI)获取所述目标应用程序的可执行代码;
(B2)通过反汇编工具将所述可执行代码转换成汇编代码;
(B3)通过对所述汇编代码进行字符串扫描而获取所述汇编代码中的字符串;
(B4)根据所述字符串筛选规则从所获取的字符串中筛选出需要加密的字符串;
(B5)针对每个需要加密的字符串执行如下操作,直至所有需要加密的字符串均被加密:从所述加密函数列表中随机地选择一个加密函数,并通过所选择的加密函数加密该需要加密的字符串,以生成加密后的字符串;
(B6)针对每个加密后的字符串执行如下操作,直至所有加密后的字符串均被处理完毕,以获得加密后的新的汇编代码:从所述解密函数列表中选择与该加密后的字符串的加密函数相对应的解密函数的汇编代码,并将其与该加密后的字符串相组合,并用所述组合替换原始汇编代码中的与该加密后的字符串相对应的原始字符串;
(B7)用所述反汇编工具将所获得的新的汇编代码重新打包以生成新的可执行代码,以便进行后续的操作。
[0011]在上面所公开的方案中,优选地,所述方法进一步包括:在需要运行所述目标应用程序时,将加密后的字符串作为与其相关联的解密函数的参数,并将该解密函数执行的结果作为原始字符串以替换所述目标应用程序源代码或汇编代码中的对应的加密后的代码,并随之实际运行所述目标应用程序。
[0012]在上面所公开的方案中,优选地,所述目标应用程序是在Android操作系统上运行的基于JAVA的应用程序。
[0013]本发明所公开的用于应用程序的信息隐藏方法具有以下优点:(1)由于应用程序代码中的所有需要保护的明文字符串均能够被加密,且仅在应用程序实际运行时才生成具有真实含义的字符串,故具有高度的安全性;(2)由于可以对需要进行保护的明文字符串进行配置,故具有高度的使用灵活性;(3)由于针对每个需要保护的明文字符串随机地选择加密函数,由此可以有效地防止单个加密函数被破解而导致全部加密字符串被解密的情况,故具有增强的安全性。
【附图说明】
[0014]结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的用于应用程序的信息隐藏方法的关键处理的流程图。
【具体实施方式】
[0015]图1是根据本发明的实施例的用于应用程序的信息隐藏方法的关键处理的流程图。如图1所示,本发明所公开的用于应用程序的信息隐藏方法包括:基于配置参数对目标应用程序的源代码或汇编代码中的明文字符串进行加密处理以隐藏所述明文字符串,其中,所述配置参数包括字符串筛选规则以及加密函数列表和对应的解密函数列表。
[0016]优选地,本发明所公开的用于应用程序的信息隐藏方法进一步包括:如果所述目标应用程序是便于获取源代码的应用程序,则以如下方式隐藏所述目标应用程序中的明文字符串=(Al)获取所述目标应用程序的源代码;(A2)通过对所述源代码进行字符串扫描而获取所述源代码中的字符串;(A3)根据所述字符串筛选规则从所获取的字符串中筛选出需要加密的字符串(即可以通过配置参数而设置某些特定的字符串不进行加密隐藏处理);(A4)针对每个需要加密的字符串执行如下操作,直至所有需要加密的字符串均被加密:从所述加密函数列表中随机地选择一个加密函数,并通过所选择的加密函数加密该需要加密的字符串,以生成加密后的字符串(即针对每个需要加密的字符串,所采用的加密函数均是随机选择的);(A5)针对每个加密后的字符串执行如下操作
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1