Utilizing Reverse Engineering in Tracking Software to diagnose its weaknesses
Rana Jumaa Surayh Al-Janabi, Hawraa Adil Nori · Journal of Al-Qadisiyah for Computer Science and Mathematics · 2009
In this research, Video Cutter Software was analyzed and that software uses a well known protection method called User Name and Registration Number. This software uses kind of complicated key generating algorithm. The analyzer hits upon the protection routine of interested software and adds suitable code to them. In other words, he discovers where in memory the entering data is stored and then to find out what is done with it. In this research, a merge technique was adopted between code injection and key generation i.e. (code is added to the execution file) in order to make the software itself browse message that contains registration number and this is in turn would consume less time than expected in analyzing (for key generation algorithm). Also, this research discusses how to support software protection by using anti-reverse engineering techniques to prevent crackers from license code stealing. ةصلاخلا ثذبنا اذ ف , فزعي تاد بهسأ ودخخس يذنأ دفنا ثافهي عطقح جيازب مهذح ىح ( رزنا تهك ودخخسنا ىسا ) . اذ ةدقعي اي اع حاخفي دنح تيسرإخ ودخخس جيازبنا . جيازبهن عزفنا تاذنا جيازب فشخكا مهذنا سئزنا تبساي ةزفش تفاضاب واق ىن . تهخدنا ثاابنا اكي فشخكا مهذنا ا زخا ىعب ( رزنا تهك ودخخسنا ىسا ) آهع جح خنا ثاهعنا ائ ةزكاذنا ف . اذ ف ثذبنا , جيدخخسا خحافنا دنئ ةزفشنا قد تقزط ب جيدنا تقح يا ( يذفخنا فهنا ىنا ةزفش تفاضا ىح ) تناسر ضزع جيازبنا معجن مهذخنا ف عقخنا ي مقا جق كهخس فس ردب اذ ب تصاخنا رزنا تهك ىهع يخذح ( حاخفنا دنح تيسرإخن ) . اضا , اذ صخزخنا حاخفي تقزس ي قزخخنا عن تسكعنا تسدنا تئاقي ثاقح وادخخسا للاخ ي جيازبنا تاد ششعخن قزط شقا ثذبنا . Introduction Reverse engineering is the art that taking apart an object to see how it works in order to duplicate or enhance the object. This practice is taken from older industries but now, it is frequently used on computer hardware and software.[1] Hardware reverse engineering involves taking apart a device to see how it works. For example, if a processor manufacturer wants to see how a competitor's processor works, they can purchase a competitor's processor, disassemble it, and then make a processor similar to it. In general, hardware reverse engineering requires a great deal of expertise and is quite expensive.[1] Software reverse engineering is the process of understanding the intricacies of designer's program or even commercial software at a lower level than the compiler. It involves reversing a program's machine code (the string of 0s and 1s that are sent to the logic processor) back into the source code that it was written in, using programming language statements. Software reverse engineering is very important since it can be used to retrieve the source code of lost projects, to study how the program performs certain operations, to improve the performance of a program, to fix a bug (correct an error in the program when the source code is not available), to identify malicious content in a program such as a virus , to adapt a program written for use with one microprocessor for use with another, or to try to break the protection of software to determine weaknesses in that software in order to reinforce its protection.[1,13] Software Revere engineering theories may be used to inject code in software or build a key generator. By code injection the breaker can insert code into software to change the course of execution, while key generator is a program written for specific software, so the