Abstract: Embodiments of the present invention relate to traversal of hierarchical logic attribute array of an OS. An embodiment of the present disclosure refers to a method of traversing hierarchical logic attribute array of an OS comprising providing a structural framework of the hierarchical logic attribute array, reading elements of the hierarchical logic attribute array to provide indexing information, storing the indexing information along with a corresponding reference in a data storage array and creating an index map of the structural framework with the stored indexing information.
FORM-2
THE PATENTS ACT, 1970
(39 OF 1970)
AND
THE PATENTS RULES, 2003
(As Amended)
COMPLETE SPECIFICATION
(See section 10; rule 13)
"TRAVERSAL OF HIERARCHICAL LOGIC ATTRIBUTE ARRAY OF AN
OPERATING SYSTEM (OS)"
HCL TecliHoiogies Ltd., a coiporation organized and existing under the laws of India, of No. 8, MTH Road, Ambattur Industiial Estate, Chennai - 58, India.
The following specification particularly describes the nature of this invention and the manner in which it is to be performed;
TRAVERSAL OF HIERARCHICAL LOGIC ATTRIBUTE ARRAY OF AN OPERATING SYSTEM (OS)
Field of Invention: -
The present disclosure relates to traversal of hierarchical logic attribute array of an Operating System (OS) and more specifically, but not limited to traversal of registry hives in the Operating System.
Background:-
Registry keys act as a backend interface to access required data within a network system. During software installation process, registry keys related to the specific software are automatically installed In the system to ensure proper functioning of the software. Improper or corrupt software Installations/removal, malware infections may adversely impact the registry thereby rendering the system to become unstable. Therefore, registry hive files containing the registry keys are traversed to identify corrupt registry elements.
With the growth and increase in usage of Windows OS in cellular phones and embedded devices, the need for traversal of the complete registry has also increased. However, conventional procedures of scanning the registry hive files using existing Windows Application Programming Interfaces (APIs) are cost and time intensive. These procedures degrade the performance of the system and may also become a bottleneck in the optimal functioning of these devices or infrastructure, thereby consuming substantial resources of the system infrastructure.
Summary: -
Embodiments of the present invention relate to traversal of hierarchical logic attribute array of an OS. An embodiment of the present disclosure refers to a method of traversing hierarchical logic attribute array of an OS comprising providing a structural framework of the hierarchical logic attribute array, reading elements of the hierarchical logic attribute array to provide indexing information, storing the indexing information along with a corresponding reference in
a data storage array and creating an index map of the structural framework with the stored indexing information.
According to an embodiment of the present disclosure, traversing hierarchical logic attribute array of an OS may further comprise accessing directly a specified element from the Index map.
According to another embodiment of the present disclosure, reading elements of the hierarchical logical attribute array may further comprise indexing elements of the array through hash tables and B-tree tables.
According to yet another embodiment of the present disclosure, the hierarchical logic attribute array is registry hives file. The registry hives file comprises elements such as registry keys, subkeys and values.
Another embodiment of the present disclosure illustrates a system for scanning traversing hierarchical logic attribute array of an Operating System (OS) comprising an attribute processing unit configured to process and provide a structural framework of the hierarchical logic attribute array, an indexing unit coupled to the attribute processing unit configured to read elements of the hierarchical logic attribute array to provide indexing information and create an index map of the structural framework with the stored indexing information; a data storage array coupled to the indexing unit configured to store the indexing information along with a corresponding reference and an attribute interface coupled to the indexing unit configured to directly access a specified element from the index map.
According to an embodiment of the present disclosure, the indexing unit may be configured to read elements of the hierarchical logic attribute array to provide indexing information through hash tables and B-tree tables. The hierarchical logic attribute array may be a registry hives file where elements of the hierarchical logic attribute array are such as registry keys, subkeys and values. Additionally, the data storage array may be a cache to ensure faster access.
An embodiment of the present disclosure further illustrates a method of scanning registry hives array of an Operating System (OS) comprising providing a structural framework of the hierarchical logic attribute array, reading elements of the hierarchical logic attribute array to provide indexing information, storing the indexing information along with a corresponding reference in a data storage array, creating a first index map of the structural framework with the indexing information, creating a second index map of the structural framework through appropriate module of the OS and comparing the first index map and the second index map to identify hidden elements of the hierarchical logic attribute array.
Brief Description of Drawings: -
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit{s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
Figure 1 illustrates a system of traversing hierarchical logic attribute array of an Operating
System (OS) according to an embodiment of the present disclosure.
Figure 2 illustrates hierarchical structure of registry keys.
Figure 3 illustrates relationship between used data structures in a framework according
to an embodiment of the present disclosure.
Figure 4 illustrates a method of traversing hierarchical logic attribute array of an OS
according to an embodiment of the present disclosure.
Figure 5 illustrates a method of scanning registry hives array of an OS according to an
embodiment of the present disclosure.
Detailed Description: -
The following discussion provides a brief, general description of a suitable computing environment in which various embodiments of the present disclosure can be implemented. The aspects and embodiments are described in the genera! context of computer executable mechanisms such as routines executed by a general purpose computer e.g. a server or personal computer. The embodiments described herein can be practiced with other system configurations, including Internet appliances, hand held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, mini computers, mainframe computers and the like. The embodiments can be embodied in a special purpose computer or data processor that is specifically programmed configured or constructed to perform one or more of the computer executable mechanisms explained in detail below.
Exemplary embodiments now will be described with reference to the accompanying drawings. The disclosure may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey its scope to those skilled in the art. The terminology used in the detailed description of the particular exemplary embodiments illustrated in the accompanying drawings is not intended to be limiting.
Figure 1 illustrates a system for traversing hierarchical logic attribute array according to an embodiment of the present disclosure. The system comprises an attribute processing unit 101, an indexing unit 102 coupled to the attribute processing unit 101 and a data storage array 103 coupled to the indexing unit 102. The system may further comprise an attribute interface 104 coupled to the indexing unit 102. The attribute processing unit 101 receives the hierarchical logic attribute array of an OS and is configured to process and provide a structural framework of the hierarchical logic attribute array. The indexing unit 102 is configured to read elements of the hierarchical logic attribute array to provide indexing information and create an index map
of the structural framework with the stored indexing information. The indexing information along with the corresponding reference is stored in the data storage array 103.
According to an embodiment of the present disclosure, the indexing unit 102 is configured to read elements of the hierarchical logic attribute array to provide indexing information through hash tables and B-tree tables. According to an embodiment of the disclosure, the hierarchical logic attribute array may be registry hives file where elements of the hierarchical logic attribute array are such as registry keys, subkeys and values. Additionally, according to an embodiment of the present disclosure, the data storage array 103 may be a cache to ensure faster access.
The attribute interface 104 is configured to directly access a specified element from the index map as created by the indexing unit 102. Indexing elements of the hierarchical logic attribute array makes it easier to access a specified element than name based accessing of a specified element. The consequent illustration of the present disclosure assumes that the hierarchical logic attribute array is a registry hives' file.
Figure 2 illustrates a general hierarchical structure of registry keys. The registry hives file of an OS contains data that is critical for the operation of the OS and the data is structured in a tree format. Each node in the tree structure is called a key where each key may comprise elements such as subkeys and data entries called values. The information stored in such a hierarchy, an index map Is created which is ensures efficient registry key search. Figure 3 illustrates relationship between various data structures in framework as welt as relationship between used data structures in framework according to embodiments of the present disclosure. When a key is released, an entry of registry key structure 305 is inserted in the open key map 301 against the handle 304 of the released registry key. This map handle is the map key 302 and the registry key structure instance is a map value 303. An instance of the embodiment is when the HKLM\System registry key is released, the open key map contains the entries such as HKLM registry key and system registry key.
Registry key also contains the subkey list array 306. The subkey list array is populated when the registry key is open. The subkeys of system registry key can be found in the subkey list array residing in the registry key structure of the open registry key. Embodiments of the present disclosure are extremely advantageous when there is a need to traverse ail the subkeys for a particular registry key 305. As disclosed previously, the attribute interface 104 is configured to directly access a specified element of the hierarchical logic attribute array. This is achieved when a loop is initiated with the help of the subkey count to open the subkey by accessing nth element of the subkey list array 306 from its index. This is faster than the conventional mechanism of name based traversing. For instance we assume that a registry key has four subkeys, then for the first subkey it will compare name with one subkey, for the second subkey it will compare name with two subkeys, for the third subkey it will compare name with three subkeys and then for the fourth subkey it will compare the name with four subkeys. This makes it four string comparisons, which makes name traversing slow and less efficient.
Embodiments of the method of traversing and scanning hierarchical logic attribute array of an OS according to the present disclosure are described in Figures 4 and 5. The methods are illustrated as a collection of blocks in a logical flow graph, which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. The order in which the process is described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order to implement the process, or an alternate process.
Figure 4 illustrates a method of traversing hierarchical logic attribute array of an OS according to an embodiment of the present disclosure. The method comprises the steps of providing a structural framework of the hierarchical logic attribute array 401; reading elements of the hierarchical logic attribute array to provide indexing information 402, storing the indexing information along with a corresponding reference in a data storage array 403 and creating an index map of the structural framework with the stored indexing information 404. The method may additionally comprise accessing directly a specified element from the index map. According
to an embodiment of the present disclosure, the hierarchical logic attribute array is a registry hives file where elements of the registry hives file are registry keys, subkeys and values. The registry hive files have been described in detail previously in figures 2 and 3.
According to an embodiment of the present disclosure, the step of reading elements of the hierarchical logic attribute array further comprises indexing elements of the array through hash tables and B-tree tables. The indexing information is consequently stored in a data storage array such as a cache to ensure faster access.
Figure 5 illustrates a method of scanning registry hives array of an OS according to an embodiment of the present disclosure. The method comprises providing a structural framework of the hierarchical iogic attribute array 501, reading elements of the hierarchical logic attribute array to provide indexing information 502, storing the indexing information along with a corresponding reference in a data storage array 503, creating a first index map of the structural framework with the indexing information 504, creating a second index map of the structural framework through appropriate module of the OS 505 and comparing the first index map and the second index map to identify hidden elements of the hierarchical logic attribute array 506.
Embodiments of the present disclosure are applicable to all devices and applications utilizing the Windows OS. Therefore, embedded devices, cellular devices, desktops and servers utilize the various embodiments to traverse the complete registry hive files without having to use application interfaces of the OS. Additionally, embodiments of the present disclosure ensure faster parsing through the entire registry hive as the traversal is accomplished in a very short time, which improves the application performance on embedded devices such as cellular phones.
Embodiments of the present disclosure are applicable to scenarios such as when the entire registry hive files need to be traversed, when specific search strings need to be identified in the registry hive, when hidden registry entry needs to be identified, when the registry is to be
efficiently cleaned or repaired, when the entire registry is to be scanned to protect the devices from security vulnerability.
Embodiments of the present disclosure are applicable to devices such as those loaded with limited memory and processing resources, portable navigation devices, communication devices, devices using Windows embedded standard such as thin clients that use a number of off-the-shelf applications, drivers and services. The present disclosure is applicable to high end server class machines which have a very large registry.
Embodiments of the present disclosure are used in optimizing the registry of any mobile device, server or desktop by enabling a fast scan of the entire registry to identify the invalid/unwanted registry keys. As several embodiments of the present disclosure do not utilize Windows APIs, hidden registry items are easily identified and optimized.
As will be appreciated by one of skill In the art, the present invention may be embodied as a method, system, or computer program product. Accordingly, the present Invention may take the form of an entirely hardware embodiment, a software embodiment or an embodiment combining software and hardware aspects all generally referred to herein as a "circuit" or "module." Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
Furthermore, the present invention was described in part above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention.
it will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program Instructions may be
provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer- readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus like a scanner/check scanner to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and schematic diagrams of Figures 1-5 illustrate the architecture, functionality, and operations of some embodiments of methods, systems, and computer program products of traversing hierarchical logic attribute array in an Operating System (OS). !n this regard, each block may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s}. It should also be noted that in other implementations, the function(s) noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may sometimes be executed In the reverse order, depending on the functionality involved.
In the drawings and specification, there have been disclosed exemplary embodiments of the invention. Although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being defined by the following claims
We claim; -
1. A method of traversing hierarchical logic attribute array of an Operating System (OS)
comprising; -
a. providing a structural framework of the hierarchical logic attribute array;
b. reading elements of the hierarchical logic attribute array to provide indexing
information;
c. storing the indexing information along with a corresponding reference in a data
storage array; and
d. creating an index map of the structural framework with the stored indexing
information.
2. A method as claimed in claim 1 wherein traversing hierarchical logic attribute array of an OS further comprises accessing directly a specified element from the index map.
3. A method as claimed in claim 1 wherein reading elements of the hierarchical logic attribute array further comprises indexing elements of the array through hash tables and B-tree tables.
4. A method as claimed in claim 1 wherein the hierarchical logic attribute array is registry hives file.
5. A method as claimed in claim 1 and claim 4 wherein elements of the hierarchical logic attribute array are such as registry keys, subkeys and values.
6. A method as claimed in claim 1 wherein the data storage array is a cache to ensure faster access.
7. A system for traversing hierarchical logic attribute array of an Operating System (OS) comprising: -
a. An attribute processing unit configured to process and provide a structural
framework of the hierarchical logic attribute array;
b. An indexing unit coupled to the attribute processing unit configured to read
elements of the hierarchical logic attribute array to provide indexing information
and create an index map of the structural framework with the stored indexing
information;
c. A data storage array coupled to the indexing unit configured to store the
indexing information along with a corresponding reference; and
d. An attribute interface coupled to the indexing unit configured to directly access a
specified element from the index map.
8. A system as claimed in claim 7 wherein the Indexing unit is configured to read elements of the hierarchical logic attribute array to provide indexing information through hash tables and B-tree tables.
9. A system as claimed in claim 7 wherein the hierarchical logic attribute array Is registry hives file.
10. A system as claimed in claim 7 and 9 wherein elements of the hierarchical logic attribute array are such as registry keys, subkeys and values.
11. A system as claimed in claim 7 wherein the data storage array is a cache to ensure faster access.
12. A method of scanning registry hives array of an Operating System (OS) comprising: -
a. providing a structural framework of the hierarchical logic attribute array;
b. reading elements of the hierarchical logic attribute array to provide Indexing
information;
c. storing the indexing information along with a corresponding reference in a data
storage array;
d. creating a first index map of the structural framework with the indexing
information;
G. creating a second index map of the structural framework through appropriate
module of the OS; and f. comparing the first index map and the second index map to identify hidden
elements of the hierarchical logic attribute array.
Dated this 18th day of March 2011
Of Anand and Anand Advocates Agents for the Applicant
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 854-CHE-2011 FORM-9 01-04-2011.pdf | 2011-04-01 |
| 1 | 854-CHE-2011-RELEVANT DOCUMENTS [20-09-2023(online)].pdf | 2023-09-20 |
| 2 | 854-CHE-2011 FORM-18 01-04-2011.pdf | 2011-04-01 |
| 2 | 854-CHE-2011-US(14)-HearingNotice-(HearingDate-13-10-2020).pdf | 2021-10-03 |
| 3 | Form-3.pdf | 2011-09-03 |
| 3 | 854-CHE-2011-RELEVANT DOCUMENTS [20-09-2021(online)].pdf | 2021-09-20 |
| 4 | Form-1.pdf | 2011-09-03 |
| 4 | 854-CHE-2011-FORM 13 [09-07-2021(online)].pdf | 2021-07-09 |
| 5 | 854-CHE-2011-POA [09-07-2021(online)].pdf | 2021-07-09 |
| 5 | 854-CHE-2011 CORRESPONDENCE OTHERS 15-12-2011.pdf | 2011-12-15 |
| 6 | 854-CHE-2011-IntimationOfGrant25-02-2021.pdf | 2021-02-25 |
| 6 | 854-CHE-2011 POWER OF ATTORNEY 15-12-2011.pdf | 2011-12-15 |
| 7 | 854-CHE-2011-PatentCertificate25-02-2021.pdf | 2021-02-25 |
| 7 | 854-CHE-2011 FORM-1 26-11-2012.pdf | 2012-11-26 |
| 8 | 854-CHE-2011-Written submissions and relevant documents [27-10-2020(online)].pdf | 2020-10-27 |
| 8 | 854-CHE-2011 CORRESPONDENCE OTHERS 26-11-2012.pdf | 2012-11-26 |
| 9 | 854-CHE-2011-Correspondence to notify the Controller [09-10-2020(online)].pdf | 2020-10-09 |
| 9 | 854-CHE-2011-FER.pdf | 2017-05-08 |
| 10 | 854-CHE-2011-FORM-26 [09-10-2020(online)].pdf | 2020-10-09 |
| 10 | 854-CHE-2011-OTHERS [13-09-2017(online)].pdf | 2017-09-13 |
| 11 | 854-CHE-2011-ABSTRACT [13-09-2017(online)].pdf | 2017-09-13 |
| 11 | 854-CHE-2011-FER_SER_REPLY [13-09-2017(online)].pdf | 2017-09-13 |
| 12 | 854-CHE-2011-CLAIMS [13-09-2017(online)].pdf | 2017-09-13 |
| 12 | 854-CHE-2011-COMPLETE SPECIFICATION [13-09-2017(online)].pdf | 2017-09-13 |
| 13 | 854-CHE-2011-CLAIMS [13-09-2017(online)].pdf | 2017-09-13 |
| 13 | 854-CHE-2011-COMPLETE SPECIFICATION [13-09-2017(online)].pdf | 2017-09-13 |
| 14 | 854-CHE-2011-ABSTRACT [13-09-2017(online)].pdf | 2017-09-13 |
| 14 | 854-CHE-2011-FER_SER_REPLY [13-09-2017(online)].pdf | 2017-09-13 |
| 15 | 854-CHE-2011-FORM-26 [09-10-2020(online)].pdf | 2020-10-09 |
| 15 | 854-CHE-2011-OTHERS [13-09-2017(online)].pdf | 2017-09-13 |
| 16 | 854-CHE-2011-Correspondence to notify the Controller [09-10-2020(online)].pdf | 2020-10-09 |
| 16 | 854-CHE-2011-FER.pdf | 2017-05-08 |
| 17 | 854-CHE-2011-Written submissions and relevant documents [27-10-2020(online)].pdf | 2020-10-27 |
| 17 | 854-CHE-2011 CORRESPONDENCE OTHERS 26-11-2012.pdf | 2012-11-26 |
| 18 | 854-CHE-2011-PatentCertificate25-02-2021.pdf | 2021-02-25 |
| 18 | 854-CHE-2011 FORM-1 26-11-2012.pdf | 2012-11-26 |
| 19 | 854-CHE-2011-IntimationOfGrant25-02-2021.pdf | 2021-02-25 |
| 19 | 854-CHE-2011 POWER OF ATTORNEY 15-12-2011.pdf | 2011-12-15 |
| 20 | 854-CHE-2011-POA [09-07-2021(online)].pdf | 2021-07-09 |
| 20 | 854-CHE-2011 CORRESPONDENCE OTHERS 15-12-2011.pdf | 2011-12-15 |
| 21 | Form-1.pdf | 2011-09-03 |
| 21 | 854-CHE-2011-FORM 13 [09-07-2021(online)].pdf | 2021-07-09 |
| 22 | Form-3.pdf | 2011-09-03 |
| 22 | 854-CHE-2011-RELEVANT DOCUMENTS [20-09-2021(online)].pdf | 2021-09-20 |
| 23 | 854-CHE-2011-US(14)-HearingNotice-(HearingDate-13-10-2020).pdf | 2021-10-03 |
| 23 | 854-CHE-2011 FORM-18 01-04-2011.pdf | 2011-04-01 |
| 24 | 854-CHE-2011-RELEVANT DOCUMENTS [20-09-2023(online)].pdf | 2023-09-20 |
| 24 | 854-CHE-2011 FORM-9 01-04-2011.pdf | 2011-04-01 |
| 1 | search_05-05-2017.pdf |
| 1 | tposearchAE_09-09-2020.pdf |
| 2 | search_05-05-2017.pdf |
| 2 | tposearchAE_09-09-2020.pdf |