众所周知,java编译后的class文件是一种中间字节字文件。很容易被反编译工具反编译,而传统的java源代码保护方法基本都是采用混淆的方式,但这样会带来很多麻烦,而且也不能真正保护class文件,我采用jni技术定制classloader调用经过加密的class来动态解密,运行class文件。class反编译工具对加密后的class文件就没办法再反编译为java文件了!
为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。
大家知道class文件加密吧..我想反编译这个工程...但是反编译工具不认为它是有效的class文件.试想反编译工具不认,jvm又怎么会认呢,查了半天加密与解密,发现是一个classloader.dll的问题,是jvm在加载class之前,先加载的classloader.dll,是由它进行解密的.
遇到了classloader.dll文件,要是C#写的,早就攻破了.是C++写的...只能反汇编,学了两个晚上的汇编.感觉想把汇编译成高级语言并不是那么容易的事.也有人提出说,在dll设置断点,在它解密后,用汇编指令去内在中读取字节码.
对于.net 和java “高级”源代码加密无非就是Hook这个Hook那个。
对于解密方法 无非就是两个:
1、内存DUMP
2、逆向其源代码。就是类似汇编译成高级语言。
鄙人周末早上没事做,几分钟就把网上这些所谓“JavaClass加密专家、加密大师”的源代码逆向出来了。
其实也是烂简单,因为加密代码都是Copy网上的,我还有空把原始加密算法Google 出来了。
这几天都花在写加密解密程序上,复习下JAVA 说不定以后都用这个了。
不说了,仅供娱乐一下,也就拿了“官方”例子解密了下,不保证你的CLass都能解密。
使用方法选择要解密的文件或者目录,点击解密。
早期的某加密工具就是把魔数从0xCAFEBABE改成0xFECABABE
把地址0x05和0x09、0x07和0x0B的数值交换一下
把末尾最后2个字节位置交换一下,添加一串“XXXXXX”字符 没有用密码学,所以没有加入本程序中





















大小: 96.3M

Advanced PDF Password Recovery Pro5.0.5 汉化纯净安装版
winrar密码破解(RAR Password Recovery Magic)v6.1.1.263 中文绿色版
RAR Password UnlockerV5.0.0.0 特别版
PDF Password Remover(所有者密码清除)v3.1 汉化绿色版
zip密码破解(ZIP Password Recovery Magic)v6.1.1.175 中文绿色版
BIOS密码清除器绿色版
DVD decrypter(DVD解密软件)v3.5.4.0中文绿色版
office系列软件密码恢复(Office Password Recovery Magic)v6.1.1 简体中文绿色版
SDisk个人密盘V6.0绿色中文特别版
异或加解密工具特别版
RAR Password Enumerator(解加密的RAR文件的工具)V1.3.4.2中文绿色免费版
著名开源数据加密工具发布TrueCryptv7.0 多语绿色版
Facebook帐户密码取回工具(FacebookPasswordDecryptor)1.6 绿色版
PGP Desktop Professionalv9.9
Ashampoo Magical Security 2V2.02 中文注册版
中原文件夹加密v3.1 绿色特别版
小小Access密码查看器V1.1简体中文绿色免费版