反编译字节码所生成的源代码几乎与原始的源代码一致.
使用反编译器能够把没有经过特殊处理的class文件还原成几乎和源码一样的java文件.因为在class文件中几乎包括了一切可以用于调试的信息,行号,成员变量,参数类型和参数名称etc, 但是应该不包括javadoc和注释,正应为这样你才能用现代的IDE方便的调试你的程序.定位行,单步执行,审查值etc. 如果我们在编译源码的时候加上-g:none选项,反编译的代码就会损失一些清晰度.例如方法参数名称和局部变量的名称等等.
2. 在java字节码中,混淆是保护知识产权的最佳途径,混淆执行如下一些或全部变换:去除调试信息,<fontface="宋体, simsun"="">名称的处理,编码字符串,改变控制流程,插入讹用的代码,删除未使用的代码和优化代码.混淆带来了维护的困难,这可以通过配置混淆程序将其减到最小.混淆的代码仍旧可读,除非使用了控制流程的混淆和字符串编码.
没有被声明为public的方法和变量仍然可以访问.
具有package或protected可视属性的成员可以通过将助手类插入其包中或使用反射API访问
当变量或方法没有用可视性关键字(publicprotected private)声明时,就是packagevisible的.假如一个包中的某个类有个packagevisible的属性,但是他又没有提供getter方法给你,你又想获得这个属性的值,那我们可以在这个包中加一个助手方法.为这个packagevisible的属性提供一个getter方法.不过当那个包是系统包时,可能会发生SecurityException.我们下面会讨论这个.
使用反射访问私有类成员或方法.
这里要注意的是,如果设置了安全管理器(大多数应用服务程序和中间产品通常都是这样),那么我们还需要多做一些工作,要不就会发生RumtimePermission发生.为了让我们的代码能和已安装的安全管理器协同工作,必须准予通过反射访问声明的成员以及禁止访问检查的许可,这通过添加准予codebase这两种许可java政策文件的方式来实现:
grant{
permissionjava.lang.RuntimePermission “accessDeclaredMembers”;
permissionjava.lang.reflect.ReflectPermission “suppressAccessChecks”;
};
在javacommand中加上 -Djava.security.manager–Djava.security.policy=../conf/java.policy
分享到:
相关推荐
资源名称:透视JAVA:反编译、修补和逆向工程技术内容简介:您是否遇到过所有常规方法都失效的窘境?您是否知道有一种产品能够准确地解决您所面对的问题,但并没有文献来记载其实现方法?您是否正在使用某一第二方库...
[透视java——反编译、修补和逆向工程技术]源代码。
Java学习笔记1 Java学习笔记1是学习Java过程中的笔记,主要记录了Eclipse开发环境中的快捷键使用、编辑功能、查找和调试等知识点。 Eclipse快捷键 Eclipse中有许多快捷键,掌握这些快捷键可以大大提高开发效率。...
透视JAVA——反编译、修补和逆向工程技术 (2011 年度畅销榜NO.2065 ) 特别说明:此书内容不全,为部分图书截图,但是内有在线阅读网址,希望对您有用!
透视JAVA--反编译、修补和逆向工程技术.(Alex Kalinovsky)
但是,根据给出的标题和描述,我们可以详细说明“透视JAVA--反编译、修补和逆向工程技术”中提到的相关知识点。 首先,“反编译”是指将编译过的代码还原为源代码的过程。在Java领域,反编译通常用于分析和理解一个...
【透视JAVA】 Java,由Sun Microsystems公司的James Gosling等人在1990年代初期创立,最初被设计用于消费电子设备,如电视转换盒。它源于一个名为"Green"的项目,目标是创建一种小巧、高效且跨平台的编程语言。在...
综上所述,《网管员必读丛书》和《透视Java_反编译_修补和逆向工程技术》这两本书都极具价值,分别针对网络管理和Java编程领域提供了深入的指导和实用的建议。无论是对于正在寻找解决网络管理难题的网络管理员,还是...
透视JAVA-反编译修补和逆向工程技术
通过本书可以学习反编译JAVA程序的知识和方法,修补字节码和学习相关逆向工程技术情况
《透视Java: 反编译、修补和逆向工程技术》是一本深入探讨Java平台上的反编译、代码修补以及逆向工程实践的专业书籍。本书不仅为读者提供了理论层面的深入分析,还包含了大量实用的技术细节和案例研究,对于希望了解...
透视JAVA—反编译、修补和逆向工程
基于Class字节码透视java动态代理本质(4)
总之,《透视Java:反编译、修补和逆向工程技术》是一本内容丰富、深度广泛的IT专业书籍,适合所有对Java底层技术感兴趣的开发者、研究人员和安全专家阅读。通过深入学习本书,不仅可以掌握Java反编译、代码修补和...
Java Excel 透视是一种在Java应用程序中处理Excel数据并创建透视表的方法。透视表是一种数据分析工具,可以对大量数据进行汇总、比较和分析,通常用于商业智能报表。在Java中,我们可以利用Apache POI库来实现Excel...
基于Class字节码透视java动态代理本质
JAVA开发的透视图与视图.exe ,详细的介绍了java开发工具的透视图和视图的界面。
这个“pjt.zip”压缩包显然包含了一个Java程序,该程序实现了立方体的透视投影和视点变换功能,允许用户观察立方体绕轴旋转的效果。 首先,我们要理解透视投影的基本原理。在现实生活中,当我们观察一个物体时,...
基于Class字节码透视java动态代理本质(1)
基于Class字节码透视java动态代理本质(2)