Jan 23

I wrote this command line tool to do simple table comparisons between two PostgreSQL databases. Web based database applications generally, from time to time, get schema changes. If your application doesn’t use an abstraction layer than automates such schema changes, then a tool such as this can come in handy. A similar web-based and much more advanced tool exists called pgdiff. I needed a command line tool that operated only on tables that’s why I wrote this. You can download it here if you’re interested.

Dec 9

This release adds support to extract sounds files from theme files. The sound files appear to be encoded in the VAG audio format. Some details about this format can be found here.

The previous release, 0.10, fixed an issue with padding in GIM files. Some icons, whose width were not a multiple of 4, were being extracted “skewed” due to the fact that they were being read incorrectly. Thanks to FluBBa for pointing this out.

Dec 6

This is basically a bug fix release. Under Windows, dragging and dropping theme files on the executable now extracts them correctly (thanks to Matt Endersby for reporting the issue).

In addition, I changed the default extraction path to include the theme filename so that multiple theme files can be dragged and dropped from the same directory and each one will be extracted into its own directory.

Developers using this program: Please note the change of the default extraction path.

Download Page

Dec 4

As part of the hacking contest I am participating in, level 39 involves IP address spoofing. It requires a UDP request to be sent to a particular server but the request should appear, to this server, to have come from a specific IP provided by them. Crafting the actual packet is quite trivial when you have tools like Scapy at your disposal, however, ensuring the crafted packet actually reaches its destination is far from trivial.

IP Header

-----------------------------------------------------

| Version |  IHL  |  TOS  |      Total length       |

-----------------------------------------------------

|     Identification      | Flags | Fragment offset |

-----------------------------------------------------

| TTL     |   Protocol    |     Header checksum     |

-----------------------------------------------------

|    ---->       Source IP address       <----      |

-----------------------------------------------------

|              Destination IP address               |

-----------------------------------------------------

|               Options and padding                 |

-----------------------------------------------------

The “problem” (it’s actually a good thing) being that most ISPs these days employ egress filtering on their border routers. The egress filter is a check on outbound traffic. The filter looks at the source IP address in the IP header to check that the packet is coming from within its own network. If the source IP doesn’t belong to its network, the packet is dropped.

For now, the only alternative (legal) seems to be to try to somehow get access to an ISP that doesn’t egress filter its traffic and send the packet from there.

Dec 4

Fixed a bug reported by h9z3zzj02. The name of the XML file being generated had the wrong prefix prepended to it.

It looks like many people have found the extractor to be useful. As of now, the web server has logged a total of 3.5G of downloads since I released it. It has been linked from many sites, two of which are:

PS3-Themes.com
PS3 Theme Extractor Tutorial

It is also being used by other programs as an external app for extracting p3t files.

PS3 Theme Creator
Playstation 3 Theme Builder

Nov 29

I’ve been taking part in very addictive hacking “contest” over at hax.tor.hu. I’ve managed to reach level 35 and am currently no.5 in the Top Ten list. My handle on it is codelogic. Highly recommended for those who enjoy puzzle solving and hacking.

Nov 16

I reverse engineered the PS3 theme file format (p3t). I managed to write an extractor for it. It is a “compiled” XML, i.e. an XML file converted to binary format using headers, offsets, etc. The background images in the P3T files are stored as JPEGs whereas the icons are stored in Sony’s GIM format, which seems to be a format optimized for texture loading. Since it wasn’t too complicated I wrote a parser in the extractor to convert GIMs to PNGs.

Download Page

Jun 3

A few days back, I joined Team XBMC. I’ll be helping them with porting XBMC to Linux using OpenGL as the base graphics API. As an avid XBMC user myself, I’m really thrilled to be part of the team that makes it happen. My handle on the team is d4rk.

XBMC Linux Screenshot