The present application discloses a source code reinforcement method and device that can obtain the target source code to be reinforced; determines the reinforcement weight of the function in the target source code; selects at least one target reinforcement algorithm from a preset set of reinforcement algorithms according to the reinforcement weight; and employs the selected target reinforcement algorithm of at least one. The algorithm reinforces the target source code. Since the method and device can automatically select the appropriate reinforcement algorithm from the preset set of reinforcement algorithms to reinforce the source code according to the reinforcement weight of the function in the source code to be reinforced, the reinforcement efficiency of the source code can be improved.
【技术实现步骤摘要】
一种源代码加固方法及装置
本申请涉及计算机
,尤其涉及一种源代码加固方法及装置。
技术介绍
现如今,移动互联网、物联网、车联网等技术高速发展,终端的数量越来越多,终端中安装的应用程序也越来越多,这给人们的工作和生活带来了极大的便利。应用程序运行过程中会产生一些重要的信息,这引起了攻击者的极大兴趣,使得这些重要信息存在被泄露的风险。目前,攻击者常使用反汇编、反编译和动态调试等工具,对应用程序的可执行文件进行逆向分析破解,获得应用程序的执行逻辑,从而非法窃取、非法篡改应用程序运行过程中产生的重要信息。针对上述风险,现有技术常通过对应用程序的源代码进行加固,提高源代码经过编译生成的可执行文件的防逆向分析能力,降低应用程序运行过程中产生的重要信息被泄露的风险。但是,现有的源代码加固方法常常需要人工参与,例如,需要人工分析源代码的特点,并由人工选择合适的加固算法进行加固,导致加固效率低下。
技术实现思路
本申请实施例提供一种源代码加固方法及装置,以解决现有的源代码加固方法效率低的问题。第一方面,本申请实施例提供一种源代码加固方法,所述方法包括:获取待加固的目标源代码;确定所述目标源代码中的函数的加固权重;根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法;采用选取的所述至少一种目标加固算法对所述目标源代码进行加固。第二方面,本申请实施例还提供一种源代码加固装置,包括:获取模块,用于获取待加固的目标源代码;加固权重确定模块,用于确定所述目标源代码中的函数的加固权重;加固算法选取模块,用于根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法;加固 ...
【技术保护点】
1.一种源代码加固方法,其特征在于,所述方法包括:获取待加固的目标源代码;确定所述目标源代码中的函数的加固权重;根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法;采用选取的所述至少一种目标加固算法对所述目标源代码进行加固。
【技术特征摘要】
1.一种源代码加固方法,其特征在于,所述方法包括:获取待加固的目标源代码;确定所述目标源代码中的函数的加固权重;根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法;采用选取的所述至少一种目标加固算法对所述目标源代码进行加固。2.根据权利要求1所述的方法,其特征在于,所述确定所述目标源代码中的函数的加固权重,包括:根据预设指标确定所述目标源代码中的函数的加固权重;其中,所述预设指标包括下列指标中的一种或多种:函数在所述目标源代码中被调用的次数、函数本身的复杂度和函数在所述目标源代码所要实现的业务逻辑中的重要程度。3.根据权利要求1所述的方法,其特征在于,所述根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法,包括:根据所述目标源代码中各函数的加固权重的大小,从预设的加固算法集合中选取至少一种目标加固算法。4.根据权利要求1所述的方法,其特征在于,在所述根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法之前,所述方法还包括:确定所述加固算法集合中的加固算法的加固效率;则,所述根据所述加固权重从预设的加固算法集合中选取至少一种目标加固算法,包括:根据所述加固权重和所述加固效率,从所述预设的加固算法集合中选取至少一种目标加固算法。5.根据权利要求1-4任一项所述的方法,其特征在于,所述加固算法集合包括下列加固算法中的一种或多种:控制流扁平化、不透明谓词和冗余代码插入。6.一种源代码加固装置,其特征在于,包括:获取模块,用于获取待加固的目标源代码;加固权重确定模块,用于确定所述目标源代码中的函数的加固权重;加固算法选取模块,用于根...
【专利技术属性】
技术研发人员:阚志刚,陈彪,王文洋,李世杰,尉爽生,卢佐华,
申请(专利权)人:北京梆梆安全科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。