Java bytecode debugging

Java bytecode debugging was bugging me for quite some time, however I’ve never done anything to really solve this problem once and for all. Around February I was desperately trying to solve some java bytecode riddle (yup, it was crackme ;p, but shhh…) and the only straightforward solution that would help with analysis was java bytecode debugger. If you query google for java bytecode debugger or java bytecode debugging, it will show two promising entries:
Continue reading →

dirtyJOE v1.6 (c472)

It is over two years since the last update of dirtyJOE. Actually this project was pretty much dead between 10.2011 and 03.2013 (17 months!) but I’ve managed to brace myself and put some new features together (finally!). Basically there is one new, big functionality called Restore Debug Info and bunch of small usability improvements. New version is available for download at, below you can find detailed changelog (with some screenshots): Continue reading →

dirtyJOE v1.5 (c359) and some statistics

New version of dirtyJOE is available for download at

What’s new:

  • Opcodes Help – embedded detailed description of all Java bytecode instructions.
  • Active Help – short description of opcode directly in Code Editor window, updated automatically on opcode selection.
  • Improved Python scripting – added decrypter for Allatori obfuscator and added possibility to re-encrypt previously decrypted strings.
  • Active Search – search feature on Constant Pool tab

Continue reading →

dirtyJOE v1.4 (c334)

Small update for dirtyJOE, it addresses a problem related to font changing, it appears only on Widnows XP systems. New version is available for download from official www You can also download it directly from this post:

dirtyJOE v1.4

New version of dirtyJOE is available for download from

Short change-log:

  • Python scripting for Utf8 objects
  • drag’n’drop support
  • ability to copy disassembly to clipboard
  • ability to change font in disassembly windows
  • update check on startup

I’ll publish short tutorial about python scripting in the next blog post (it is already available as a part of help file)

dirtyJOE – Java Overall Editor

Post moved from OpenRCE, original date: Saturday, September 18 2010

dirtyJOE – Java Overall Editor is a complex editor and viewer for compiled java binaries (.class files). Current version still have some limitations, but hopefully those will be removed within the next releases.

dirtyJOE is free for non-commercial use.

dirtyJOE is entirely written in C++, no third party libraries were used.

Main features:

  • Viewer for: constant pool, methods, fields, attributes
  • Editor for: constant pool, bytecode

You can download it from

x86 Virtualizer – Preview

Post moved from OpenRCE, original date: Friday, May 25 2007

Ok, it’s a small preview of my newest project. It was written on request for some people, but it seems that they’re not anymore interested in buying it.

What is it ?

It’s a demo application protected with my x86 Virtualizer:

  • vm_test.exe – clear executable
  • vm_test_vmed_01.exe – executable with one VM layer
  • vm_test_vmed_02.exe – executable with two VM layers


I’m already planning to publish all sources. When ? As soon as possible, I’ve to write documentation, and clean some part of code. The protection engine was written in C++, the loader in assembly.

Any comments will be greatly appreciated.

DLLPackager v1.0

Post moved from OpenRCE, original date: Sunday, May 20 2007

Another old-new tool from me. I’ve coded it 5 months ago, but I didn’t have time to publish it. Generally it is a simple tool to bundle DLL’s with executable (similar to PEBundle or MoleBox). ‘Simple’ means there is no encryption or compression. It’s coded fully in C++ (also loader). I have plans to publish full source code of DLLPackager (in about 2 weeks), because I’ve abandoned development of this project.