高分求高人讨论java源码能否完全加密而不被破解?天呀.天于JAVA 的类加密是不是根本就不可能的呀.!!!!
高分求高人讨论java源码能否完全加密而不被破解?天呀.天于JAVA 的类加密是不是根本就不可能的呀.!!!!
我用DES已经加密了.加密的CLASS 是没有办法破解的. 这个我已经成功实现.
可在java.lang.ClassLoader源文件,并修改defineClass(String, byte[], int, int, ProtectionDomain)方法
截取已经解密了字节码,把字节码保存后再反编译!.
这怎么办.我是说不管你怎么加密,JVM运行时都会在ClassLoader中加载的.
java.lang.ClassLoader源文件,并修改defineClass(String, byte[], int, int, ProtectionDomain)方法
是不是象下面一样就可找出类的字节码呀.这也就是说怎么加密也没有用呀.
在这里都会得到已经解密的字节码.
天呀.天于JAVA 的类加密是不是根本就不可能的呀.!!!!
c = defineClass0(name, b, off, len, protectionDomain);
// Intercept classes defined by the system loader and its children:
if (isAncestor (getSystemClassLoader ().getParent ()))
{
// Choose your own dump location here [use an absolute pathname]:
final File parentDir = new File ("c:/TEMP/classes/");
File dump = new File (parentDir,
name.replace ('.', File.separatorChar) + "[" +
getClass ().getName () + "@" +
Long.toHexString (System.identityHashCode (this)) + "].class");
dump.getParentFile ().mkdirs ();
FileOutputStream out = null;
try
{
out = new FileOutputStream (dump);
out.write (b, off, len);
}
catch (
IOException ioe)
{
ioe.printStackTrace (System.out);
}
finally
{
if (out != null) try { out.close (); } catch (Exception ignore) {}
}
}
...
就是说实现记录编译后的字节码然后再把字节码进行反编译!
天呀.天于JAVA 的类加密是不是根本就不可能的呀.!!!!
天呀.天于JAVA 的类加密是不是根本就不可能的呀.!!!!
天呀.天于JAVA 的类加密是不是根本就不可能的呀.!!!!
------解决方案--------------------截取已经解密了字节码,把字节码保存后再反编译!.
这怎么办.我是说不管你怎么加密,JVM运行时都会在ClassLoader中加载的.
不解密怎么运行啊?
要不你找下 postGuard,或者retroGuard看看他们的原理
------解决方案--------------------你完全可以写jni,然后java调用jni,调用dll,dll里用汇编写。
这样的加密啊效果好,不容易破解。
------解决方案--------------------一般来说,混淆后的代码,可读性就很差了,有的混淆器支持对包名混淆,那种混淆是无法直接反编译的,要手工调试很长时间才可以编译运行。
------解决方案--------------------这个用混淆器不就好了..反编了也看不懂啊..
------解决方案--------------------jdk都开源的 你为什么要加密?
加个混淆器 防君子不防小人
至少他不能直接把你的程序拿来使用
如果你的算法值得人家去解密
并且解密的人下足够的功夫去解密
那你弄成什么都是白费的
------解决方案--------------------我只知道混淆。
加密的原因是什么?我觉得没有不能破解的东西。
------解决方案--------------------你看现在的加密技术那个没破解方法。。再牛B的加密算法只要有时间和速度快,穷举就搞定。
------解决方案--------------------都是牛人
------解决方案--------------------二进制代码都可以反汇编。
不管你怎么加密,你都要解密给JVM。
既然你加密之后要解密,那么解密程序客户端肯定已经包含了吧?那不是轻易就能解密之后反编译成java源文件?
------解决方案--------------------