java 高新技术【10】 编写对class文件进行加密的工具类
2012-05-31 09:44
656 查看
[java] view
plaincopyprint?
package com.itm.one;
import java.io.FileInputStream;
import java.io.FileOutput
4000
Stream;
import java.io.InputStream;
import java.io.OutputStream;
public class MyClassLoader extends ClassLoader{
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String srcPath =
188d9
args[0];
String destDir = args[1];
FileInputStream fis = new FileInputStream(srcPath);
String destFileName = srcPath.substring(srcPath.lastIndexOf('\\')+1);
String destPath = destDir + "\\" + destFileName;
FileOutputStream fos = new FileOutputStream(destPath);
cypher(fis,fos);
fis.close();
fos.close();
}
private static void cypher(InputStream ips ,OutputStream ops) throws Exception{
int b = -1;
while((b=ips.read())!=-1){
ops.write(b ^ 0xff);
}
}
}
[java] view
plaincopyprint?
import java.util.Date;
public class ClassLoaderAttachment extends Date {
public String toString(){
return "Hello World";
}
}
一:运行MyClassLoader时,对ClassLoaderAttachment加密:
(1)首先,找到ClassLoaderAttachment的class文件,在bin目录下。
(2) 运行 MyClassLoader的时候:
注意下:这个时候 ClassLoaderAttachment 没有包名,在测试的时候 要把它放入包中,不然有异常:有包名的类不能调用无包名的类。
[java] view
plaincopyprint?
public class LoaderTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new ClassLoaderAttachment().toString());
}
}
此时 输出正确。
而这个时候,我们来对其加密:
(1)找到ClassLoaderAttachment的 Class文件。
(2)运行MyClassLoader:
这是 拿到 刚刚加密完的class文件 去覆盖掉 最早的那个好的文件:
覆盖好了以后,在运行loaderTest,就会报错:
plaincopyprint?
package com.itm.one;
import java.io.FileInputStream;
import java.io.FileOutput
4000
Stream;
import java.io.InputStream;
import java.io.OutputStream;
public class MyClassLoader extends ClassLoader{
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String srcPath =
188d9
args[0];
String destDir = args[1];
FileInputStream fis = new FileInputStream(srcPath);
String destFileName = srcPath.substring(srcPath.lastIndexOf('\\')+1);
String destPath = destDir + "\\" + destFileName;
FileOutputStream fos = new FileOutputStream(destPath);
cypher(fis,fos);
fis.close();
fos.close();
}
private static void cypher(InputStream ips ,OutputStream ops) throws Exception{
int b = -1;
while((b=ips.read())!=-1){
ops.write(b ^ 0xff);
}
}
}
[java] view
plaincopyprint?
import java.util.Date;
public class ClassLoaderAttachment extends Date {
public String toString(){
return "Hello World";
}
}
一:运行MyClassLoader时,对ClassLoaderAttachment加密:
(1)首先,找到ClassLoaderAttachment的class文件,在bin目录下。
(2) 运行 MyClassLoader的时候:
注意下:这个时候 ClassLoaderAttachment 没有包名,在测试的时候 要把它放入包中,不然有异常:有包名的类不能调用无包名的类。
[java] view
plaincopyprint?
public class LoaderTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new ClassLoaderAttachment().toString());
}
}
此时 输出正确。
而这个时候,我们来对其加密:
(1)找到ClassLoaderAttachment的 Class文件。
(2)运行MyClassLoader:
这是 拿到 刚刚加密完的class文件 去覆盖掉 最早的那个好的文件:
覆盖好了以后,在运行loaderTest,就会报错:
相关文章推荐
- java 高新技术【10】 编写对class文件进行加密的工具类
- 编写对class文件进行加密的工具类
- 黑马程序员之编写对class文件进行加密的工具类
- 通过encryption.exe对java的class文件进行加密
- Java--对于 class文件进行加密 然后通过我们自己写的类加载器进行加载指定类
- Java--对于 class文件进行加密 然后通过我们自己写的类加载器进行加载指定类
- 使用java对文件或文件夹进行压缩和加密
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
- Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
- java使用eclipse/myeclipse对无源码的class文件进行反编译插件使用
- 对Java配置文件中敏感信息进行加解密的工具类
- java ant进行编译打包,build.xml文件编写
- 对Java配置文件中敏感信息进行加解密的工具类
- json数据与JAVA数据的转换 jsonJavaBean.netApache 自己编写了一个工具类,处理页面提交json格式数据到后台,再进行处理成JAVA对象数据 1、DTO:Data T
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- Java中如何将包中工具类进行打包导出做成jar文件
- 根据SVN距给定时间之后提交的文件进行增量部署Java工具类
- 基于ASM开发的一个关于class文件加密程序,可对整个jar进行加密且不影响资源文件
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- 用jar命令将java class文件打包以及编写方便执行jar文件的批处理文件