bytecode-manipulation

Is it possible to do bytecode manipulation when using OSGi?

I'm making an application server and in it I need to use some bytecode manipulation (e.g. inserting custom equals and hashCode methods to classes annotated with @Entity). Now I give the JVM a Java Agent (the -javaagent option) which does bytecode transformations using ASM. I've been considering using OSGi, but I don't know whether it al...

erlang BEAM bytecode

hello well I hope Im not breaking some spamming rule here with this. I just asked a question about how the erlang compiler implements pattern matching, and I got some great responses, one of which is the compiled bytecode (obtained with a parameter passed to the c() directive): {function, match, 1, 2}. {label,1}. {func_info,{ato...

How do I convert between big-endian and little-endian values in C++?

How do I convert between big-endian and little-endian values in C++? I'm using VC++ 6.0.when I used _byteswap_ulong() function it requires the header file intrin.h. When I include the header it reports an error saying incompatible compiler and that intrin.h is for the gcc compiler. So is there any other functions to convert between big-e...

What are GeneratedMethodAccessor1,2,etc and why might they not be found?

I'm getting stack traces like this: java.lang.NoClassDefFoundError: sun/reflect/GeneratedMethodAccessor1 at sun.reflect.GeneratedMethodAccessor1.<clinit>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorI...

Rewriting method calls within compiled Java classes

I want to replace calls to a given class with calls to anther class within a method body whilst parsing compiled class files... or put another way, is there a method of detecting usages of a given class in a method and replacing just that part of the method using something like javaassist. for example.. if I had the compiled version of...

unboxing using the ASM Java library

I'm using the ASM Java library to replace some reflection. I generate the body of this method: void set(Object object, int fieldIndex, Object value); With this generated method, I can set fields on an object at runtime without using reflection. It works great. However, I found it fails for primitive fields. Here is the relevant part o...

Reassembling Python bytecode to the original code?

This might be a silly question, but, given the output of, say.. >>> from dis import dis >>> def myfunc(x): ... print x ** 2 ... >>> dis(myfunc) 2 0 LOAD_FAST 0 (x) 3 LOAD_CONST 1 (2) 6 BINARY_POWER 7 PRINT_ITEM 8 PRINT...

Does JAXB use bytecode instrumentation?

Someone where i work noticed (in stacktrace) that when running the jvm with -javaagent:spring-instrumentation.jar my JAXB annotated classes have strange new methods in them which we didn't write: e.g. SomeJaxbAnnotatedClass$JaxbAccessorM_getFields_setFields_java_util_Set.get Does this mean that jaxb uses bytecode instrumentation when it...

How to generate code objects from modules in Python?

I have a .pyc file with no corresponding Python source code. I want to see the disassembly of the module using dis. I can import my module just fine with import dis import foo But to call dis.dis on it, I can't use the module object. I need the corresponding code object which backs foo. How do I create it? It seems that the compile bu...

Stand-alone Bytecode Verifier

In my bytecode instrumentation project, I stumble frequently on VerifyErrors. However, the default java Verifier gives little information on which instruction resulted in the error (it only gives the method and a small message). Is there any stand-alone bytecode verifier which provides with a little more advanced help in locating the err...

Can i insert Bytecode inside my source code?

Can i write bytecode inside a method of a class so that the compiler bypasses that part since it is already compiled. Something similar to writing assembly programs in C language using "asm"... ...

Bytecode: LOOKUPSWITCH and TABLESWITCH

I am currently instrumenting bytecode using BCEL. In the BCEL API, the two instructions types LOOKUPSWITCH and TABLESWITCH (package org.apache.bcel.generic) are implementing interface StackProducer. I know that these two instructions pop the operand stack (i.e. consume it) and do not produce anything on the stack, so how come they implem...

Java Bytecode Manipulation Library Suggestions

I'm looking for a well-maintained Java bytecode manipulation library with an intuitive API. There seem to be quite a lot of them out there. Any suggestions on which ones to try? ...

Bytecode manipulation patterns

What legitimate uses are there for bytecode manipulation and how people implement those bytecode manipulation based solutions in practice? Update: I should have made it more clear that this question really is about what patterns and techniques people use to make their code fly with the help of bytecode manipulation. Something like aspe...

How to detect Java agents, JVMTI, etc...

How does one secure the Java environment when running on a machine you don't control? What is to stop someone from creating a java agent or native JVMTI agent and dumping bytecode or re-writing classes to bypass licensing and/or other security checks? Is there any way to detect if any agents are running from Java code? From JNI? From...

Statically checking a Java app for link errors

I have a scenario where I have code written against version 1 of a library but I want to ship version 2 of the library instead. The code has shipped and is therefore not changeable. I'm concerned that it might try to access classes or members of the library that existed in v1 but have been removed in v2. I figured it would be possible t...

Is there a java classfile / bytecode editor to edit instructions?

Is there a utility (or eclipse plugin) for editing java class files? I'd like to manipulate the bytecode of a java class file without recompiling it nor having a complete buildpath. E.g. to rename methods, add/delete instructions, change constants etc. The only utilities I found are: classeditor but it's very limited in functionalit...

Is it possible to view bytecode of Class file?

In Java,source code is compiled into bytecode which is actually Class file. Is it possible that we can view bytecode of Class file? If it possible, Can we edit it? Is there any eclipse plugin available? -Abhishek Jain ...

How make Eclipse instrument classes at build time?

Sometimes I have to perform some custom bytecode transformation. I have used mainly asm and javaassit. Inside eclipse usually I run my code with the -javaagent jvm parameter. Outside eclipse I use maven, ant, or the command prompt to invoke the weavers before running the application code. But the point is that: I would like to perform...

How to check that bytecode operation PUTFIELD is reassigning a field belonging to 'this' object using ObjectWeb ASM?

I am using the ASM bytecode manipulation framework to perform static analysis on Java code. I wish to detect when fields of an object are reassigned, i.e. when this kind of code occurs: class MyObject { private int value; void setValue(int newValue) { this.value = newValue; } } Using the following code (in a class implementing...