java很容易被反编译,开发个java混淆器,混淆后的结果如下
结构
package1
--Class1.java
--Class2.java
--Class3.java
java代码:
public class Class3 extends Dialog{
public MessageBox field77 = null;
public MessageBox field78 = null;
public Type122(Shell localVariable79) {
super(localVariable79);
field77 = new MessageBox(localVariable79, SWT.ICON_INFORMATION);
field78 = new MessageBox(localVariable79, SWT.OK|SWT.CANCEL);
}
public static final int field80=33;
public static final int field81=10;
public static final int field82=15;
public static final int field83=2;
public static final int field84=8;
public static final int field85=60;
public static final int field86=20;
public static final int field87=20;
public static final int field88= 6;
public static final int field89=5;
public static final int field90=20;
public static final int method93(MouseEvent e, Table localVariable91) {
int localVariable92=localVariable91.getHeaderHeight();
System.out.println(localVariable91.getHeaderHeight());
int rowIndex = -1;
localVariable91.getItem(new Point(e.x, e.y));
System.out.println(localVariable91.getItems()[0].getBounds().height);
for (int i = 0; i < localVariable91.getItems().length; i++) {
TableItem tableItem = localVariable91.getItems()[i];
localVariable92 += tableItem.getBounds().height;
if (e.y > tableItem.getBounds().y&&
e.y <= tableItem.getBounds().y+tableItem.getBounds().height) {
rowIndex = i;
break;
}
}
return rowIndex;
}
static public void method98(Table localVariable94,String[] localVariable95, int[] localVariable96) {
for (int localVariable97 = 0; localVariable97 < localVariable96.length; localVariable97++) {
TableColumn tc1 = new TableColumn(localVariable94, SWT.CENTER);
tc1.setText(localVariable95[localVariable97]);
tc1.setWidth(localVariable96[localVariable97]);
tc1.setAlignment(SWT.LEFT);
}
}
static public void method105(int localVariable99,Label[] localVariable100,Text[] localVariable101, String[] localVariable102, int[] localVariable103) {
for (int localVariable104 = 0; localVariable104 < localVariable100.length; localVariable104++) {
localVariable100[localVariable104].setText(localVariable102[localVariable104]);
int i = method115(localVariable100[localVariable104]);
localVariable100[localVariable104].setBounds(localVariable104 == 0 ? field81 : (localVariable101[localVariable104 - 1].getBounds().x + field84 + localVariable101[localVariable104 - 1].getBounds().width), localVariable99 + field89, i, field87);
localVariable101[localVariable104].setBounds(localVariable100[localVariable104].getBounds().x + field83 + localVariable100[localVariable104].getBounds().width, localVariable99, localVariable103[localVariable104], field87);
}
}
static public void method112(int localVariable106,Label[] localVariable107,Text[] localVariable108, String[] localVariable109, int[] localVariable110) {
int localVariable111=0;
for (int i = 0; i < localVariable109.length; i++) {
localVariable111=(localVariable111>localVariable109[i].length())?localVariable111:localVariable109[i].length();
}
for (int j = 0; j < localVariable107.length; j++) {
localVariable107[j].setText(localVariable109[j]);
localVariable107[j].setBounds(field81 ,j == 0 ? localVariable106: (localVariable108[j - 1].getBounds().y + field84 + localVariable108[j - 1].getBounds().height), localVariable111* field88, field87);
localVariable108[j].setBounds(localVariable107[j].getBounds().x + field83 + localVariable107[j].getBounds().width, localVariable107[j].getBounds().y, localVariable110[j], field87);
}
}
public static int method115(Label localVariable113) {
int localVariable114 = localVariable113.getText().length()* field88;
return localVariable114;
}
static public int method118(Control localVariable116) {
int localVariable117 = localVariable116.getBounds().x+localVariable116.getBounds().width+field84;
return localVariable117;
}
static public int method121(Control localVariable119) {
int localVariable120 = localVariable119.getBounds().y+localVariable119.getBounds().height+field89;
return localVariable120;
}
}
分享到:
相关推荐
代码混淆是保护Java程序的一种方法,即将源代码混淆,使其难以被反编译。代码混淆可以使用各种方法,如变量名、方法名的rename、去掉注释、混淆代码结构等。代码混淆可以使反编译变得困难,但并不能完全防止反编译。...
正是由于其代码的跨平台性,是解析型语言才使得它很容易被反编译成源码,从而造成公司代码的泄露,设置时运用框架的泄露。本文从各个方面介绍了防止class被反编译。从而保护自己的知识产权不受侵害。 包括混淆技术,...
我们都知道Java类文件很容易被反编译,即使进行了混淆处理,仍然容易被反编译破解,因此用Java开发的项目和程序在代码保护方面基本没有安全可言,这一直是业界一个老大难的问题。 其实,Java也是可以对类文件进行...
这样,编译后的类文件中将包含有符号表,从而使得Java程序很容易被反编译。相信每一个Java开发人员,都曾经用过诸如Jad之类的反编译器,对Java的class 文件进行反编译,从而观察程序的结构与实现细节。如此一来,...
5. **代码保护**:开发者也可能使用反编译来评估自己的代码是否容易被反编译,从而考虑如何增强代码的混淆和保护。 "小颖java源代码反编译专家v1.4终极版"作为一款反编译工具,可能包含了以下特性: - **易用的用户...
我们都知道Java类文件很容易被反编译,即使进行了混淆处理,仍然容易被反编译破解,因此用Java开发的项目和程序在代码保护方面基本没有安全可言,这一直是业界一个老大难的问题。 其实,Java也是可以对类文件进行...
4. **版权保护**:虽然Java字节码不是那么容易被反编译,但它仍然可以作为版权保护的辅助手段,因为反编译后的代码通常不如原始源代码清晰易读。 5. **性能优化**:通过查看反编译后的代码,开发者可以更深入地了解...
这样,编译后的类文件中将包含有符号表,从而使得Java程序很容易被反编译。相信每一个Java开发人员,都曾经用过诸如Jad之类的反编译器,对Java的class 文件进行反编译,从而观察程序的结构与实现细节。如此一来,...
由于Java、.net这样的基于虚拟机技术的语言都是采用了ByteCode的二进制结构,因此很容易将ByteCode转化为“抽象语法树”(简称AST,《编译原理》这门课中的概念),然后采用反编译器就可以将AST转换为代码了。...
Java反编译工具是开发人员在理解和学习Java代码或者对已有的类库进行逆向工程时经常使用的工具。这些工具可以将已经编译过的Java字节码(.class文件)转换回可读的源代码形式,尽管原始的注释和变量名可能无法完全...
这个“java反编译.rar”压缩包文件很可能包含了一款易于使用的Java反编译工具,使得程序员能更容易地理解和学习他人编写的已编译Java程序的工作原理。 首先,我们要理解什么是Java字节码。Java源代码在编译后生成的...
java代码很容易被反编译,可通过混淆技术来保护源码,此处我们应用开源项目proguard来进行混淆。操作使用详见:http://blog.csdn.net/odian1/article/details/8282799
4. **代码保护**:通过分析反编译结果,开发者可以评估自己的代码是否容易被逆向工程,从而采取相应的混淆策略来提高代码的安全性。 总的来说,Java反编译工具是Java开发者的重要辅助工具,它提供了查看和理解编译...
由于Java字节码的可读性较高,容易被反编译工具如JD-GUI、JAD等解析,因此开发者需要采取一定的手段来增强代码的安全性。以下是一些常用的Java反编译防护技术: 1. 隔离Java程序:最基础的防护方法是不让用户直接...
很好用的一个代码混淆工具,混淆后可以防止被反编译。很容易用。
总的来说,Java类反编译工具在软件开发、调试和学习中发挥着重要作用,它们为我们提供了深入了解和分析已编译Java程序的能力。在使用这些工具时,不仅要遵循合法性和道德规范,还要结合其他编程知识和技巧,才能充分...
Java反编译是Java开发中一个重要的辅助工具,它允许开发者查看Java字节码(.class文件)的源代码,这对于理解已有的库或者研究二进制代码的运行机制非常有帮助。标题提到的"java反编译软件下载"很可能是指的`JD-GUI`...
JAD支持多种版本的Java字节码,提供了良好的代码结构恢复,使得阅读和理解反编译后的代码变得更加容易。在开发过程中,如果丢失了源代码,JAD可以帮助恢复部分功能,以便进行调试或维护。 FernFlower是另一款流行的...
在这里,我们将深入探讨Java反编译以及jd-gui-0.3.3.windows这个特定的反编译工具。 首先,了解什么是Java反编译。Java程序在执行前会被JVM(Java虚拟机)编译成字节码(.class文件),这是一种平台无关的中间语言...
反编译是软件开发过程中的一个重要环节,尤其在进行逆向工程、代码分析或调试时。JD-GUI通过解析Java字节码,将其还原成接近原始的Java源代码,使得开发者可以更容易地理解和研究第三方库或二进制代码。它的主要功能...