Pixel-based Reverse Engineering

With rare exceptions, source code is never released for proprietry software applications. This is primarily in an attempt to prevent other developers from cloning the application (and its functionality), as well as to protect the security of the application (security through obscurity).

The legitimacy of these (and other) reasons is besides the point. The fact remains that in order to implement additional functionality (e.g. add a new shortcut button), extensive research must be performed to understand the application’s inner workings. Additionally, the new functionality needs to be implemented such that it does not affect existing functionality.

What all applications have in common however, is that they all rely on existing APIs to display themselves to the user. Using this commonality, two geeks have created and demonstrated what they refer to as a pixel-based reverse engineering package, Prefab.

After interpreting the display, Prefab can identify the various window components as well as interact with them. Logically, this enables a developer to create a layer, between the propriety application and the final pixel display, which can be used for all interface alterations and additions.

Although the demonstrations do seem to work fine, I’d be interested to see how badly Prefab logic is affected when a creative / unique themes are applied to the user interface. It goes without saying that this technique can only be used for additions / alterations to an application, and not to retrieve the source code for the targeted application.