Reverse engineering software

The software area, apart from the fact that we are already part of our daily lives, whether due to the direct and direct presence in our professional, personal or educational activities, or due to the indirect presence, through the innumerable technological solutions embarked on our vehicles , electronic equipment or appliances of the so-called 'last generation', still raises great doubts in the majority of the population 'not initiated' in its secrets. The creation of a new technology does not automatically guarantee the right to your property or even the author's right. For these rights to be recognized, we must proceed to the legally available means to recognize these rights and also for the financial enjoyment of the creation.

After the established legal procedures, an object can be recognized by the person or organization that created it as not profitable enough to justify its commercial exploitation. In this case, there are some possible options to be adopted by the holder of the rights in question, for example: 1) he may leave the object rejecting any disclosure or access to it; 2) you can have the final product for general use classified as freeware which is the free distribution of its creation, thus being able to have some restrictive license for its use, distribution and modification; 3) you can arrange it in the form of shareware, which is the free distribution of the software, being able to restrict some of its functionalities and / or for use for a certain time, with the intention of provoking the user experience and creating the need for the acquisition of the integral version; or also 4) you can have the integral version of the product accompanied by its development codes, the so-called 'source codes', allowing future users to use, copy, study, modify and redistribute without any restrictions; This modality is known as 'free software'.

According to prof. Rodolfo Politano in his article for UNIEMP Innovation magazine, «Another important aspect is that protection is linked to the way the new conception materialized - and not the idea itself. Internal masking mechanisms in the algorithms guarantee a prevention against reverse engineering.

The use of reverse engineering services in the development of new applications is legally accepted when applied to software abandoned by developers, such as the Cosmo Player (software for navigation in virtual reality environment originally developed by Computer Associates). At first, the company commercialized this product in the traditional software trading bases, however, this practice did not produce sufficient profitability to justify the maintenance and commercialization effort. Under this scenario, the company decided to discontinue its production and support and set up the comprehensive software for widespread use without remuneration. Some years passed and when a group of developers was interested in acquiring the rights to that software, The original owner claimed that the documentation and sources were no longer traceable and authorized to violate the code. The Reverse Engineering process can help in the recovery of the source code that went through improvements and new developments provided by a global development consortium that served as the basis for several independently marketed products.

One of the companies that participated in the consortium for the exploitation of the tool, was the Brazilian P3D IngenierĂ­a de Software Ltda. This company that until then distributed the Cosmo Player for free with its education software, in 2007 received subsidies through the program of FINEP grant and is completing the development of a virtual reality player itself, based on the characteristics of the original software. This product will reach the market in 2009, if forecasts are confirmed.

Reverse engineering is also considered an effective tool for the security of guarantee systems of high criticality because through their techniques they can explore the code of the programs in order to determine if there is a malicious code, check if the original code of a software did not suffer alterations like insertion of hidden routines or if there is no development of codes forgotten by the designers.

Reverse engineering techniques can also be useful in disaster recovery with data. For example, a cryptographic file system can be understood and its decoding is essential to recover lost data.

In some countries the practice of reverse engineering is considered illegal and some professionals are interested in obtaining unauthorized access to software resources that are not freely offered by the holders of the commercial rights of the product. This practice is called Cracking. 

Comments