Detecting serialization scheme used in software applications
First Claim
1. A computer-implemented method, comprising:
- receiving, by a computing system, a code of an application, the code being in an intermediate format, the intermediate format being intermediate to a source format and an executable format of the code;
translating, by the computer system, the code from the intermediate format to the pseudo-intermediate format;
comparing, by the computer system, one or more portions of the code in the pseudo-intermediate format with one or more application programming interface (API) associated with serialization of a given object into a corresponding data stream;
identifying, by the computing system, a particular portion of the code from the one or more portions of the code, the particular portion of the code including a reference to at least one of the one or more API, wherein the particular portion of the code includes the code for serializing an instance of the given object into its corresponding data stream, the serializing performed using a target serialization scheme;
determining, by the computer system, if the particular portion of the code matches with one of multiple serialization scheme templates, the serialization scheme templates corresponding to distinct serialization schemes; and
responsive to a determination that the portion of the code matches with a serialization scheme template of the serialization scheme templates, identifying, by the computer system, a serialization scheme corresponding to the serialization scheme template as the target serialization scheme used by the application.
4 Assignments
0 Petitions
Accused Products
Abstract
Technology is disclosed for determining a serialization scheme used in serializing a software object by an application (“the technology”). A source application can serialize the object using multiple serialization schemes. In order for another application to deserialize the object serialized by the source application, the application may have to know the serialization scheme used in serializing the object. The technology can analyze an intermediate code, e.g., bytecode, of the source application to determine the serialization scheme used by the source application. The technology compares a portion of the code of the source application that serializes the objects with multiple serialization scheme templates having code for known serialization schemes and determines the serialization scheme used by the source application based on a matching serialization scheme template. After the serialization scheme is identified, the application can reconstruct the object from the serialized object using the identified serialization scheme.
-
Citations
22 Claims
-
1. A computer-implemented method, comprising:
-
receiving, by a computing system, a code of an application, the code being in an intermediate format, the intermediate format being intermediate to a source format and an executable format of the code; translating, by the computer system, the code from the intermediate format to the pseudo-intermediate format; comparing, by the computer system, one or more portions of the code in the pseudo-intermediate format with one or more application programming interface (API) associated with serialization of a given object into a corresponding data stream; identifying, by the computing system, a particular portion of the code from the one or more portions of the code, the particular portion of the code including a reference to at least one of the one or more API, wherein the particular portion of the code includes the code for serializing an instance of the given object into its corresponding data stream, the serializing performed using a target serialization scheme; determining, by the computer system, if the particular portion of the code matches with one of multiple serialization scheme templates, the serialization scheme templates corresponding to distinct serialization schemes; and responsive to a determination that the portion of the code matches with a serialization scheme template of the serialization scheme templates, identifying, by the computer system, a serialization scheme corresponding to the serialization scheme template as the target serialization scheme used by the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method, comprising:
-
receiving, by a computing system, a bytecode of a graphical user interface (GUI) based application, the application having a plurality of user interface (UI) elements; translating, by the computing system, the bytecode of the application into a pseudo-bytecode; comparing, by the computer system, one or more portions of the code in the pseudo-bytecode with serialization of a given instance of a given UI element into a corresponding data stream; identifying, by the computing system, a particular portion of the bytecode from the one or more portions of the bytecode, that particular portion of the bytecode including a reference to at least one of the one or more API, wherein the particular portion of the bytecode includes the code for serializing an instance of a UI element of the UI elements into its corresponding data stream, the serializing performed using a target serialization scheme; determining, by the computer system, if the particular portion of the bytecode matches with a serialization scheme corresponding to a serialization scheme template; and responsive to a determination that the particular portion of the bytecode matches with the serialization scheme template, identifying, by the computer system, the serialization scheme corresponding to the serialization scheme template as the target serialization scheme used by the application. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. An apparatus, comprising:
-
a processor; a code analyzing module that works in cooperation with the processor to identify a portion of a code of an application representing the code for serializing an instance of an object into a data stream, the identification of the portion of the code being performed by converting the code into a pseudo-intermediate format and comparing one or more portions of the code in the pseudo-intermediate format and comparing one or more portions of the code in the pseudo-intermediate format with one or more application programming interface (API) associated with serialization of a given object into a corresponding data stream, the serializing performed using a target serialization scheme, wherein the portion of the code being identified includes a reference to at least one of the one or more API; a serialization scheme lookup module that works in cooperation with the processor to find a serialization scheme template from multiple serialization scheme templates that matches with the portion of the code, the serialization scheme templates including sets of code corresponding to distinct serialization schemes; and a serialization scheme identifying module that works in cooperation with the processor to identifying a serialization scheme corresponding to the serialization scheme template as the target serialization scheme used by the application. - View Dependent Claims (20, 21, 22)
-
Specification