浅谈用于Java软件保护的代码混淆技术研究与实现
2017-09-09樊蓉
樊蓉
摘要:如今,计算机以及互联网技术已经给人们的生活、工作等方方面面带来了巨大的变革,让我们的日常生活和工作方式变得更加便利便捷,但是计算机等技术在带来便捷的同时,也出现了信息泄露等问题,使得知识产权保护遇到了更大的难关。本文主要阐述了代码混淆技术、Java软件等相关概念,对Java软件保护的代码混淆技术研究与实现进行了深入的分析和探讨,以供借鉴和参考。
关键词:Java软件;代码混淆技术;效果
中图分类号:TP311.53 文献标识码:A 文章编号:1007-9416(2017)07-0128-02
Java是一种计算机编程语言,它不同于复杂难懂的C++语言,而是一种既继承了C++编程语言的优点,又具有操作简便、功能强大等独特优点的编程语言,也因为Java语言的这一优势,被广泛的应用到计算机编程中去[1]。代码混淆技术是一种新兴的信息保护方式,在Java软件中应用代码混淆技术可以使该软件变得更加复杂,同时还可以大大的提高Java软件的抗反编译能力,从而提高信息的安全性。
1 代码混淆技术概念及分类
代码混淆技术是指通过对计算机编程语言的基本构成成分代码这一元素进行混淆,增强代码的复杂性和可辨识性,从而起到对计算机编程软件进行保护的作用[2]。具体来说,就是运用一些与源代码相似或者是类似的代码,来对源代码进行替换,使代码软件不能够被轻易的反编译,从而大大的提高计算机编程软件的抗反编译能力,以达到对编译软件的保护目的。代码混淆技术不是唯一固定的,它也会根据反编译对象的不同来采取不同的混淆技术。但不论是那种代码混淆技术,其最终的目的都是为了增加编程软件的复杂性,使其不能够被别人或者是相关破解工具轻易的破解。
2 Java软件概述及面临的问题
Java软件是一种不同于传统编程软件的一种新兴编程软件,因其简便性所以在如今已经实现了大面积的应用。在对Java语言软件开发时,运用了多设备进行开发,因此也就为其能够在多种平台和机器上被操作奠定了基础。而Java软件的开发可以说是革新了软件开发业,它的出现,极大的带动了计算机信息技术的飞速跨越式发展[3]。
Java软件的运行过程实际上就是对Java源代码进行编译的过程,而源代码又是一项程序中最为重要的信息。通过对代码的反编译就可以从中获取到编译者的相关重要信息,且Java语言利用的是一种不同于二进制文件的中间代码文件,反编译更简单,因此也就出现了众多对程序进行反编译的现象,造成程序开发人员重要开发信息的泄露,使得知识产权保护成为水中月,画中饼。对Java编程软件的保护也就成为了社会各界广泛关注的热点话题。
3 用于Java软件保护的代码混淆技术研究与实现
3.1 软件保护总体目标设定
就目前来看,大部分的混淆技术都较简单,抗反编译能力尚且不足,只能够用简单的代码来替换Java软件源代码,虽然成本较低,但是让一些反编译程序稍加努力还是能够实现对软件的破解;而有些利用复杂代码的混淆技术,又具有高成本性的特点,所以起到的抗攻击效果也并不乐观。软件保护总体目标应该是用最少的成本实现对软件的最佳保护,因此经济适用性是混淆技术应该遵循的基本原则。在设计混淆技术时,应该要尽可能的维持程序的原语义,同时利用最少的成本来实现最佳的抗反编译效果,从而实现对Java软件的高效便捷保护目的。
3.2 JIRO系统结构的构建
JIRO系统是一种只是针对Java软件的保护系统,在其它编程软件的保护上不具有适用性。通过对JIRO系统模块化的构建,不仅仅可以使各部分之间相互独立运作,而且在必要时,还可以实现各部分之间的有序耦合。一般来说,JIRO系统包括用户界面、操控界面等模块。在JIRO系统中,标识符重命名是这一系统的核心部分,它可以获取到用户输入到计算机中的信息,然后对这些信息进行重新命名,从而达到混淆视听,保护软件源代码的目的。这种模块化的运作系统在计算机中既独立运行,各司其职,又可以相互协作,相互影响,最终实现对Java软件系统的保护。
3.3 各个模块的设计及实现
(1)進一步优化软件操作环境。良好的环境是确保JIRO系统能够正常运作,最大程度的发挥自身作用的前提条件。因此,在进行JIRO系统模块化设计时,首先要营造出该系统良好的运作环境。如SWT Designer v7.6.0等。
(2)优化用户界面。用户界面是用户与系统之间沟通交流的窗口,起着重要的连接作用,要想实现用户对Java软件源代码的混淆,用户就必须要先在用户界面输入相关命令,系统才能够据此做出判断和反应。用户界面主要包括主界面、帮助和关于这三项内容组成。用户可以通过主界面中的输入输出框对想要的文件进行浏览,确定要混淆的文件,通过下达相关指令,即可实现对文件的混淆。
4 JIRO混淆系统应用效果分析
JIRO混淆系统运用标识符重命名混淆技术能够实现对混淆文件的独一无二的命名,从而大大的提高了混淆的准确性。且经过该系统对程序文件进行混淆后,混淆文件比之前的源文件更加复杂难懂,从而极大的提高了Java软件的抗反编译的能力。
5 结语
Java软件如今已经在众多领域实现了广泛使用,因此其重要性也日益凸显。在当前复杂的信息环境下,对Java软件也提出了更高的挑战,如何加强Java软件的安全性,提高对其保护,是我们的当务之急。本文通过对代码混淆技术的研究,以及其在Java软件保护中的应用,提出了提高Java软件安全性,提高其信息保护程度的切实可行的措施,希望能够通过我们的研究,让Java软件在将来计算机中的应用能够发挥出更大的作用。
参考文献
[1]陈晗.用于Java软件保护的代码混淆技术研究与实现[J].信息通信,2016,02:94-95.
[2]赵旭.Java软件加密方法的应用分析[J].电子技术与软件工程,2016,07:210.
[3]戴仲政.基于脚本引擎的恶意网页检测系统[D].华南理工大学,2014,05.endprint