You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-user@jakarta.apache.org by Manish Shah <ms...@pixo.com> on 2002/12/02 17:30:43 UTC

J2ME bytecode modification

Hi,

I am wondering if I can use BCEL to modify J2ME MIDlets since any bytecode
modification in J2ME would require running a J2ME verifier on the modified
bytecodes. My understanding is that J2ME preverification involves computing
StackMap attributes. Does BCEL automatically take care of recomputing and
updating StackMap attribute in the case of J2ME MIDlets ? If not, is anyone
aware of J2ME MIDlet verifier similar to JustIce for J2SE ?

Thanks,
Manish


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: J2ME bytecode modification

Posted by Jim Redman <jr...@ergotech.com>.
I have a project that removes all the floating point code from J2ME code
and replaces it with soft floating point.  I don't remember having any
particular problem with J2ME code.  I take the code before verification,
modify it, then verify it.

Since most J2ME implementations (eg J9) now come with floating point
support, I haven't spent much time on the project recently so maybe I
mis-remember.

Jim

> Hello everybody,
>
>> I am wondering if I can use BCEL to modify J2ME MIDlets since any
>> bytecode modification in J2ME would require running a J2ME verifier on
>> the modified bytecodes. My understanding is that J2ME preverification
>> involves computing
>> StackMap attributes. Does BCEL automatically take care of recomputing
>> and updating StackMap attribute in the case of J2ME MIDlets ?
>
> I´m working on that way, modifing J2ME MIDlets bytecode. I could modify
> MIDlets bytecode but when I tried to run it on any emulator or on a
> mobile device errors appeared. The problem is that the class files need
> a StackMap for the KVM classfile verification. This new attribute
> (StackMap) is defined by "KVM Specification" but not by "The Java
> Virtual Machine Specification".
>
> BCEL includes a class for managing StackMaps
> "org.apache.bcel.classfile.StackMap", then the only thing to do is
> update that attribute to its new value. I´m working around this but, so
> far, I´m not success.
>
>> If not, is anyone aware of J2ME MIDlet verifier similar to JustIce for
> J2SE?
>
> BCEL has also a verifier. I tried it but it only checks your bytecode
> and notices to you if it passes the checking.
>
>
> Thanks,
> Jose
>
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org> For additional
> commands, e-mail: <ma...@jakarta.apache.org>


-- 
Jim Redman
ErgoTech Systems, Inc.
+1 505 662 5156



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: J2ME bytecode modification

Posted by Jose Andrés Pérez <jo...@m-centric.com>.
Hello everybody,

> I am wondering if I can use BCEL to modify J2ME MIDlets since any bytecode
> modification in J2ME would require running a J2ME verifier on the modified
> bytecodes. My understanding is that J2ME preverification involves
> computing
> StackMap attributes. Does BCEL automatically take care of recomputing and
> updating StackMap attribute in the case of J2ME MIDlets ?

I´m working on that way, modifing J2ME MIDlets bytecode. I could modify
MIDlets bytecode but when I tried to run it on any emulator or on a mobile
device errors appeared. The problem is that the class files need a StackMap
for the KVM classfile verification. This new attribute (StackMap) is defined
by "KVM Specification" but not by "The Java Virtual Machine Specification".

BCEL includes a class for managing StackMaps
"org.apache.bcel.classfile.StackMap", then the only thing to do is update
that attribute to its new value. I´m working around this but, so far, I´m
not success.

> If not, is anyone aware of J2ME MIDlet verifier similar to JustIce for
J2SE?

BCEL has also a verifier. I tried it but it only checks your bytecode and
notices to you if it passes the checking.


Thanks,
Jose


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>