06-27-2011, 01:02 PM
Well JD-Java Decompiler and DJ Java 3.11.95(2009) with JAD Jad 1.5.8g(2001).7z is nice to see what's going on in the code.
When you just like to do some little magic - compiling the whole class file is often really painful, error prune or even not possible since there are to many errors / missing classes or whatever problems...
Before I know it better I open the *.class in IDA(enable in option/Disam/opcode byte=3) and a hexeditor.
But wow the
CCK (Class Construction Kit)
was a real revelation to me and exactly what I was looking for !!!
Beside modifying the bytecode (That JBE also does) you can also delete or add lines and when doing so CCK also takes care about updating jmp and goto references.
Installation took me some time because I just downloaded BCEL.jar and tried to figure out how to run it. Well DL
http://bcel.sourceforge.net/downloads/BCEL.jar and
http://bcel.sourceforge.net/downloads/cck.jar
and then run it with
javaw.exe -jar cck.jar
Another nasty thing - if there is just cck.jar (and no BCEL.jar) CCK will hang at it's splash screen and nothing happens. (well when you use java.exe instead of javaw.exe I'll see the error. Na anyway...)
Btw. if you like associate *.jar with javaw.exe like this. Well you can do it the clicky-clicky-way or in like this <winkey+r>"cmd"<Enter>
...and for console apps is that
So now you can run a *.jar like this:
jbet3-R1.jar -P "%CD%" disassemble CpDouble >MyClass.dmp
jbet3-R1.jar assemble %(include MyClass.dmp)
Or even better
but also more cryptic.
Well for better understanding try out these commands
->for %i in (java.exe) do @echo. %i
java.exe
->set path
...GLOBAL;c:\Programme\Java\jdk1.6.0_26\bin;C:\Progr...
->for /?
...
%~$P:i - searches the directories listed in the P environment variable
and expands %i to the fully qualified name of the first one found.
If the environment variable name is not defined or the file is not
found by the search, then this modifier expands to the empty string.
...
->for %i in (java.exe) do @echo %~$PATH:i
Note that the blue part is there just to be able to use '%~$PATH:i'. <-Not very nice but the way how it's done in windows
If now everything got too clear here's another brain teaser © by M$ :
->for %i in ("%path:;=" "%") do @echo %i
...
..GLOBAL"
"c:\Programme\Java\jdk1.6.0_26\bin"
"C:\Progr...
...
So but now enough of:
`Hiking in the mystics of da windows batch 'BowGraming' language.ยด
So and after about half a day of 'research' I'm finally able to patch away that little Nag from SABRE BinDiff 2.0.23
[attachment=128]
When you just like to do some little magic - compiling the whole class file is often really painful, error prune or even not possible since there are to many errors / missing classes or whatever problems...
Before I know it better I open the *.class in IDA(enable in option/Disam/opcode byte=3) and a hexeditor.
But wow the
CCK (Class Construction Kit)
was a real revelation to me and exactly what I was looking for !!!
Beside modifying the bytecode (That JBE also does) you can also delete or add lines and when doing so CCK also takes care about updating jmp and goto references.
Installation took me some time because I just downloaded BCEL.jar and tried to figure out how to run it. Well DL
http://bcel.sourceforge.net/downloads/BCEL.jar and
http://bcel.sourceforge.net/downloads/cck.jar
and then run it with
javaw.exe -jar cck.jar
Another nasty thing - if there is just cck.jar (and no BCEL.jar) CCK will hang at it's splash screen and nothing happens. (well when you use java.exe instead of javaw.exe I'll see the error. Na anyway...)
Btw. if you like associate *.jar with javaw.exe like this. Well you can do it the clicky-clicky-way or in like this <winkey+r>"cmd"<Enter>
Quote:C:\MyDownloadPorns&XXXMovies>prompt -$G
->assoc .jar
.jar=WinRAR <-wuups
->assoc .jar=jar_file
->ftype jar_file=%ProgramFiles%\Java\jdk1.6.0_26\jre\bin\javaw.exe -jar "%1"
...and for console apps is that
Quote:ftype jar_file=%ProgramFiles%\Java\jdk1.6.0_26\jre\bin\java.exe -jar "%1" %*
So now you can run a *.jar like this:
jbet3-R1.jar -P "%CD%" disassemble CpDouble >MyClass.dmp
jbet3-R1.jar assemble %(include MyClass.dmp)
Or even better
Quote:for %i in (java.exe) do ftype jar_file=%~$PATH:i -jar "%1" %*hehe shorter, more universal and generic.
but also more cryptic.
Well for better understanding try out these commands
->for %i in (java.exe) do @echo. %i
java.exe
->set path
...GLOBAL;c:\Programme\Java\jdk1.6.0_26\bin;C:\Progr...
->for /?
...
%~$P:i - searches the directories listed in the P environment variable
and expands %i to the fully qualified name of the first one found.
If the environment variable name is not defined or the file is not
found by the search, then this modifier expands to the empty string.
...
->for %i in (java.exe) do @echo %~$PATH:i
Note that the blue part is there just to be able to use '%~$PATH:i'. <-Not very nice but the way how it's done in windows
If now everything got too clear here's another brain teaser © by M$ :
->for %i in ("%path:;=" "%") do @echo %i
...
..GLOBAL"
"c:\Programme\Java\jdk1.6.0_26\bin"
"C:\Progr...
...
So but now enough of:
`Hiking in the mystics of da windows batch 'BowGraming' language.ยด
So and after about half a day of 'research' I'm finally able to patch away that little Nag from SABRE BinDiff 2.0.23
[attachment=128]