Call for a new name for cod decompiler

January 30, 2007

I have googled and suddenly found that coddec name is already used by a number of different projects so we definitely need to find a different name for our work. All suggestions are welcome.


How it looks like …

January 30, 2007

Just an example of our work:

// Decompiled by coddec #################################
// Information ###########################################

package net.rim.device.api.io.http;

abstract public class AuthScheme extends java.lang.Object

{
protected java.util.Hashtable _parms;

public void setParameter (net.rim.device.api.io.http.AuthScheme param0, java.lang.String param1, java.lang.String param2)

{
enter_narrow
aload_0_getfield
aload_1
aload_2
invokevirtual java.util.Hashtable.put( java.util.Hashtable, java.lang.Object, java.lang.Object )
pop
return
}

…….

}

Here is the same class and method processed by “built-in” disassembler:

Code Section
routines 54036
net.rim.device.api.io.http.AuthScheme.setParameter( net.rim.device.api.io.http.AuthScheme, java.lang.String, java.lang.String ) 0
returns: 31486
prototype: 34014
codesize= 13
(11)
IsPublic
attributes= 1
setParameter 10072
numstackmaps=0
locals=3
parms=3
stack=3
nlps= 63
net.rim.device.api.io.http.AuthScheme.setParameter( net.rim.device.api.io.http.AuthScheme, java.lang.String, java.lang.String )
enter_narrow 221
aload_0_getfield 103
.field_ 0
aload_1 64
aload_2 65
invokevirtual 1
java.util.Hashtable.put( java.util.Hashtable, java.lang.Object, java.lang.Object )-1
parmcount= 3
pop 205
return 31


Progress update

January 25, 2007

Just a brief update of our progress. The project has got a working name “coddec” which is from “cod decompiler”. So far coddec does the following things:

– Restores a full folders structure similar to the original jar file

– Decompiles classes, fields, methods headers. There is an issue with fields having default value. We actually couldn’t map a default value to a corresponded field. At the moment we have no solution for this problem.

– Methods bodies are disassembled only, not decompiled. The reason for that is that RIM uses own opcodes which are totally different from the standard jvm opcodes. But a good news is that we know how to resolve this issue. The only inconvenience we would need an additional time to write a conversation module.

Cheers


It is over now

January 16, 2007

Hi everybody,

I have been apologising so many times for delays but this time is the last time. Because yes, we did it! COD format is documented until the ultimate byte.

We are working on a decompiler so we expect that a first proof of concept would be ready in two-three weeks.

Cheers,

P.S. Although it is a bit late, but anyway Marry Christmas, Happy New Year and stuff for everybody.