ASM - Java bytecode manipulation and analysis framework

  •        1389

ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify existing classes or dynamically generate classes, directly in binary form. Provided common transformations and analysis algorithms allow to easily assemble custom complex transformations and code analysis tools.

ASM offer similar functionality as other bytecode frameworks, but it is focused on simplicity of use and performance. Because it was designed and implemented to be as small and as fast as possible, it makes it very attractive for using in dynamic systems.

http://asm.ow2.org/
http://forge.ow2.org/projects/asm/

Tags
Implementation
License
Platform

   




Related Projects

dexmaker - A utility for doing compile or runtime code generation targeting Android's Dalvik VM

  •    Java

A Java-language API for doing compile time or runtime code generation targeting the Dalvik VM. Unlike cglib or ASM, this library creates Dalvik .dex files instead of Java .class files.It has a small, close-to-the-metal API. This API mirrors the Dalvik bytecode specification giving you tight control over the bytecode emitted. Code is generated instruction-by-instruction; you bring your own abstract syntax tree if you need one. And since it uses Dalvik's dx tool as a backend, you get efficient register allocation and regular/wide instruction selection for free.

jclasslib - jclasslib bytecode viewer is a tool that visualizes all aspects of compiled Java class files and the contained bytecode

  •    Kotlin

jclasslib bytecode viewer is a tool that visualizes all aspects of compiled Java class files and the contained bytecode. In addition, it contains a library that enables developers to read and write Java class files and bytecode. There is a plugin for IntelliJ IDEA that can be installed via the plugin manager. The action in the "View menu" can be invoked when a Java, Groovy or Kotlin file is open in the editor.

huntbugs - Java bytecode static analyzer

  •    Java

Java bytecode static analysis tool

enjarify

  •    Python

Note: This repository may be out of date. Future development will occur at https://github.com/Storyyeller/enjarify.Enjarify is a tool for translating Dalvik bytecode to equivalent Java bytecode. This allows Java analysis tools to analyze Android applications.

Bytecode Translator: A translator from .NET bytecode to Boogie

  •    

Bytecode Translator is a translator from .NET bytecode to Boogie.


python-uncompyle6 - A Python cross-version decompiler

  •    Python

A native Python cross-version decompiler and fragment decompiler. The successor to decompyle, uncompyle, and uncompyle2. uncompyle6 translates Python bytecode back into equivalent Python source code. It accepts bytecodes from Python version 1.5, and 2.1 to 3.7 or so, including PyPy bytecode and Dropbox's Python 2.5 bytecode.

jclasslib bytecode viewer

  •    Java

jclasslib bytecode viewer is a tool that visualizes all aspects of compiled Java class files and the contained bytecode. In addition, it contains a library that enables developers to read, modify and write Java class files and bytecode.

Flasm - a Flash bytecode assembler

  •    C

Flasm is an assembler/disassembler for Flash actionscript bytecode. Using flasm, script authors may learn how actionscript compiler and Flash Player virtual machine work, and tweak the compiled bytecode in SWF files for performance.

Visual Examinator

  •    Java

Bytecode Examinator - This is a gui application that aids students learning of Java bytecode and Java class file construction. It provides visual insight to assembly and disassembly of Java bytecode.

undx

  •    Java

Undx is a bytecode translator, it converts the bytecode for the dalvik vm (a virtual machine for android applications) to standard java bytecode.

redex - A bytecode optimizer for Android apps

  •    C++

ReDex is an Android bytecode (dex) optimizer originally developed at Facebook. It provides a framework for reading, writing, and analyzing .dex files, and a set of optimization passes that use this framework to improve the bytecode. An APK optimized by ReDex should be smaller and faster than its source.Getting these dependences is easiest using a package manager.

GCJ

  •    C

GCJ is a portable, optimizing, ahead-of-time compiler for the Java Programming Language. It can compile Java source code to Java bytecode (class files) or directly to native machine code, and Java bytecode to native machine code.

TechTrader Bytecode Toolkit

  •    Java

The TechTrader Bytecode Toolkit is a high-level set of APIs for manipulating java bytecode. It is primarily targeted at making runtime and/or compile-time enhancements to existing java classes, or creating new java classes on the fly.

luajit-lang-toolkit - A Lua bytecode compiler written in Lua itself for didactic purposes or for new language implementations

  •    Lua

The LuaJIT Language Toolkit is an implementation of the Lua programming language written in Lua itself. It works by generating LuaJIT bytecode, including debug information, and uses LuaJIT's virtual machine to run the generated bytecode. On its own, the language toolkit does not do anything useful, since LuaJIT itself does the same things natively. The purpose of the language toolkit is to provide a starting point to implement a programming language that targets the LuaJIT virtual machine.

robovm - Ahead of time compiler for JVM bytecode targetting iOS, Mac OSX and Linux

  •    Java

The RoboVM compiler translates Java bytecode into native ARM or x86 code. Apps run directly on the CPU. No interpreter or virtual machine involved.

OverloadReturn - Bytecode rewriter that creates overloads of methods which vary only by return type.

  •    Kotlin

An annotation and bytecode rewriter that creates overloads of methods which vary only by return type. This is not legal in source but is perfectly valid in bytecode. The second method will be generated by the compiler. It is marked as synthetic so that it does not show up in the IDE to consumers. The annotation is also removed from the original method leaving no runtime trace of the tool.

cinder - Instagram's performance oriented fork of CPython.

  •    Python

Cinder is Instagram's internal performance-oriented production version of CPython 3.8. It contains a number of performance optimizations, including bytecode inline caching, eager evaluation of coroutines, a method-at-a-time JIT, and an experimental bytecode compiler that uses type annotations to emit type-specialized bytecode that performs better in the JIT. For more information on CPython, see README.cpython.rst.

SCOUTER - APM (Application Performance Management) tool.

  •    Java

SCOUTER is an open source APM like new relic and appdynamics. (APM means Application Performance Monitoring or Application Performance Management.) SCOUTER shows metrics about Users (Active user, Recently used user, Today visitor), Services ( Active service, TPS, Response time, Application profiles(method profile, sql profile, external call profile etc) and Resources (Cpu, Memory, Network and Heap usage, Connection pools etc).

WALA

  •    Java

The T. J. Watson Libraries for Analysis (WALA) provide program analysis capabilities for Java bytecode and related languages. The WALA libraries constitute an open-source release of parts of IBM Research's DOMO analysis infrastructure.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.