2007-11-13 15:00:12
Simple BitTorrent Fuzzer
I wrote a simple BitTorrent client protocol fuzzer for a project in my
CS389 class. Right now it doesn't do too much beyond the bare minimum and it is
pretty retarded with regard to knowledge of the protocol but it does its job.
Written in the Sulley fuzzing framework, code is here.
2007-07-11 10:49:48
Update on genipc
Genipc work has been moving along well, and is reaching a state where it can
"do" things, at least on the server side. So far, I've gotten the server side
to deserialize basic ipc commands, like main_hello, main_quit, correctly, and
to call the correct command handler. I've also stripped out the clientlib in
my tree for testing purposes and implemented a bit of the new request api,
and have been using that to test the codepaths through the server.
Things that still need to be done:
* Right now it can only handle deserializing the more basic types like int, uint, string, so I still need to handle the more complex cases like lists of ints, dicts, etc.
* Implement property requests, right now it only handles methods, not property callbacks and the like. This shouldn't take too long, the code for generating it is almost finished, but I don't know yet how hard it will be to integrate it.
* The server code needs to be converted over to using the new API for registering IPC commands(shouldn't take too long, probably longer for requests).
* The clientlib needs to be converted to implement the new request API.
Also, there are a couple of implementation details that I think may need fixing. Right now, all of the definitions for methods, requests, etc. are all defined in the generated xmmsclient.h This means that everything thats generated needs to include it, which may be a problem, considering that its supposed to be for the client side. I will probably be spilling it up into something like the current xmmsc_idnums.h and a seperate xmmsclient.h that just defines the public interface. Also, the genipc.py script is getting a bit large and unweildy, I want to split it up into a couple of modules and clean it up to make it easier to work with. And eventually, I will need to integrate it into waf(the generating part). I am going to write a GENIPC_README file in my tree(and on the wiki) soon that will explain how all the generated files fit together and expand a bit more on the implementation details.
Things that still need to be done:
* Right now it can only handle deserializing the more basic types like int, uint, string, so I still need to handle the more complex cases like lists of ints, dicts, etc.
* Implement property requests, right now it only handles methods, not property callbacks and the like. This shouldn't take too long, the code for generating it is almost finished, but I don't know yet how hard it will be to integrate it.
* The server code needs to be converted over to using the new API for registering IPC commands(shouldn't take too long, probably longer for requests).
* The clientlib needs to be converted to implement the new request API.
Also, there are a couple of implementation details that I think may need fixing. Right now, all of the definitions for methods, requests, etc. are all defined in the generated xmmsclient.h This means that everything thats generated needs to include it, which may be a problem, considering that its supposed to be for the client side. I will probably be spilling it up into something like the current xmmsc_idnums.h and a seperate xmmsclient.h that just defines the public interface. Also, the genipc.py script is getting a bit large and unweildy, I want to split it up into a couple of modules and clean it up to make it easier to work with. And eventually, I will need to integrate it into waf(the generating part). I am going to write a GENIPC_README file in my tree(and on the wiki) soon that will explain how all the generated files fit together and expand a bit more on the implementation details.
2007-07-01 00:56:45
git repos and DNS changes
Today I changed the DNS server for this site(thisnukes4u.net) to freedns(afraid.org), because 1and1 has been
having problems lately. I've also imported a bunch of git repositories for some
of my old and new projects, you can see them on gitweb. Anyways, thats enough for now, I
need to do some more electronics work and work on my SoC project a bit.
2007-06-27 05:31:20
Quick Update on SoC Progress
I just wanted to make a quick update on my progress with genipc. So far, I've
been able to generate header files that describe most all of the client side
and a good portion of the server side, as well as written some code that
supports the client side(sending requests). The next step(what I am currently
working on) is to get the rest of the server side headers done and work on
integrating them into the existing setup there. The first step is to allow a
cleaner way of registering IPC commands through a structure/function pointer
interface. Once I've got that going, the next step is to replace the code
currently in ipc.c that is doing all the handling and delegation of ipc
messages with a generated equivalent that can interface with the previously
mentioned struct/func ptr setup. I'll update again in the next couple of days
on how its going and what exactly I've done/any changes in the plan.
2007-05-29 14:38:22
Summer of Code begins
Today I'm starting work on my SoC project, which is autogenerated IPC for
xmms2. This week I'll mostly be setting up my environment, finalizing my
design, and dredging a bit further into the parts of the xmms2 codebase that
I've been working on. I'll be updating this blog at least once a week on my
progress, but I hope that I will be doing enough interesting things to update
at least once every day or two. Oh yeah, more info on my project is here.