ASM 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
ASM 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 BSD
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 不详
提 交 者 红薯
适用人群 未知
收录时间 2009-02-25

软件简介

ASM是一个通用的Java字节码操作和分析框架。 它可以用于修改现有类或直接以二进制形式动态生成类。 ASM提供了一些常见的字节码转换和分析算法,可以从中构建自定义复杂转换和代码分析工具。 ASM提供与其他Java字节码框架类似的功能,但专注于性能。 因为它的设计和实现尽可能小而且快,所以它非常适合在动态系统中使用(但当然也可以以静态方式使用,例如在编译器中)。

 

展开阅读全文

评论 (1)

加载中
软件文档404 @红薯 ASM
2014/10/26 11:02
回复
举报
更多评论
发表于大前端专区
2019/03/25 09:29

ASM 7.1 发布

ASM是一个久经考验的框架,包括Spring在内的多个框架都使用ASM作为字节码工具。 7.1 更新如下 用于Java 13的新常量Opcodes.V13 asm.Type中的小优化 检查CheckMethodAdapter.visitLocalVariable中的签名 重构单元测试使用Arrange-Act-Assert模式 弃用 弃用ClassReader.b 弃用ASMifiable和Textifiable(替换为ASMifierSup...

5
16
发表了资讯
2014/03/21 00:00

ASM 5 发布,Java 字节码操纵框架

新特性: 1、支持java8 2、visitMethodInsn(int,String,String,String)方法被标记为 deprecated,用visitMethodInsn(int,String,String,String,boolean) 替代。 Bug fixes: 317111 source debug extension size should not be limeted to 64k 316682 maxLocals not updated in AnalyzerAdapter constructor. 316630 Typ...

11
28
发表了资讯
2011/11/01 00:00

ASM 4.0 发布,Java 字节码操纵框架

ASM 是一个 Java 字节码操纵框架。它可以直接以二进制形式动态地生成 stub 类或其他代理类,或者在装载时动态地修改类。ASM 提供类似于 BCEL 和 SERP 之类的工具包的功能,但是被设计得更小巧、更快速,这使它适用于实时代码插装。 ASM 4.0 完全支持 Java 7,详细改进内容请看发行说明。...

0
10
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于AI & 大数据专区
2015/03/16 04:04

ASM

原有的类 Java代码 public class Aop1{ public void doSomething() throws Throwable{ //打我啊,拍我啊! } } 改造后 Java代码 public class Aop1$$Aop extend Aop1{ @Override public void doSomething() throws Throwable{ try { if (_Nut_before(188)) { super.doSomething(); } _Nut_after(188, null); } catch (Exc...

0
0
发表了博客
2012/03/09 16:22

创建ASM实例及ASM数据库

--======================== -- 创建ASM实例及ASM数据库 --======================== 一、ASM相关概念 1.什么是ASM(Auto Storage Management) 简称自动存储管理,是一种用于管理磁盘的工具 能够在多个物理设备之间实现条带化、镜像数据文件、恢复文件等 文件按分配单元AUs(allocation units)平衡分布在磁盘组的所有磁盘中...

0
0
发表了博客
2019/07/24 09:10

ASM命令

在Oracle 环境下,使用grid帐号执行 运行asmcmd进入asm命令模式,如: [grid@oradb-node1 ~]$ asmcmd ASMCMD> ASMCMD> du //显示指定的ASM目录下ASM文件占用的所有磁盘空间 ASMCMD> ls -ls //列出ASM目录下的内容及其属性、磁盘空间占用 ASMCMD> pwd //查看当前路径 ASMCMD> cd ../DATA //切换目录 ASMCMD> lsct //列出当...

0
0
发表了博客
2015/08/03 01:25

ASM 介绍

引言 什么是 ASM ? ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及...

2
20
发表于软件架构专区
2016/06/10 10:11

asm 笔记

asm的user guide 笔记

0
0
发表于大前端专区
前天 16:39

ASM学习

构造方法visit 1、// 1和3如何通过ASM访问方法区别开,字节码如下 TextViewTest extends TextView public TextViewTest(Context context, @Nullable AttributeSet attrs) { // 字节码: invokespecial #2...

0
0
发表了博客
2013/04/16 21:50

[ASM]两个比较有用的ASM工具类

org.objectweb.asm.util.ASMifierClassVisitor:分析类,并生成asm生成该类的代码, 如果自己不想了解具体的asm指令,这个类最有帮助 java -classpath asm-3.3.1.jar;asm-util-3.2.jar org.objectweb.asm.util.ASMifierClassVisitor java.lang.Runnable org.objectweb.asm.util.TraceClassVisitor:这个类是asmifier里用到...

0
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于大前端专区
07/09 22:14

asm中visitMethodInsn方法动态注入问题

注意:我能够确定我的其他程序是没有问题的,因为这是我从其他地方复制粘贴的代码,并且可以跑通,我的目的是实现自己的动态注入。 当我尝试通过ASM对字节码进行注入时,遇到了以下问题。 在我借助idea的 ASM Bytecode Outline 插件将代码转换后,再对照ASM进行设置。 下图是我想要注入到字节码中的代码: 下面是该代码生...

2
0
发表于大前端专区
2018/11/10 21:51

内联汇编,是C++标准,还是某些编译器独有的特色?

如_asm asm之类的内联汇编

2
0
2012/12/15 12:46

asm-3.3.1.jar,它是干嘛的?

asm-3.3.1.jar,它是干嘛的?spring依赖它做什么事?期待大侠们的回复

4
0
发表了问答
2016/09/05 20:34

求解gcc编译链接汇编和c++代码找不到引用的问题

汇编代码文件如下: section .bss section .data section .text global _gettsc _gettsc: rdtsc rol rdx,32 or rdx,rax mov rax,rdx ret C/C++代码文件如下: #include <stdio.h> extern unsigned long _gettsc(); int main() {   unsigned long count = _gettsc();   return 0; } 如果c++代码文件命名为.cpp则按照C++去...

3
0
发表了问答
2016/09/03 13:45

求解gcc编译c内联汇编标号报错的一个问题

使用gcc编译c语言内联汇编使用-O优化时,是标号部分报错,请问有知道怎么解决的吗? unsigned long strcpy0(char* dst,const char* src) {   __asm__ __volatile__     (      ".intel_syntax noprefix\n"      "POS2:\n"      "lodsb\n"      "stosb\n"      "test al,al\n"      "jnz POS2\n"      :      :      :"rax","rbx"      ); } 报错...

2
0
发表了问答
2010/03/29 13:52

使用 ASM 从 .class 文件中提取类的详细信息

ASM 是一个 Java 字节码操纵框架。它可以直接以二进制形式动态地生成 stub 类或其他代理类,或者在装载时动态地修改类。 今天我们提供一个简单例子用来掩饰 ASM 最基本的功能,解析 .class 文件的信息。ASM 提供了一个 ClassReader 类用来解析 class 文件,该类需要一个 ClassVisitor 接口的实例,使用类似事件的模式来触...

3
5
发表了问答
2015/12/22 17:03

asm 生成 class 问题

public Map getTextParams() { MideaHashMap localMideaHashMap = new MideaHashMap(); localMideaHashMap.put("mobilePhone", this.mobilePhone); localMideaHashMap.put("telephone", this.telephone); localMideaHashMap.put("qq", this.qq); localMideaHashMap.put("weixin", this.weixin); localMideaHashMap.put("...

1
0
发表了问答
2014/09/08 19:55

Java ASM 如何获取字段值和方法返回值

@邸星星 你好,想跟你请教个问题: 在使用ASM的时候,我能获取字段的名称和方法名称,但是就是无法获取字段或方法的返回值。 代码如下: TestBean package test; public class TestBean {   public int in = 9 ;   public int getIn() {     return in;   }   public void setIn(int in) {     this.in = in;   }    } TestVis...

1
0
发表了问答
2014/10/02 04:09

为什么破解要学win32汇编?

听说破解要学win32汇编,写壳也要用win32汇编?为什么呢?不学不能学破解吗?

13
3
发表了问答
2011/08/15 15:49

动态实时跟踪你的java程序

文章转自:http://www.tbdata.org/archives/1851 之前有写 基于AOP的日志调试 讨论一种跟踪Java程序的方法, 但不是很完美.后来发现了 Btrace , 由于它借助动态字节码注入技术 , 实现优雅且功能强大. 只不过, 用起来总是磕磕绊绊的, 时常为了跟踪某个问题, 却花了大把的时间调试Btrace的脚本. 为此, 我尝试将几种跟踪模式...

1
30
发表了问答
2014/07/22 20:39

汇编语言获取dll基地址

这段话运行了10多次得到kernel32都为75cc0000 push eax; mov eax, dword ptr fs:[0x30]; mov eax, [eax + 0x0c]; mov eax, [eax + 0x1c]; mov eax, [eax]; mov eax, [eax + 0x08]; mov addrkernel32, eax; pop eax; 用ida查看kernel32的imagebase得到的却是 7DD60000 请问这是什么原因,是我汇编代码有错误还是因为重定位...

3
1
发表了问答
2013/07/13 10:11

自定义ClassLoader在 Web环境下的问题

尝试通过自定义ClassLoader 配和 ASM实现AOP. package com.hkliang.core.web; public class WebClassLoader extends ClassLoader{    public WebClassLoader(){ super(WebClassLoader.class.getClassLoader()); }    public Class<?> defineClass(String name, byte[] code) throws ClassNotFoundExc...

4
2
发表了问答
2012/06/30 22:14

关于使用cglib动态代理的问题

我想自己做一套ORM的产品,然后在做某一部分时,因为所有方法都需要调用一个公共方法,因此想使用动态代理,后来选择了CGLib。但在代理时出现了这样一个问题。 net.sf.cglib.core.CodeGenerationException: java.lang.NoSuchMethodException-->org.zhc.jdbc.BaseDAO$$EnhancerByCGLIB$$724bfabe.<init>(com.mysql.jdbc.J...

7
0
发表了问答
2011/09/26 20:42

Java 字节码工具 ASM 在 web services 开发中的应用

在基于 JAX-WS 标准的 web services 的开发中,不少实际场景都是希望采用自底向上的开发方式, 即基于已有的 Java bean 来创建 web services 。WebSphere Application Server ( 以下简称 WAS ) 提供了命令行的工具 wsgen 和相对应的 Ant task 来支持这种开发过程,而且这两个工具比较适合大型项目的自动化构建。 这两个工...

2
11
发表了问答
2010/03/14 22:42

CGLib的性能看来比较差

CGLib (Code Generation Library) 是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO字节码的动态生成。 下面是一段典型的用 CGLib 扩展指定类的方法: @SuppressWarnings("unchecked") private static <T> T createProxy(Class<T> targetClass){ Enh...

9
5
发表了问答
2012/07/15 21:07

asm 包从哪下载啊

8
0
发表了问答
2010/03/13 21:25

一个小例子演示 cglib 动态代理库

cglib是个好东东,说牛刀,是因为它很强大,用途很广。小试,是因为仅仅用它做了个类似hello world的小程序。 cglib是Spring、Hibernate依赖的核心包,但是cglib还算不上最底层的,因为它是在asm包之上做了封装,以增强易用 性。据了解,Hibernate3.2已经不再依赖cglib了,而直接依赖asm。这些都不影响cglib的强大功能。...

5
6
发表了问答
2012/01/04 20:46

使用 ASM 实现 Java 语言的“多重继承”

简介: 尽管大部分情况下我们并不需要多重继承,但总有一些情况下我们不得不做出多重继承的考虑。但又由于 Java 语言本身不支持多重继承,这就会带来问题。本文试图使用 ASM 来解决这一问题。 问题的提出 在大部分情况下,需要多重继承往往意味着糟糕的设计。但在处理一些遗留项目的时候,多重继承可能是我们能做出的选择...

2
12
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
151 收藏
分享
返回顶部
顶部