17 Sep
Posted by jj as Development
There is an ongoing information war raging in the software world. Despite free software developers’ best efforts, new proprietary software continues to proliferate. Improved techniques must be developed to reverse engineer efficiently closed data formats so that free, interoperable solutions can be deployed under Linux.
Software reverse engineering occurs on various levels. It may be necessary to study a piece of poorly written, poorly commented code developed in a high-level language such as C++ and understand what the original program was supposed to accomplish. It may also be necessary to disassemble a program that has been compiled into machine language and express it as a higher-level language. In doing this, the underlying algorithms can eventually be expressed as higher-level concepts in a human language. After obtaining an algorithmic description via reverse engineering, the algorithm can be reimplemented for any language on any computing platform.
Scope
This paper discusses the technical issues and challenges surrounding software reverse engineering. This topic has always been the subject of much legal and ethical controversy, particularly with respect to such intellectual property ideas such as patents, trade secrets, and software ownership. However, that discussion is outside the scope of this paper.
Motivation
The Linux operating system, as well as free and open source software in general, has made extraordinary strides in the computer world in the past decade. Once confined to the back office server, Linux has become a more viable option for desktop computing. However, in order to create a desktop computing platform (and in some respects, a server) that is acceptable to much of the world, the computer must interoperate with existing computers and the dominant software that runs on them.
This discrepancy has traditionally been a substantial problem in the multimedia arena. Many popular multimedia files available on the internet are encoded with proprietary software algorithms that commercial companies do not share. Thus, it often becomes necessary to reverse engineer the algorithms in order to use them on an open source Linux desktop.
Download pdf Breaking Eggs And Making Omelettes: Intelligence Gathering For Open Source Software Development
Related Searches: free software developers, software reverse engineering, high level language, interoperable solutions, open source software development
RSS feed for comments on this post · TrackBack URI
Leave a reply