`
zhaomingzm_23
  • 浏览: 33046 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

答复: 用javassist和jclasslib破解java软件

阅读更多
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);
    }
	
	
}





分享到:
评论

相关推荐

    javassist-3.21.0-GA-API文档-中文版.zip

    赠送jar包:javassist-3.21.0-GA.jar; 赠送原API文档:javassist-3.21.0-GA-javadoc.jar; 赠送源代码:javassist-3.21.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    javassist-3.23.1-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    javassist-3.24.0-GA-API文档-中文版.zip

    赠送jar包:javassist-3.24.0-GA.jar; 赠送原API文档:javassist-3.24.0-GA-javadoc.jar; 赠送源代码:javassist-3.24.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    javassist-3.27.0-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.27.0-GA.jar; 赠送原API文档:javassist-3.27.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    javassist-3.20.0-GA-API文档-中文版.zip

    赠送jar包:javassist-3.20.0-GA.jar; 赠送原API文档:javassist-3.20.0-GA-javadoc.jar; 赠送源代码:javassist-3.20.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    javassist-3.18.1-GA-API文档-中文版.zip

    赠送jar包:javassist-3.18.1-GA.jar; 赠送原API文档:javassist-3.18.1-GA-javadoc.jar; 赠送源代码:javassist-3.18.1-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    javassist-3.18.1-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.18.1-GA.jar; 赠送原API文档:javassist-3.18.1-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    javassist-3.21.0-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.21.0-GA.jar; 赠送原API文档:javassist-3.21.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    javassist-3.19.0-GA-API文档-中文版.zip

    赠送jar包:javassist-3.19.0-GA.jar; 赠送原API文档:javassist-3.19.0-GA-javadoc.jar; 赠送源代码:javassist-3.19.0-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    javassist-3.23.1-GA-API文档-中文版.zip

    赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar; 赠送源代码:javassist-3.23.1-GA-sources....人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    javassist-3.24.0-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.24.0-GA.jar; 赠送原API文档:javassist-3.24.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    AopAutoTryCatch:使用Javassist(一个自定义的Gradle插件)来实现自动try-catch。 AOP思想取代预防性try-catch

    AopAutoTryCatch 使用Javassist(一个自定义的Gradle插件)来实现自动try-catch用Javassist实现AOP思想,达到一个注解即可自动加try-catch的目的,当然,AOP的应用场景还有很多,这里抛砖引玉,希望给大家一些参考。...

    javassist-3.19.0-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.19.0-GA.jar; 赠送原API文档:javassist-3.19.0-GA-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    借助jclasslib与javassist修改java class字节码

    借助jclasslib与javassist修改java class字节码.doc

    javassist-3.20.0-GA-API文档-中英对照版.zip

    赠送jar包:javassist-3.20.0-GA.jar 赠送原API文档:javassist-3.20.0-GA-javadoc.jar ...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    JavaAgent:Javassist 与 Asm JavaAgent 字节码动态编程项目

    JavaAgent Javassist 与 Asm JavaAgent 字节码动态编程项目

    javassist-3.12.1.GA.jar

    开源的分析、编辑和创建Java字节码的类库,加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。

    javaagent+javassist

    环境JDK1.8 IDEA项目 javaagent+javassist 下载后导入即可

    jibx-bind:使用Javassist的JDK8的Jibx

    使用Javassist的JDK8的Jibx 由于Jibx用于代码绑定的BECL尚未更新,因此不再支持JDK8。 该项目基于Jibx的1.2.3版本重新编码了绑定的一部分。 它应该与最新版本1.2.5兼容。 已知的问题: 两次使用“ mvn软件包”...

    collection-agent:通过javaagent和javassist技术实现对java的ArrayList和HashMap的增强,避免在虚拟器一次load大量数据时导致OOM

    通过javaagent和javassist技术实现对java的ArrayList和HashMap的增强,在操作集合元素时判断集合元素个数, 当集合元素个数大于设置的上限时,抛出异常,终止此次操作,从而避免在集合元素过大导致OOM. #使用方式: ...

Global site tag (gtag.js) - Google Analytics