众所周知,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”字符 没有用密码学,所以没有加入本程序中
未经书面许可,严禁将本网内容作为AI训练资源。
33台词PC版 0.1
文件批量改名Bulk Rename Utility v3.4.1 中文绿色版
PDF快转(SanPDF) v2.0.6.66 官方版
菲菲更名宝贝之得意非凡FFRenamePro V4.0专业版
查找大文件(WizTree) v3.35 绿色版
文件比较查重工具WinMerge v2.16.8.0 中文版
Windows文件管理器(WinNc) v9.4.0.0 官方安装版
文件压缩档案提取(Explzh) v8.18 官方版
WinMerge v2.16.7.0 官方多语中文版
UltraCompare文件比较工具汉化修正中文版 V21.10.0.20免费64位注册码绿色版
文档自动转换工具BlackIce BiBatchConverter v4.80.632 官方版
批量文本文件处理器 V1.4绿色版
MAXHUB文档客户端 v1.3.1官方PC版
文件校验工具(EF CheckSum Manager) v20.02 官方版
全速pdf转换成excel转换器 v7.8.0.0官方版