An adversary discovers the structure, function, and composition of an object, resource, or system by using a variety of analysis techniques to effectively determine how the analyzed entity was constructed or operates. The goal of reverse engineering is often to duplicate the function, or a part of the function, of an object in order to duplicate or back engineer some aspect of its functioning. Reverse engineering techniques can be applied to mechanical objects, electronic devices, or software, although the methodology and techniques involved in each type of analysis differ widely.
|
|
| ID | CAPEC-188 |
| Latest Sync Date | 11/05/25 15:15:38 |
| Original ID | 188 |
| Abstraction | Meta |
| Status | Stable |
| Alternate Terms | |
| Likelihood Of Attack | Low |
| Typical Severity | Low |
| Related Attack Patterns | |
| Execution Flow | |
| Prerequisites | ::Access to targeted system, resources, and information.:: |
| Skills Required | ::SKILL:Understanding of low level programming languages or technologies can be very helpful. For example, when reverse engineering a binary file, an understanding of assembly languages can help to determine the purpose and inner-workings of the code. Another example is reverse engineering an application that relies on networking. Here, an understanding networking protocols can provide insight into application details.:LEVEL:High:: |
| Resources Required | ::The technical resources necessary to engage in reverse engineering differ in accordance with the type of object, resource, or system being analyzed.:: |
| Indicators | |
| Consequences | |
| Mitigations | ::Employ code obfuscation techniques to prevent the adversary from reverse engineering the targeted entity.:: |
| Example Instances | ::When adversaries are reverse engineering software, methodologies fall into two broad categories, 'white box' and 'black box.' White box techniques involve methods which can be applied to a piece of software when an executable or some other compiled object can be directly subjected to analysis, revealing at least a portion of its machine instructions that can be observed upon execution. 'Black Box' methods involve interacting with the software indirectly, in the absence of the ability to measure, instrument, or analyze an executable object directly. Such analysis typically involves interacting with the software at the boundaries of where the software interfaces with a larger execution environment, such as input-output vectors, libraries, or APIs.:: |
| Related Weaknesses | ::1278:: |
| Taxonomy Mappings | |
| Notes | |