Monday, June 18, 2012
How is data understood through reverse engineering?
Posted by
Sunflower
at
6/18/2012 11:52:00 PM
0
comments
Labels: Application, Code, Data Restructuring, Document, Errors, Faults, Functionality, Inventory Analysis, Quality, Re-engineering, Resources, Reverse Engineering, Scenario, Software Re-engineering, Software System, Steps
![]() | Subscribe by Email |
|
What is meant by Software Reengineering Process Model?
What is Software Re-engineering?
Steps in Software re-engineering process model
Posted by
Sunflower
at
6/18/2012 03:51:00 PM
0
comments
Labels: Application, Code, Data Restructuring, Document, Errors, Faults, Functionality, Inventory Analysis, Quality, Re-engineering, Resources, Reverse Engineering, Scenario, Software Re-engineering, Software System, Steps
![]() | Subscribe by Email |
|
Sunday, June 17, 2012
Data Restructuring - An activity involved in software re-engineering process model
- Inventory analysis
- Documentation reconstruction
- Reverse engineering
- Code re- structuring
- Data re- structuring
- Forward engineering
Without a working code or an active flow of data a software system or application cannot be considered to be working. Therefore for the software systems and applications which have become outdated should be again brought up to the current acceptable software standards and data re- structuring is the one of the processes that can help in this regard.
- This step of software re- engineering process model takes into consideration the restructuring of the data without making changes to the functionality of the software system or application.
- With the re- structuring of data, the maintenance of the whole software system or application becomes so very easy.
- The need to re- structure data arises when the data bases become too obsolete to be handled directly.
- When the changes made to the data are confined only to the sub system, the data of the sub system needs to be re- structured.
- The data re- structuring becomes even easier when the data re- structuring tools are easily available.
- This step is carried out after the completion of the code re- structuring.
- Unlike the previous re- structuring step, this step calls for a full cycle of reverse engineering.
- The current structure of the data is dissected while defining the data models and the existing data models are run through a quality check or review test.
- So many of the legacy systems tend to make use of the global data structures and shared tables in order to save the memory space.
- Such shared data structures need to be converted in to objects like ADTs for restructuring.
Benefits of Data Re-structuring
- One of the benefits of restructuring the data is that it certainly improves the quality of the software program or application.
- Furthermore, it becomes easier to test and debug the software system or application along with a reduction in the efforts in the maintenance of the software and also the frustration of the developer is reduced.
- As a bonus point, the productivity is also improved.
Steps in Data Re-structuring
The re- structuring of the data involves the following steps:
- Analysis of the source code of the application.
- Redesigning of the data
- Standardization of the data record.
- Rationalization of the data name.
- Translation of the file or data base.
Drawbacks of Data Restructuring
In spite of having so much plus points, the re- structuring does have some minus points which have been listed below:
- Re- structuring does not improve the understandability
of the data driven programs.
- Re- structuring demands for heavy computations.
- Re- structuring can lead to a loss of source code
comments.
- Restructuring does not helps with the problems with poor
modularization i.e., the programs in which the components are wide spread
through out the program.
- Restructuring can lead to the loss of documentation.
Data re- structuring forms an integral part of the software re- engineering process model and therefore the above mentioned disadvantages of the data re- structuring are ignored. It is necessary that the data re- structuring is carried out after the code re- structuring since during the execution of the program, the code only handles the flow of the data. Therefore if the code itself has not been re- structured before re- structuring the data then the whole process does not makes any sense.
Posted by
Sunflower
at
6/17/2012 11:41:00 AM
0
comments
Labels: Advantages, Application, Benefits, Code, Code restructuring, Data, Data Restructuring, Drawbacks, Information, Re-engineering, re-structuring, Reverse Engineering, Software Re-engineering, Software Systems, Steps
![]() | Subscribe by Email |
|
Saturday, June 16, 2012
Reverse Engineering - an activity involved in software re-engineering process model.
- Inventory analysis
- Documentation reconstruction
- Reverse engineering
- Code re- structuring
- Data re- structuring
- Forward Engineering
What is Reverse Engineering?
- Browsers
- Cross reference generators and so on.
Levels in Reverse Engineering
Stages in Reverse Engineering Process
Activities in Reverse Engineering Process
When is Reverse Engineering Preferred?
Posted by
Sunflower
at
6/16/2012 02:48:00 PM
0
comments
Labels: activities, Activity, Analyze, Applications, Code, Design, Information, Interactive, Levels, Re-engineering, Requirements, Reverse Engineering, Software Re-engineering, Software Systems, Specifications, Stages
![]() | Subscribe by Email |
|
Tuesday, September 15, 2009
Software Reverse Engineering Techniques
Software reverse engineering is done to retrieve the source code of a program because the source code was lost, 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 or to adapt a program written for use with one microprocessor for use with another. Reverse engineering for the purpose of copying or duplicating programs may constitute a copyright violation. In some cases, the licensed use of software specifically prohibits reverse engineering.
- De compilers
These are programs which will convert object code back to high level languages such as C.
- Functional Analysis
The input and output states of a chip can be monitored using an oscilloscope, or special purpose probes such as logic state analyzers or protocol analyzers, to acquire a picture of the behavior of the chip over time or in response to input signals.
- Patents
Many patented goods are not sold with restrictive licenses, and hence a bonafide purchaser cannot usually be prevented by the patent from doing what they like with the patented product. Indeed, the patent itself may give the reverse engineer valuable information on how the patented product operates.
- Software anti-tamper technology
It is used to deter both reverse engineering and re-engineering of proprietary software and software-powered systems. In practice, two main types of reverse engineering emerge. In the first case, source code is already available for the software, but higher-level aspects of the program, perhaps poorly documented or documented but no longer valid, are discovered. In the second case, there is no source code available for the software, and any efforts towards discovering one possible source code for the software are regarded as reverse engineering.
- Analysis through observation of information exchange, most prevalent in protocol reverse engineering, which involves using bus analyzers and packet sniffers, for example, for accessing a computer bus or computer network connection and revealing the traffic data thereon. Bus or network behavior can then be analyzed to produce a stand-alone implementation that mimics that behavior.
- Disassembly using a disassembler, meaning the raw machine language of the program is read and understood in its own terms, only with the aid of machine-language mnemonics.
Posted by
Sunflower
at
9/15/2009 02:16:00 PM
0
comments
Labels: Reverse Engineering, Software, Software Reverse Engineering, Techniques
![]() | Subscribe by Email |
|
Hardware Reverse Engineering Techniques
Reverse engineering is taking apart an object to see how it works in order to duplicate or enhance the object. The practice, taken from older industries, is now frequently used on computer hardware and software.
Hardware reverse engineering involves taking apart a device to see how it works. In general, hardware reverse engineering requires a great deal of expertise and is quite expensive.
- REFAB (Reverse Engineering - Feature Based)
This tool uses a laser digitizer to scan the part, and the analysis software then analyzes the shape of the part, using features which are based on typical machining operations, to generate a computerized manufacturing description which can be displayed, used to copy the product, or produce new products using the design.
- PRINTED CIRCUIT BOARDS (PCBS)
Computer vision has been widely used to scan PCBs for quality control and inspection purposes, and based on this, there are a number of machine vision for analysing and reverse engineering PCBs.
- INTEGRATED CIRCUIT (IC) COMPONENTS
* The first step is to get through the encapsulating material into the product itself, by chemical etching or grinding.
* Once at the chip surface, each layer of components is photographed, then ground away to reveal the layer below. This process reveals the structure of the chip.
* Although these processes can reveal the structure of the chip, they do not indicate the voltages at each point. However, if the chip is undamaged, voltage contrast electron microscopy can be used to scan the chip in use, and watch the voltage level change over time.
These processes are generally referred to as "stripping" or "peeling" the chip.
Posted by
Sunflower
at
9/15/2009 02:02:00 PM
0
comments
Labels: Hardware, Hardware Reverse Engineering, Reverse Engineering, Techniques
![]() | Subscribe by Email |
|
Overview of Reverse Engineering
Reverse engineering is the attempt to recapture the top level specification by analyzing the product - I call it an "attempt", because it is not possible in practice, or even in theory, to recover everything in the original specification purely by studying the product.
Reverse engineering is difficult and time consuming, but it is getting easier all the time thanks to IT, for two reasons:
- Firstly, as engineering techniques themselves become more computerised, more of the design is due to the computer. Thus, recognisable blocks of code, or groups of circuit elements on a substrate, often occur in many different designs produced by the same computer program. These are easier to recognise and interpret than a customised product would be.
- Secondly, artificial intelligence techniques for pattern recognition, and for parsing and interpretation, have advanced to the point where these and other structures within a product can be recognized automatically.
Reverse engineering generally consists of the following stages:
1. Analysis of the product
2. Generation of an intermediate level product description
3. Human analysis of the product description to produce a specification
4. Generation of a new product using the specification.
There is thus a chain of events between the underlying design specification and any intermediate level design documents lying behind the product, through the product itself, through the reverse engineered product description, through the reverse engineered specification, and into the new product itself.
Reasons for reverse engineering:
- Interoperability.
- Lost documentation: Reverse engineering often is done because the documentation of a particular device has been lost (or was never written), and the person who built it is no longer available. Integrated circuits often seem to have been designed on obsolete, proprietary systems, which means that the only way to incorporate the functionality into new technology is to reverse-engineer the existing chip and then re-design it.
- Product analysis : To examine how a product works, what components it consists of, estimate costs, and identify potential patent infringement.
- Digital update/correction : To update the digital version (e.g. CAD model) of an object to match an "as-built" condition.
- Security auditing.
- Military or commercial espionage : Learning about an enemy's or competitor's latest research by stealing or capturing a prototype and dismantling it.
- Removal of copy protection, circumvention of access restrictions.
- Creation of unlicensed/unapproved duplicates.
- Academic/learning purposes.
- Curiosity.
- Competitive technical intelligence.
- Learning.
Posted by
Sunflower
at
9/15/2009 02:01:00 PM
0
comments
Labels: Engineering, Reasons, Reverse Engineering, Stages
![]() | Subscribe by Email |
|