zhaomingzm_23 写道
1.Javassist 小日本的东西,先鄙视一下
如果用
yGroud 加密过的,你基本就没办法,你无法writeFile覆盖它长文件名的class,你可能都不知道要覆盖哪个。
2.没有什么软件是破解不了的(包括联网验证,我可以根本不让它联网,自己模拟一个response)
引用
看雪的Tutorial:
软件的破解技术与保护技术这两者之间本身就是矛与盾的关系,它们是在互相斗争中发展进化的。这种技术上的较量归根到底是一种利益的冲突。
3.当然在只有class的前提下
想去掉原来讨厌的name, logo , not registered infomations 或者什么你不喜欢的东西,知道有个javassist你可以用,总比直接修改class byte[] 强点。
另:了解到
jclasslib 也可以做这些事情,结合自带的Bytecode viewer 可以直接查看字节码
public class Name
{
public static void main(String... mike) {
System.out.println("测试");
}
}
package com.mike.jclasslib.demo;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import org.gjt.jclasslib.io.ClassFileWriter;
import org.gjt.jclasslib.structures.CPInfo;
import org.gjt.jclasslib.structures.ClassFile;
import org.gjt.jclasslib.structures.constants.ConstantUtf8Info;
/**
* @since 2010-5-13上午09:12:28
*/
public class ConstantPoolChanger {
private static String filePath = "C:/com/Name.class";
private static final String suffix = ".jclasslib";
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream(filePath);
DataInput di = new DataInputStream(fis);
ClassFile cf = new ClassFile();
cf.read(di);
CPInfo[] infos = cf.getConstantPool();
int count = infos.length;
for (int i = 0; i < count; i++) {
if (infos != null) {
System.out.print(i);
if(i == 18){
//这里的18就是在Bytecode viewer 中查看得到的。
ConstantUtf8Info uInfo = (ConstantUtf8Info) infos[i];
System.out.println(
uInfo.getString()
);
uInfo.setString("mike");
}
}
}
cf.setConstantPool(infos);
fis.close();
//写到文件
File f = new File(filePath + suffix);
ClassFileWriter.writeToFile(f, cf);
}
}
分享到:
相关推荐
赠送jar包:javassist-3.21.0-GA.jar; 赠送原API文档:javassist-3.21.0-GA-javadoc.jar; 赠送源代码:javassist-3.21.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:javassist-3.24.0-GA.jar; 赠送原API文档:javassist-3.24.0-GA-javadoc.jar; 赠送源代码:javassist-3.24.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:javassist-3.27.0-GA.jar; 赠送原API文档:javassist-3.27.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:javassist-3.20.0-GA.jar; 赠送原API文档:javassist-3.20.0-GA-javadoc.jar; 赠送源代码:javassist-3.20.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:javassist-3.18.1-GA.jar; 赠送原API文档:javassist-3.18.1-GA-javadoc.jar; 赠送源代码:javassist-3.18.1-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:javassist-3.18.1-GA.jar; 赠送原API文档:javassist-3.18.1-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:javassist-3.21.0-GA.jar; 赠送原API文档:javassist-3.21.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:javassist-3.19.0-GA.jar; 赠送原API文档:javassist-3.19.0-GA-javadoc.jar; 赠送源代码:javassist-3.19.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar; 赠送源代码:javassist-3.23.1-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:javassist-3.24.0-GA.jar; 赠送原API文档:javassist-3.24.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
AopAutoTryCatch 使用Javassist(一个自定义的Gradle插件)来实现自动try-catch用Javassist实现AOP思想,达到一个注解即可自动加try-catch的目的,当然,AOP的应用场景还有很多,这里抛砖引玉,希望给大家一些参考。...
赠送jar包:javassist-3.19.0-GA.jar; 赠送原API文档:javassist-3.19.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
借助jclasslib与javassist修改java class字节码.doc
赠送jar包:javassist-3.20.0-GA.jar 赠送原API文档:javassist-3.20.0-GA-javadoc.jar ...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
JavaAgent Javassist 与 Asm JavaAgent 字节码动态编程项目
开源的分析、编辑和创建Java字节码的类库,加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。
环境JDK1.8 IDEA项目 javaagent+javassist 下载后导入即可
使用Javassist的JDK8的Jibx 由于Jibx用于代码绑定的BECL尚未更新,因此不再支持JDK8。 该项目基于Jibx的1.2.3版本重新编码了绑定的一部分。 它应该与最新版本1.2.5兼容。 已知的问题: 两次使用“ mvn软件包”...
通过javaagent和javassist技术实现对java的ArrayList和HashMap的增强,在操作集合元素时判断集合元素个数, 当集合元素个数大于设置的上限时,抛出异常,终止此次操作,从而避免在集合元素过大导致OOM. #使用方式: ...