JDATATRANS用于Java中的数组混淆Source Code,用于击败反编译代码的逆向工程
JDATATRANS for Array Obfuscation in Java Source Code to Defeat Reverse Engineering from Decompiled Codes
摘要:
软件混淆或模糊软件是一种方法,以击败逆向工程的做法,在另一个软件的开发中非法使用其功能。Java应用程序更容易通过反编译等方法进行逆向工程和重新工程攻击,因为Java类文件以称为“字节”代码的半编译形式存储程序。现有的混淆系统混淆Java类文件。混淆的源代码产生混淆的字节代码,因此程序的两级混淆(源代码和字节代码级)使其对逆向工程攻击更具弹性。但是源代码混淆要困难得多,因为程序中使用的编程结构和不同变量的范围更丰富,而且在这方面只取得了很少的进展。因此,程序员采取临时的手动方式来掩盖他们的程序,这使得它的维护和可用性变得困难。为了部分解决这个问题,我们开发了一个用户友好的工具JDATATRANS,通过模糊数组的用法来混淆Java源代码。使用各种数组重组技术,如“数组分裂”,“数组折叠”和“数组隐藏”,除了常数隐藏,我们的系统混淆输入的Java源代码,并产生一个混淆的Java源代码,在功能上等同于输入程序。我们还进行了一些实验,以衡量我们的工具所产生的效力,弹性和成本。
英文摘要:
Software obfuscation or obscuring a software is an approach to defeat the practice of reverse engineering a software for using its functionality illegally in the development of another software. Java applications are more amenable to reverse engineering and re-engineering attacks through methods such as decompilation because Java class files store the program in a semi complied form called 'byte' codes. The existing obfuscation systems obfuscate the Java class files. Obfuscated source code produce obfuscated byte codes and hence two level obfuscation (source code and byte code level) of the program makes it more resilient to reverse engineering attacks. But source code obfuscation is much more difficult due to richer set of programming constructs and the scope of the different variables used in the program and only very little progress has been made on this front. Hence programmers resort to adhoc manual ways of obscuring their program which makes it difficult for its maintenance and usability. To address this issue partially, we developed a user friendly tool JDATATRANS to obfuscate Java source code by obscuring the array usages. Using various array restructuring techniques such as 'array splitting', 'array folding' and 'array flattening', in addition to constant hiding, our system obfuscate the input Java source code and produce an obfuscated Java source code that is functionally equivalent to the input program. We also perform a number of experiments to measure the potency, resilience and cost incurred by our tool.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。