Monday, November 23, 2009

So here is what this blog is really about

Wow, I haven't really kept up with the whole blogging thing here. I just noticed that my last post was in March. I plan on trying to do better than that from now on.

Anyway, maybe I need to take this blog in a new direction, or in any direction really. So, here is my plan. I'm going to start blogging about my work with Eclipse more. I'm a masters student at the university of Victoria. I've been working for the past year on problems related to reverse engineering. The inspiration has really come from the fact that I worked for a while as a programmer, writing Java software. Everyone knows how much time is spent in debugging software, and just scanning over source code trying to figure out how things work. So, I got the opportunity in my research group here--the CHISEL lab--to do some work on figuring out how to make that sort of process easier.

You may have heard a little bit about the CHISEL group. It's the group that Ian Bull graduated from. We do quite a lot of work in Eclipse because it is such a nice free and open platform. Ian worked on the Zest project as part of his Phd. work. I was actually lucky enough to help him a little bit in the coding and design of that project--we are very cooperative in our group.

Anyway, long story short, I've been working on my own project in Eclipse called Diver. It stands for Dynamic Interactive Views for Reverse Engineering (I know, the last two letters are reversed--I was trying to be clever). It's a set of views that makes use of Eclipse's powerful Java Development Tools, and makes it easy to apply some reverse engineering techniques to day-to-day programming tasks. I think that Eclipse is the perfect environment to get this kind of work running in because it is built on such a good plug-in platform. It has been quite easy, in the whole scheme of things, to get my ideas integrated into the Eclipse platform, and to make use of the many powerful components that have already been implemented. For example, to do some of my Java reverse engineering, I didn't have to implement my own parsers and indexers into source code: I could just use the JDT. It's been a great way to get started.

So, here is where this blog is going to go: I'm going to start talking a bit more about my project and about how reverse engineering can be done in Eclipse in general, and about some of the challenges that I came across while trying to implement my solution. Hopefully it will be helpful to people out in the Eclipse community.


  1. Welcome to the Planet Eclipse community!

  2. Diver looks very interesting, but unfortunately I wasn't able to install it from the P2 update site.

    Both when trying to install all three features, or only the Diver feature, I got this error message:
    "Cannot complete the install because one or more required items could not be found.
    Missing requirement: 1259053557874 requires ' []' but it could not be found"

  3. This comment has been removed by a blog administrator.

  4. Hi Jorg, what platform are you running on? I'm afraid that I only have my one computer to test on, so it is difficult to make sure that it works everywhere. I don't have a problem with P2 (I just installed the latest version of Diver the other day).

  5. Hi Del, I hadn't noticed that it only runs on Windows, so I had tried it on Linux-x86. Or did you package it up in a way that it could theoretically run on Linux?

  6. Hi again, Jorg,

    I'm currently trying to figure out a way to get it to run on Linux. The problem is that there is some native C++ code, which I only have built for Windows. I need to set up a linux machine somewhere to build and test on. I'll blog about it as soon as its ready, though.

    If you want to try and see if you can get it to compile in Linux, the plug-in fragment to try is ca.uvic.chisel.javasketch.tracing.jvmti. There is a half-written linux.mak file that certainly doesn't work right now in there.

    After it compiles, though, there is some tweaking that still has to be done in a couple of other files, though. Sorry that it doesn't work out-of-the-box for you.

  7. Hi Del,

    I'm sorry but I don't have the time on my hands to dig deeper in this, even though I'd probably enjoy it :)

    I guess you had the idea already, but if you need a linux box, the easiest thing would probably be to setup a VirtualBox with Linux.