一种防静态分析文件的方法及装置的制造方法

文档序号:8543937阅读:212来源:国知局
一种防静态分析文件的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机软件技术领域,具体涉及文件保护技术,尤其涉及一种防静态分析文件的方法及装置。
【背景技术】
[0002]随着Android系统越来越广泛的应用,使得很多对应用进行反编译与静态分析的工具应运而生,一些盈利性的应用程序被恶意分析,通过这种途径可以攫取应用中表示用户隐私的代码逻辑,从而获得用户的隐私,或者侵害用户的利益等。
[0003]破解者通过zip方式将ANDROID包文件APK进行解压得到DEX文件与SO文件,从而进一步分析DEX文件与SO文件的代码。对于DEX文件来说,破解者使用反编译器对安卓的可执行文件DEX进行反编译,从而得到可执行文件DEX的代码逻辑,并进行恶意修改达到非法目的。对于SO文件来说,破解者使用逆向工具对安卓的动态库SO文件进行处理,逆向获取动态库SO文件的执行流程及逻辑,从而达到对SO文件核心的破解,并对SO文件进行打补丁修改等操作,从而改变SO文件的原始逻辑。

【发明内容】

[0004]有鉴于此,本发明实施例提供一种防静态分析文件的方法及装置,来解决以上【背景技术】部分提到的技术问题。
[0005]一方面,本发明实施例提供了一种防静态分析文件的方法,所述方法包括:
[0006]获取待保护代码的地址;
[0007]根据预定的规则获得随机代码;
[0008]根据所述待保护代码的地址查找到所述待保护代码,并将所述待保护代码替换成所述随机代码。
[0009]另一方面,本发明实施例提供了一种防静态分析文件的装置,所述装置包括:
[0010]地址获取模块,用于获取待保护代码的地址;
[0011]随机代码获得模块,用于根据预定的规则获得随机代码;
[0012]替换模块,用于根据由所述地址获取模块获取的所述待保护代码的地址查找到所述待保护代码,并将所述待保护代码替换成由所述随机代码获得模块获得的所述随机代码。
[0013]本发明提供了一种防静态分析文件的方法及装置,通过将原始文件中待保护代码加密保存在黑盒中,而原始的代码位置存放随机的垃圾代码块,从而防止黑客通过对程序的静态分析修改程序逻辑,保证了原始代码的安全。
【附图说明】
[0014]图1是本发明实施例提供的一种防静态分析文件的方法流程图;
[0015]图2是本发明实施例提供的另一种防静态分析文件的方法流程图;
[0016]图3是本发明实施例提供的另一种防静态分析文件的方法流程图;
[0017]图4是本发明实施例提供的另一种防静态分析文件的方法流程图;
[0018]图5是本发明实施例提供的一种防静态分析文件的装置组成框图;
[0019]图6是本发明实施例提供的另一种防静态分析文件的装置组成框图;
[0020]图7是本发明实施例提供的另一种防静态分析文件的装置组成框图;
[0021]图8是本发明实施例提供的另一种防静态分析文件的装置组成框图。
【具体实施方式】
[0022]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例,仅仅用于解释本发明,而非对本发明的限定。
[0023]本发明的【具体实施方式】,如图1所示,提供了一种防静态分析文件的方法,如图1所示,所述方法包括:
[0024]步骤101:获取待保护代码的地址。
[0025]具体地,将ANDROID包文件APK进行解压后可以得到DEX文件与SO文件,为了防止破解者进一步分析DEX文件与SO文件的代码,在本发明的一种实施方式中,首先要获取DEX文件或者SO文件中待保护代码的地址,待保护代码通常是需要保护的核心代码,当然,待保护代码具体的选取方式和选取范围,本发明实施例对此不进行限制。
[0026]步骤102:根据预定的规则获得随机代码。
[0027]其中,随机代码是无效但符合原文件编码规则的代码,将随机代码插入到有效代码中以后,程序员无法辨别哪些是有效代码,哪些是无效的随机代码,但是,当程序运行到随机代码处时会跳过随机代码,所以,随机代码的插入并不会影响原程序的运行。
[0028]具体地,在本发明的一种实施方式中,首先根据原文件的编码规则,获得大量无效的代码,然后将这些无效的代码存储在和原文件的编码规则相对应的随机代码数据库中,在需要使用随机代码时,从相应的数据库中随机提取代码。在本发明的另一种实施方式中,采用和原文件的编码规则相对应的随机代码生成器生成随机代码,在需要使用随机代码时,直接由随机代码生成器获得随机代码。需要说明的是,具体采用哪种方式获得随机代码,本发明实施例对此均不进行限制。
[0029]步骤103:根据所述待保护代码的地址查找到所述待保护代码,并将所述待保护代码替换成所述随机代码。
[0030]具体地,在本发明的一种实施方式中,根据待保护代码的地址查找到待保护代码,然后将待保护代码从原文件中删除,需要说明的是,不能删除或者改变待保护代码的函数名,在原来待保护代码的地址处添加随机代码。
[0031]本发明提供了一种防静态分析文件的方法,通过将原始文件中待保护代码替换成无效但符合原文件编码规则的随机代码,从而防止黑客通过对程序的静态分析修改程序逻辑,保证了原始代码的安全。
[0032]本发明实施例中,提供了另一种防静态分析文件的方法,如图2所示,该方法包括:
[0033]步骤201:获取待保护代码的地址。
[0034]步骤202:根据所述待保护代码的地址获取所述待保护代码。
[0035]步骤203:对所述待保护代码进行加密,得到密文。
[0036]优选地,本发明实施例采用哈希加密算法对待保护代码进行加密。哈希加密算法是一种不可逆加密算法,不可逆加密算法的特征是在加密过程中不需要使用密钥,在输入明文后,由系统直接经过加密算法将明文处理成密文。这种加密后的密文是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,才能得到相同的加密密文,并被系统重新识别后,才能真正解密。一般,应用较多的不可逆加密算法的有MD5算法和SHS(Secure HashStandard,安全杂乱信息标准)等。当然,具体采用哪种加密的方式,本发明实施例对此不进行限制。
[0037]步骤204:将所述密文进行存储,并获得存储所述密文的地址。
[0038]具体地,在本发明的一种实施方式中,可以将密文存储到一个或多个新创建的文件中,存储密文的文件格式可以是任何能够支持记录密文的文件格式。当然,具体采用哪种文件格式存储密文,本发明实施例对此不进行限制。需要说明的是,存储密文的文件要与需要保护的文件存放在相同的存储介质,以便后续在需要保护的文件调用密文时,能够查找得到密文。当有大量待保护代码时,采用这种方式对密文进行存储,不会使原文件数据量过大。
[0039]在本发明的另一种实施方式中,可以将密文存储到原文件的数据块。在原文件中一般包括代码块、数据块和其他几个模块,密文只能被存放在原文件的数据块部分,代码块和其他几个模块不
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1