
asm
Enaium
这个作者很懒,什么都没留下…
展开
-
[ASM教程]#6树API
首发于Enaium的个人博客使用树API来生成一个类public static void main(String[] args) { ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS); ClassNode classNode = new ClassNode(); classNode.visit(V1_8, ACC_PUBLIC, "cn/enaium/learn/asm/learn6/Lear原创 2021-07-16 13:36:30 · 260 阅读 · 0 评论 -
[ASM教程]#5字符串混淆
首发于Enaium的个人博客测试类,需要混淆这里所有的字符串,上一期我们学习了如果插入一个常量,那么拦截插入常量的时候判断是不是字符串,如果是就混淆它。public class Learn5Test { private final String name = "Enaium"; private Learn5Test() { render(name); } private void render() { System.out.print原创 2021-03-19 20:23:07 · 315 阅读 · 0 评论 -
[ASM教程]#4创建对象和数组
首发于Enaium的个人博客这期我们要创建一个对象和数组。MethodVisitor methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);methodVisitor.visitTypeInsn(NEW, "java/lang/String");//插入一个对象,操作码是NEW,类型是String。methodVisitor.visitLdcInsn("Enaium");//插入原创 2021-03-19 20:22:33 · 634 阅读 · 0 评论 -
[ASM教程]#3增加移除类成员
首发于Enaium的个人博客可以委托一个ClassWriter。public class MyClassVisitor extends ClassVisitor { public MyClassVisitor(ClassWriter classWriter) { super(ASM5, classWriter); }}这样就可以把读取到的类转换为二进制文件了。ClassReader classReader = new ClassReader(Learn3Test原创 2021-03-19 20:21:49 · 213 阅读 · 0 评论 -
[ASM教程]#2生成类
首发于Enaium的个人博客public class Learn2 { public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS); classWri原创 2021-03-19 20:21:15 · 178 阅读 · 0 评论 -
[ASM教程]#1分析类
首发于Enaium的个人博客ASM是一种通用Java字节码操作和分析框架,它可以用于修改现有的class文件或动态生成class文件。直接进入主题,分析这个类。public class Learn1Test { public boolean aBoolean = false; public void render() { System.out.println("Hello ASM"); }}先创建一个MyClassVisitor类,继承ClassVis原创 2021-03-19 20:20:44 · 235 阅读 · 0 评论