ASM中的visitMethod不访问Scala中的方法。
创始人
2024-11-11 12:01:18
0

要让ASM的visitMethod在访问Scala中的方法时起作用,需要使用Scala ASM库。示例代码如下:

import org.objectweb.asm.Opcodes import org.objectweb.asm.ClassWriter import org.objectweb.asm.MethodVisitor import scala.tools.asm.ScalaSigAttributeParsers import scala.tools.asm.ClassReader import org.objectweb.asm.ClassVisitor

/**

  • Example class with a method to visit using ASM in Scala. */ class MyClass {

/**

  • Example method to visit. */ def visitMe(): Unit = { println("Visited method using ASM in Scala") }

/**

  • Using ASM to visit the method. */ def visitMethod(): Unit = { val classWriter = new ClassWriter(0) classWriter.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "MyClass", null, "java/lang/Object", null)
val methodVisitor = classWriter.visitMethod(Opcodes.ACC_PUBLIC, "visitMe", "()V", null, null)
methodVisitor.visitCode()
methodVisitor.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;")
methodVisitor.visitLdcInsn("Visited method using ASM in Scala")
methodVisitor.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false)
methodVisitor.visitInsn(Opcodes.RETURN)
methodVisitor.visitMaxs(0, 0)
methodVisitor.visitEnd()

val classReader = new ClassReader(classWriter.toByteArray())
val classVisitor = new ClassVisitor(Opcodes.ASM5) {
  override def visitMethod(access: Int, name: String, descriptor: String, signature: String, exceptions: Array[String]): MethodVisitor = {
    if (name == "visitMe") {
      methodVisitor
    } else {
      super.visitMethod(access, name, descriptor, signature, exceptions)
    }
  }
}
classReader.accept(classVisitor, 0)

} }

val myClass = new MyClass() myClass.visitMethod() // call ASM to visit the method

相关内容

热门资讯

黑科技安装!(德州之星)外挂辅... 黑科技安装!(德州之星)外挂辅助app,(德州)最初是有挂,玩家教你(有挂教程)是一款可以让一直输的...
德州之星软件!wpk怎么玩胜率... 德州之星软件!wpk怎么玩胜率高,wepoke外挂显示,AI教程(从前有挂)1、很好的工具软件,可以...
黑科技辅助挂!(wPK)透视辅... 1、黑科技辅助挂!(wPK)透视辅助插件,(wPk)本来有挂,玩家教程(有挂透视)2、进入游戏-大厅...
wepokeai机器人!wpk... wepokeai机器人!wpk代理合作,wepoke黑科技是啥,玩家教你(竟然真的有挂);实战中需综...
黑科技透明挂!(wEpOke)... 黑科技透明挂!(wEpOke)软件透明挂,(WePoke)总是是有挂,透视教程(有挂方法);科技安装...
wepoke辅助有挂吗!德扑胜... wepoke辅助有挂吗!德扑胜率计算的软件,gg扑克为什么赢不了,教你攻略(竟然真的是有挂);大神普...
黑科技ai!(WEPoke)软... 黑科技ai!(WEPoke)软件透明挂,(wepOKE)其实是有挂,详细教程(有挂透视);致您一封信...
德州之星辅助挂!wpk辅助器小... 德州之星辅助挂!wpk辅助器小程序,wepoke德扑之星,爆料教程(一贯存在有挂),支持语音通讯、好...
黑科技ai!(wEpoke)软... 黑科技ai!(wEpoke)软件透明挂,(WepOke)从前真的是有挂,扑克教程(有挂教程)关于We...
智星德州菠萝有挂吗!gg扑克实... 智星德州菠萝有挂吗!gg扑克实战,微扑克德州专用辅助器游戏平台,2025新版教程(原生真的是有挂);...