Method and system for synchronously hiding multiple parameters in memory address
By creating a data parameter mapping table and a parameter type mapping table, dynamically generating split positions and functions, sharing the split positions and updating them synchronously, the problem of fixed parameter split positions is solved, data anonymity and anti-cracking capabilities are improved, and efficient memory protection is achieved.
Patent Information
- Application Number
- CN202511195944.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-26
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2045-08-26
AI Technical Summary
In the existing technology, the parameter splitting positions are independently fixed and the number of splitting functions is limited, which allows attackers to crack the parameters linearly and cannot effectively prevent memory scanning from tampering with high-frequency parameters.
By creating a data parameter mapping table and a parameter seed mapping table, recording the correspondence between the split position and the parameter set and the association between the parameter and the timestamp seed, dynamically generating the split position and split function, sharing the split position, and giving priority to the associated split positions of multiple parameter sets for synchronous update when the parameters are modified.
It significantly improves data anonymity and anti-cracking capabilities, changes the cracking difficulty from linear to nonlinear, maintains low performance overhead, balances security and operational efficiency, and effectively resists high-frequency parameter tampering.
Smart Images

Figure CN120723679A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer technology, and in particular to a method and system for synchronously concealing multiple parameters in a memory address. Background Art
[0002] In the field of computer data storage security, existing technology resists memory tampering by splitting a single parameter into multiple sub-variables and storing them in an array. The original variable address is used as a disguised address, and the real data is restored by aggregating the sub-variables. This method, by splitting the data, makes it difficult to locate the real address through precise and fuzzy searches, thus protecting data security to a certain extent.
[0003] However, existing technologies have significant flaws: the splitting position of each parameter is independent and fixed, the split value of a single parameter is only stored in a dedicated array position, and the mapping relationship between the split position and the parameter is simple; the number of splitting functions is limited, and all parameters usually share 4 to 10 splitting function templates, and the function logic is simple, such as basic addition and subtraction. Attackers can continuously track the memory changes of a single parameter, observe the numerical change pattern of the split position, and combine the limited number of splitting function types to lock the real data address within a linear time related to the number of splitting functions and the array length. Even if the original variable address is used as a disguised address, due to the fixed relationship between the split position and the parameter, attackers can still crack it through linear tracking, resulting in limited data protection effectiveness and difficulty in dealing with memory tampering attacks on high-frequency parameters. The problem with CN120469942A is that, if a destroyer wants to tamper with the parameters of a certain target, he must repeatedly change the parameters and observe the changes in the data in the memory. The changes here can refer to different splitting functions or different splitting positions. In fact, the different splitting positions are equivalent to choosing different splitting functions. The change in cracking difficulty is only linear, or even equivalent to exchanging the splitting positions, and the splitting function is only equivalent to performing one more matrix operation.
[0004] Therefore, it is necessary to provide a method and system for synchronously hiding multiple parameters in a memory address to solve the above technical problems. Summary of the Invention
[0005] In order to solve the above technical problems, the present invention provides a method and system for synchronously hiding multiple parameters in a memory address, which is used to solve the problem in the prior art that the parameter splitting positions are independently fixed and the number of splitting functions is limited, resulting in attackers being able to linearly track and crack, and unable to effectively prevent memory scanning from tampering with high-frequency parameters.
[0006] The present invention provides a method for synchronously concealing multiple parameters in a memory address, the method comprising: S1, creating a data parameter mapping table and a parameter seed mapping table, wherein the data parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; S2, responding to the parameter generation instruction, generates the splitting position based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determines the corresponding splitting function; S3, split the original value of the current parameter based on the splitting function, assign splitting values to the splitting positions, that is, the marked splitting positions retain the original values, and the unmarked splitting positions calculate new values, and update the parameter mapping table; S4, in response to the parameter modification instruction, searching for all split positions of the current parameter based on the number parameter mapping table and the parameter type mapping table, and preferentially selecting the split position corresponding to the parameter set with multiple parameters as the associated split position; S5, based on the associated split position, extract the associated parameter set from the parameter mapping table, trigger the parameter generation instruction of each parameter in the associated parameter set in a random order, repeat S2 to S3 to complete the synchronous update of the parameter mapping table.
[0007] Preferably, the parameter mapping table is initially empty, the key is the element index of the array sequence, that is, the split position, and the value is a set of all parameters mapped to the split position; The parameter seed mapping table is initially empty, the key is the parameter identifier, and the value is the timestamp seed.
[0008] Preferably, the response parameter generation instruction generates a splitting position based on the timestamp seed of the current parameter in the parameter seed mapping table and synchronously determines the corresponding splitting function, specifically including: Convert the system timestamp of the response time of the parameter generation instruction to obtain the timestamp seed of the current parameter, perform a modulo operation on the length of the array sequence through the timestamp seed, generate at least two different element indexes as split positions, and synchronously determine the corresponding splitting function; If the generated split positions already exist in the parameter mapping table, the timestamp seed is updated and the split positions are regenerated until there is a split position that is not occupied by other parameters, that is, an unmarked split position.
[0009] Preferably, the type of the splitting function is determined by the timestamp seed, including addition, subtraction and mixed operations, and different timestamp seeds correspond to different splitting functions; The number of split positions corresponding to a single parameter in the parameter mapping table is dynamically adjusted with the value of the parameter, that is, the smaller the parameter value, the smaller the number of corresponding split positions.
[0010] Preferably, the array sequence adopts a dynamic memory management mechanism, that is, after each execution of S2, the memory address for the array sequence is reallocated and the starting memory address of the array sequence is dynamically adjusted; The memory length corresponding to the array sequence changes dynamically with the length of the array sequence and is not proportional to the length of the parameter-independent address.
[0011] Preferably, the method of splitting the original value of the current parameter based on the splitting function, assigning splitting values to the splitting positions, that is, retaining the original values of the marked splitting positions, calculating new values for the unmarked splitting positions, and updating the parameter mapping table specifically includes: After obtaining the original value of the current parameter, the original value of the parameter is split based on the splitting function to obtain multiple split values, and all the split values are restored to the original value of the parameter after the reverse operation of the splitting function; Assign splitting values to the splitting positions. That is, the splitting values of unmarked splitting positions are randomly generated in the range of -0.5 to 1.5 times the original value of the parameter and are integers. The splitting values of marked splitting positions remain unchanged because they are associated with other parameters. The current parameter is added to the parameter set of the parameter mapping table, and the mapping relationship between the split position and the parameter set in the parameter mapping table is updated.
[0012] Preferably, the response parameter modification instruction searches for all split positions of the current parameter based on the number parameter mapping table and the parameter type mapping table, and preferentially selects the split positions corresponding to the parameter set with multiple parameters as the associated split positions, specifically including: Find all the split positions corresponding to the current parameters through the parameter mapping table, and traverse the parameter mapping table to obtain the parameter set of each split position; Count the number of parameters in the parameter set, and give priority to the split position corresponding to the parameter set with 2 parameters; if there is no split position corresponding to the parameter set with 2 parameters, select the split position corresponding to the parameter set with more than 2 parameters and the least number of parameters; if the number of parameters in the parameter sets corresponding to all split positions is 1, update the timestamp seed of the current parameter and re-execute S2 to S4.
[0013] Preferably, the step of extracting an associated parameter set from a parameter mapping table based on the associated split position, triggering a parameter generation instruction for each parameter in the associated parameter set in a random order, and repeatedly executing S2 to S3 to complete the synchronous update of the parameter mapping table specifically includes: Using the associated split position as the key, extract the corresponding parameters from the updated parameter mapping table to form an associated parameter set; Randomly sort the parameters in the associated parameter set, generate parameter update instructions for each parameter in turn, and repeat S2 to S3 to complete the synchronous update of the parameter mapping table.
[0014] A system for synchronously hiding multiple parameters in a memory address, the system comprising: A creation module is used to create a data parameter mapping table and a parameter seed mapping table, wherein the data parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; A generation module is used to respond to the parameter generation instruction, generate the split position based on the timestamp seed of the current parameter in the parameter mapping table, and synchronously determine the corresponding split function; An allocation module is used to split the original value of the current parameter based on the splitting function, assign splitting values to the splitting positions, that is, the marked splitting positions retain the original values, and the unmarked splitting positions calculate new values, and update the parameter mapping table; A modification module, configured to respond to a parameter modification instruction, search for all split positions of the current parameter based on a number-parameter mapping table and a parameter-type mapping table, and preferentially select a split position corresponding to a parameter set having multiple parameters as an associated split position; The trigger module is used to extract the associated parameter set from the parameter mapping table based on the associated split position, trigger the parameter generation instruction of each parameter in the associated parameter set in a random order, and repeatedly execute S2 to S3 to complete the synchronous update of the parameter mapping table.
[0015] Compared with related technologies, the method and system for synchronously hiding multiple parameters in a memory address provided by the present invention have the following beneficial effects: The present invention creates a parameter mapping table and a parameter seed mapping table, wherein the parameter mapping table records the correspondence between split positions and parameter sets, and the parameter seed mapping table records the association between parameters and timestamp seeds; responds to parameter generation instructions, generates split positions based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determines the corresponding splitting function; splits the original value of the current parameter based on the splitting function, assigns splitting values to the split positions, that is, the marked split positions retain the original values, and the unmarked split positions calculate new values, and updates the parameter mapping table; responds to parameter modification instructions, searches for all split positions of the current parameter based on the parameter mapping table and the parameter seed mapping table, and preferentially selects the split positions corresponding to the parameter set with multiple parameters as associated split positions; based on the associated split positions, extracts the associated parameter set from the parameter mapping table, triggers the parameter generation instructions of each parameter in the associated parameter set in a random order, repeatedly executes the process of split position generation and split value assignment, and completes the synchronous update of the parameter mapping table, thereby changing the cracking difficulty from linear to nonlinear by sharing the split positions with multiple parameters, and combining with dynamic memory management, taking into account both data anonymity and operation efficiency in high-frequency scenarios.
[0016] The present invention significantly improves data anonymity and cracking resistance through the design of multi-parameter shared split positions. On the one hand, the split position is associated with multiple parameters through a parameter mapping table. Modifying a single parameter will trigger the synchronous update of the associated parameters, making it difficult for attackers to distinguish the split position corresponding to the target parameter, and the cracking difficulty is transformed from a linear increase to a nonlinear improvement. On the other hand, the splitting function and split position are dynamically generated in combination with the timestamp seed. Each time the parameters are updated, the splitting function type, split position and array length are dynamically changed. The starting memory address and length of the array are adjusted in real time, further disrupting the attacker's tracking pattern. At the same time, the present invention maintains the advantage of low performance overhead, achieving protection only through basic memory allocation, numerical splitting and aggregation operations, without the need for continuous locking or complex encryption operations, avoiding additional CPU consumption and increased power consumption, and taking into account security and operational efficiency in high-frequency parameter scenarios, effectively resolving the contradiction between insufficient protection strength and performance loss in the prior art. The present invention can share the split values in the array sequence, so that the data changes of a single parameter in the memory are coupled with the changes of other parameters, and the cracking difficulty is transformed from a linear increase to a nonlinear increase. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 A flowchart of a method for synchronously hiding multiple parameters in a memory address provided by an embodiment of the present invention; Figure 2 A system block diagram of a system for synchronously hiding multiple parameters in a memory address provided by an embodiment of the present invention; Figure 3 A schematic diagram of the hardware structure of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0018] To make the objectives, technical solutions, and advantages of the embodiments of the present invention more clear, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts shall fall within the scope of protection of the present invention.
[0019] like Figure 1 FIG. 1 is a flow chart of a method for synchronously hiding multiple parameters in a memory address provided by an embodiment of the present invention. Figure 1The execution subject of the method shown may be a software and / or hardware device. The execution subject of the present application may include but is not limited to at least one of the following: user equipment, network equipment, etc. Among them, user equipment may include but is not limited to computers, smart phones, personal digital assistants (PDAs) and the electronic devices mentioned above. Network equipment may include but is not limited to a single network server, a server group consisting of multiple network servers, or a cloud based on cloud computing consisting of a large number of computers or network servers, wherein cloud computing is a type of distributed computing, a super virtual computer composed of a group of loosely coupled computers. This embodiment does not limit this. It includes steps S1 to S5, as follows: S1, creating a data parameter mapping table and a parameter seed mapping table, wherein the data parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; Among them, the parameter mapping table is a data mapping structure used to record the position of the element storing the split value in the array sequence, that is, the split position, and the corresponding relationship between the set of all parameters mapped to the position. It is the core data carrier for realizing the sharing of split positions by multiple parameters. The parameter seed mapping table is a data mapping structure used to record the association between the parameters to be protected and the corresponding timestamp seeds. It uniquely associates the splitting function with the timestamp seed to provide a mapping basis for the parameter splitting rule. The split position refers to the element index position in the array sequence used to store the sub-values after the parameter is split, that is, the split value. It is the storage location of the real data in the memory and can be shared and associated by multiple parameters. The timestamp seed refers to a random identification value generated based on the system time at the time of parameter generation or update. It is used to dynamically generate the split position and determine the corresponding splitting function. It is random and unique.
[0020] S2, responding to the parameter generation instruction, generates the splitting position based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determines the corresponding splitting function; It can be understood that parameter generation instructions are instructions that trigger parameter splitting, storage, initialization, or updating, and are used to initiate processes such as parameter split location generation and split value assignment. Splitting functions are the operation rules used to split the original parameter value into multiple split values and restore the original value from the split values. These operations include addition, subtraction, and mixed operations, and are uniquely determined by the timestamp seed.
[0021] S3, split the original value of the current parameter based on the splitting function, assign splitting values to the splitting positions, that is, the marked splitting positions retain the original values, and the unmarked splitting positions calculate new values, and update the parameter mapping table; It should be noted that the split value is the sub-value obtained after the original value of the parameter is split by the splitting function, which is stored in the split position. All split values can accurately restore the original value of the parameter through the reverse operation of the splitting function. The marked split position refers to the split position that already exists in the parameter mapping table and is associated with at least one parameter. The stored split value remains unchanged due to the association with other parameters. The unmarked split position refers to a new split position that is not recorded in the parameter mapping table and is not associated with any parameter. The new split value needs to be calculated and assigned according to the splitting function.
[0022] S4, in response to the parameter modification instruction, searching for all split positions of the current parameter based on the number parameter mapping table and the parameter type mapping table, and preferentially selecting the split position corresponding to the parameter set with multiple parameters as the associated split position; The parameter modification instruction is an operation instruction that triggers the update of the parameter value. The associated split position refers to the position to be modified from all the split positions associated with the parameter when responding to the parameter modification instruction. Split positions associated with multiple parameters are preferred. The number of parameters here is generally set to 2.
[0023] S5, based on the associated split position, extract the associated parameter set from the parameter mapping table, trigger the parameter generation instruction of each parameter in the associated parameter set in a random order, repeat S2 to S3 to complete the synchronous update of the parameter mapping table.
[0024] In practical applications, the associated parameter set refers to a set of all parameters associated with the associated split position through a parameter mapping table. When the associated split position is updated, the parameters in the set need to synchronously execute the split update process.
[0025] Specifically, the foundation for data association is first established by constructing a data parameter mapping table and a parameter seed mapping table. The data parameter mapping table, as the core association carrier, establishes the correspondence between the split position in the array sequence and the parameter set mapped to that position; the parameter seed mapping table binds the protected parameter to the timestamp seed, providing data support for the subsequent dynamic determination of the splitting rules. Together, the two constitute the basic data architecture for multi-parameter shared split positions.
[0026] After receiving the parameter generation instruction, the splitting information generation process is initiated. Based on the timestamp seed bound to the current parameter in the parameter-seed mapping table, a random algorithm is used to generate the splitting position. The corresponding splitting function is also determined based on the uniqueness of the timestamp seed. This process overcomes the limitations of fixed splitting positions in existing technologies by dynamically adjusting the splitting position and function through the timestamp seed, enhancing data anonymity.
[0027] The original parameter values are split based on the determined splitting function, and split values are assigned to the split positions. For marked split positions recorded in the parameter mapping table, the original split values remain unchanged because they are associated with other parameters. For new unmarked split positions, new split values are calculated and assigned according to the splitting function, and the current parameters are simultaneously added to the parameter set of the corresponding position in the parameter mapping table, completing the dynamic update of the mapping relationship.
[0028] When responding to parameter modification instructions, all split positions associated with the current parameters are retrieved with the help of the associated data of the number parameter mapping table and the parameter type mapping table. By counting the number of elements in the parameter set of each position, the split position with a parameter number of 2 is preferentially selected as the associated split position to balance the update efficiency and the concealment effect.
[0029] Using the determined associated split position as the index, all parameters associated with the position are extracted from the parameter mapping table to form a set. The generation instructions of each parameter are triggered in a random order, and the split generation and value allocation process is re-executed to achieve the linkage update of the parameter mapping table. The modification of a single parameter will cause the associated parameters to change synchronously, greatly increasing the difficulty for attackers to locate the target.
[0030] In a specific implementation process, the parameter mapping table is initially empty, the key is the element index of the array sequence, that is, the split position, and the value is a set of all parameters mapped to the split position; The parameter seed mapping table is initially empty, the key is the parameter identifier, and the value is the timestamp seed.
[0031] It is understandable that both the parameter mapping table and the parameter type mapping table are initialized as empty tables, forming the basic data architecture for multi-parameter synchronous hiding. The key-value structure of the parameter mapping table explicitly points to the element index of the array sequence. This index is the split position, which serves as the specific location in memory for storing the split value. Its value field is a collection type, which is used to store all parameters mapped to the corresponding split position, enabling the association and binding of a single split position with multiple parameters, and providing a data carrier for sharing split positions among multiple parameters.
[0032] The key-value design of the parameter-seed mapping table uses the parameter identifier as the retrieval basis, and the key field corresponds to the unique identifier of the parameter to be protected; the value field stores the timestamp seed, which serves as the association medium between the parameter and the splitting rule. The splitting function and splitting position will be dynamically generated based on the timestamp seed. Through the binding relationship between the parameter and the timestamp seed, the limitation of the single mapping of parameters and splitting positions in the existing technology is broken through, laying the foundation for the dynamic adjustment of the splitting rules.
[0033] The response parameter generation instruction generates a split position based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determines the corresponding split function, specifically including: Convert the system timestamp of the response time of the parameter generation instruction to obtain the timestamp seed of the current parameter, perform a modulo operation on the length of the array sequence through the timestamp seed, generate at least two different element indexes as split positions, and synchronously determine the corresponding splitting function; If the generated split positions already exist in the parameter mapping table, the timestamp seed is updated and the split positions are regenerated until there is a split position that is not occupied by other parameters, that is, an unmarked split position.
[0034] The type of the splitting function is determined by the timestamp seed, including addition, subtraction and mixed operations. Different timestamp seeds correspond to different splitting functions. The number of split positions corresponding to a single parameter in the parameter mapping table is dynamically adjusted with the value of the parameter, that is, the smaller the parameter value, the smaller the number of corresponding split positions.
[0035] The array sequence adopts a dynamic memory management mechanism, that is, after each execution of S2, the memory address of the array sequence is reallocated and the starting memory address of the array sequence is dynamically adjusted; The memory length corresponding to the array sequence changes dynamically with the length of the array sequence and is not proportional to the length of the parameter-independent address.
[0036] In practical applications, the system timestamp at the time the parameter generation instruction is triggered is converted to generate a timestamp seed corresponding to the current parameter. This timestamp seed serves as the core identifier for dynamically controlling the splitting rule. A modulo operation is performed on the length of the array sequence using the timestamp seed to generate at least two different element indices as split positions. The corresponding splitting function is then determined based on the uniqueness of the timestamp seed, achieving dynamic binding between the split position and the operation rule.
[0037] If the generated split positions already exist in the parameter mapping table, that is, they are all marked split positions, the split position generation process is re-executed by updating the timestamp seed until at least one split position not occupied by other parameters, that is, an unmarked split position, is obtained. This ensures that the new parameter can both share the existing split position and obtain an independent storage location, breaking through the limitation of the single mapping of split position and parameter in the existing technology.
[0038] The type of splitting function is uniquely determined by the timestamp seed, covering various forms such as addition, subtraction and mixed operations. Different timestamp seeds correspond to different splitting functions, avoiding the defect of a limited and fixed number of splitting functions in the existing technology.
[0039] In addition, the number of split positions corresponding to a single parameter in the parameter mapping table dynamically adapts with the parameter value. The smaller the parameter value, the fewer the number of split positions, which optimizes memory usage efficiency while ensuring security.
[0040] The array sequence uses a dynamic memory management mechanism. After each split position generation step is executed, the system reallocates memory space for the array sequence so that its starting memory address changes dynamically. The memory length of the array sequence is adjusted in real time with the number of its own elements, and maintains a non-fixed proportional relationship with the length of the parameter-independent storage address. For example, the parameter-independent storage address is of int type and has a fixed length of 4 bytes. When the array sequence contains 5 elements, the memory length is 22 bytes; when the number of elements increases to 10, the memory length is 45 bytes; when the number of elements reaches 15, the memory length is 57 bytes. Through the dual dynamic changes of memory address and length, the concealment of real data is further enhanced to resist memory scanning and positioning attacks.
[0041] The method of splitting the original value of the current parameter based on the splitting function, assigning splitting values to the splitting positions, that is, retaining the original values of the marked splitting positions, calculating new values for the unmarked splitting positions, and updating the parameter mapping table specifically includes: After obtaining the original value of the current parameter, the original value of the parameter is split based on the splitting function to obtain multiple split values, and all the split values are restored to the original value of the parameter after the reverse operation of the splitting function; Assign splitting values to the splitting positions. That is, the splitting values of unmarked splitting positions are randomly generated in the range of -0.5 to 1.5 times the original value of the parameter and are integers. The splitting values of marked splitting positions remain unchanged because they are associated with other parameters. The current parameter is added to the parameter set of the parameter mapping table, and the mapping relationship between the split position and the parameter set in the parameter mapping table is updated.
[0042] In order to further optimize the efficiency of split position generation and the effect of multi-parameter sharing, the optimal configuration of the average number of split values m corresponding to a single parameter and the array sequence length n is determined by constraint conditions. The key is to reduce the number of iterations of split position generation and to make the split values shared by multiple parameters as much as possible.
[0043] Among them, the constraints of m and n are: ; ; ; ; ; Where, To implement the After the generation instruction of the parameters, the expected space occupied by the array sequence, ; is the average number of split values in all split functions; is the total number of parameters; The length of the array sequence.
[0044] Will Simplifying it into a geometric progression, we get: , .
[0045] Based on the rules of hash mapping, in order to reduce the number of iterations of split position generation, the first constraint is determined as: The meaning of this formula is: it is necessary to ensure that at least one split position is unmarked.
[0046] The second constraint is: In order to make the splitting value shared by multiple parameters as much as possible, the meaning of this formula is: to ensure that the splitting position to be modified is in the parameter mapping table, and the number of elements in the corresponding parameter set is strictly greater than 1.
[0047] Taking extreme cases for both the first and second constraints, we can solve the rounded and .
[0048] In addition, due to The numerical value of is usually selected from 4 to 7 based on experience. Therefore, the above solution process is actually based on the determination of The value of (set to 4, 5, 6, 7 in sequence) is calculated to get the optimal and The maximum value of , that is, on the basis of satisfying the first constraint, the maximum value of the second constraint is obtained.
[0049] In practical applications, the original value of the current parameter is first obtained and then split using a pre-set splitting function to generate multiple split values. This splitting process strictly adheres to the principle of reversibility, meaning that all split values can be accurately restored to the original value of the parameter after the reverse operation of the splitting function, ensuring the accuracy of data calculations.
[0050] For unmarked split positions, that is, positions not recorded in the parameter mapping table, their split values are randomly generated in the range of -0.5 to 1.5 times the original parameter value, and the value type is limited to integers to ensure the randomness and calculation accuracy of the splitting logic; for marked split positions, that is, positions associated with other parameters, due to the need to maintain consistency in multi-parameter sharing, their stored split values remain unchanged, and the values of unmarked positions are adjusted to meet the overall restoration requirements.
[0051] After the allocation is complete, the current parameter is added to the parameter set corresponding to the split position in the data parameter mapping table, completing the dynamic update of the mapping relationship. This process breaks through the limitations of the existing technology of single mapping between parameters and split positions by sharing split positions among multiple parameters and dynamically adjusting the values of unmarked positions. This not only ensures data integrity but also enhances the confidentiality of split positions.
[0052] The response parameter modification instruction searches for all split positions of the current parameter based on the number parameter mapping table and the parameter type mapping table, and preferentially selects the split position corresponding to the parameter set with multiple parameters as the associated split position, specifically including: Find all the split positions corresponding to the current parameters through the parameter mapping table, and traverse the parameter mapping table to obtain the parameter set of each split position; Count the number of parameters in the parameter set, and give priority to the split position corresponding to the parameter set with 2 parameters; if there is no split position corresponding to the parameter set with 2 parameters, select the split position corresponding to the parameter set with more than 2 parameters and the least number of parameters; if the number of parameters in the parameter sets corresponding to all split positions is 1, update the timestamp seed of the current parameter and re-execute S2 to S4.
[0053] In the process of responding to parameter modification instructions, the parameter mapping table and the number parameter mapping table are used as data support to carry out the search and screening operation of the split position. First, all the split positions associated with the current parameter are located through the parameter mapping table. Then, the number parameter mapping table is traversed to obtain the parameter set corresponding to each split position, and the mapping relationship between the position and the associated parameter is established.
[0054] Then, the number of elements in each parameter set is counted, and the associated split positions are filtered according to priority: the split positions corresponding to the set with a parameter number of 2 are preferentially selected to balance the confidentiality and update efficiency of multi-parameter sharing; if such positions do not exist, the split positions corresponding to the set with a parameter number greater than 2 and the least number are selected to reduce the scope of linkage updates; if the number of parameter sets in all split positions is 1, it indicates that the current mapping relationship is single, and the timestamp seed of the current parameter in the parameter mapping table needs to be updated, and the process from split position generation (S2) to position screening (S4) is re-executed. By dynamically adjusting the mapping relationship, the limitation of the fixed association between parameters and split positions in the existing technology is broken through, and the data confidentiality and anti-cracking capabilities are enhanced.
[0055] The process of extracting an associated parameter set from the parameter mapping table based on the associated split position, triggering parameter generation instructions for each parameter in the associated parameter set in a random order, and repeatedly executing S2 to S3 to complete the synchronous update of the parameter mapping table specifically includes: Using the associated split position as the key, extract the corresponding parameters from the updated parameter mapping table to form an associated parameter set; Randomly sort the parameters in the associated parameter set, generate parameter update instructions for each parameter in turn, and repeat S2 to S3 to complete the synchronous update of the parameter mapping table.
[0056] It should be noted that, using the determined associated split position as the search key, all parameters corresponding to the position are extracted from the updated parameter mapping table to form an associated parameter set, providing a data basis for multi-parameter linkage update.
[0057] The parameters in the associated parameter set are randomly sorted to disrupt the order of parameter updates, preventing attackers from exploiting fixed patterns. Update instructions are then generated for each parameter based on the sorting results, triggering the repetition of the splitting information generation (S2) and splitting value assignment (S3) processes: the splitting positions and splitting functions are regenerated based on the timestamp seed, the splitting values are assigned according to the splitting function rules, and the parameter mapping table is updated.
[0058] Through the above process, the modification of a single parameter triggers the synchronous splitting and updating of related parameters, so that the data parameter mapping table maintains data consistency in real time, breaking through the limitations of independent parameter updates in existing technologies, and greatly improving the concealment and anti-tracking capabilities of real data with the help of multi-parameter linkage changes.
[0059] In summary, the present application essentially creatively splits the numerical values in the shared array sequence, so that the changes in the data of a single game parameter in the memory are coupled into the changes of other game parameters. At the same time, some parameters of the single game parameter are actually fixed, which greatly increases the difficulty of cracking in a nonlinear manner.
[0060] like Figure 2 FIG. 1 is a system block diagram of a system for synchronously hiding multiple parameters in a memory address provided by an embodiment of the present invention. The system includes: A creation module is used to create a data parameter mapping table and a parameter seed mapping table, wherein the data parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; A generation module is used to respond to the parameter generation instruction, generate the split position based on the timestamp seed of the current parameter in the parameter mapping table, and synchronously determine the corresponding split function; An allocation module is used to split the original value of the current parameter based on the splitting function, assign splitting values to the splitting positions, that is, the marked splitting positions retain the original values, and the unmarked splitting positions calculate new values, and update the parameter mapping table; A modification module, configured to respond to a parameter modification instruction, search for all split positions of the current parameter based on a number-parameter mapping table and a parameter-type mapping table, and preferentially select a split position corresponding to a parameter set having multiple parameters as an associated split position; The trigger module is used to extract the associated parameter set from the parameter mapping table based on the associated split position, trigger the parameter generation instruction of each parameter in the associated parameter set in a random order, and repeatedly execute S2 to S3 to complete the synchronous update of the parameter mapping table.
[0061] Figure 2 The apparatus of the embodiment shown can be used to perform Figure 1 The implementation principles and technical effects of the steps in the method embodiment shown are similar and will not be repeated here.
[0062] An electronic device includes a memory and a processor, wherein the memory stores a computer program. When the processor runs the computer program stored in the memory, the processor executes the steps of a method for synchronously concealing multiple parameters in a memory address as described in any one of the above.
[0063] like Figure 3 FIG. 1 is a schematic diagram of the hardware structure of an electronic device provided by an embodiment of the present invention. The electronic device 30 includes: a processor 31, a memory 32 and a computer program; The memory 32 is used to store the computer program, which may also be a flash memory. The computer program is, for example, an application program or a functional module for implementing the above method.
[0064] The processor 31 is configured to execute the computer program stored in the memory to implement the various steps performed by the device in the above method. For details, please refer to the relevant description in the above method embodiment.
[0065] Optionally, the memory 32 may be independent or integrated with the processor 31 .
[0066] When the memory 32 is a device independent of the processor 31, the device may further include: The bus 33 is used to connect the memory 32 and the processor 31 .
[0067] A readable storage medium stores a computer program, which, when executed by a processor, is used to implement the steps of a method for synchronously concealing multiple parameters in a memory address as described in any one of the above.
[0068] The readable storage medium may be a computer storage medium or a communication medium. Communication media include any medium that facilitates the transfer of computer programs from one location to another. Computer storage media may be any available medium that can be accessed by a general-purpose or special-purpose computer. For example, a readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium may also be an integral part of the processor. The processor and the readable storage medium may be located in an application-specific integrated circuit (ASIC). In addition, the ASIC may be located in a user device. Of course, the processor and the readable storage medium may also exist as discrete components in a communication device. The readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like.
[0069] The present invention also provides a program product, which includes execution instructions stored in a readable storage medium. At least one processor of a device can read the execution instructions from the readable storage medium, and at least one processor executes the execution instructions so that the device implements the methods provided in the various embodiments described above.
[0070] In the embodiments of the above-mentioned devices, it should be understood that the processor may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASICs), etc. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the present invention may be directly executed by a hardware processor or by a combination of hardware and software modules within the processor.
[0071] Through the introduction of the above embodiments, the present invention uses a method and system for synchronously hiding multiple parameters in a memory address, by creating a parameter mapping table and a parameter seed mapping table, wherein the parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; responding to the parameter generation instruction, generating the split position based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determining the corresponding splitting function; splitting the original value of the current parameter based on the splitting function, assigning a splitting value to the split position, that is, the marked split position retains the original value, and the unmarked split position calculates a new value, and updates the parameter mapping table; In response to the parameter modification instruction, all split positions of the current parameter are searched based on the number parameter mapping table and the parameter type mapping table, and the split positions corresponding to the parameter set with multiple parameters are preferentially selected as the associated split positions; based on the associated split positions, the associated parameter set is extracted from the number parameter mapping table, and the parameter generation instructions of each parameter in the associated parameter set are triggered in a random order. The process of split position generation and split value assignment is repeated to complete the synchronous update of the number parameter mapping table. By sharing the split positions of multiple parameters, the cracking difficulty is changed from linear to nonlinear. Combined with dynamic memory management, data anonymity and operation efficiency are taken into account in high-frequency scenarios.
[0072] The present invention significantly improves data anonymity and cracking resistance through the design of multi-parameter shared split positions. On the one hand, the split position is associated with multiple parameters through a parameter mapping table. Modifying a single parameter will trigger the synchronous update of the associated parameters, making it difficult for attackers to distinguish the split position corresponding to the target parameter, and the cracking difficulty is transformed from a linear increase to a nonlinear improvement. On the other hand, the splitting function and split position are dynamically generated in combination with the timestamp seed. Each time the parameters are updated, the splitting function type, split position and array length are dynamically changed. The starting memory address and length of the array are adjusted in real time, further disrupting the attacker's tracking pattern. At the same time, the present invention maintains the advantage of low performance overhead, achieving protection only through basic memory allocation, numerical splitting and aggregation operations, without the need for continuous locking or complex encryption operations, avoiding additional CPU consumption and increased power consumption, and taking into account security and operational efficiency in high-frequency parameter scenarios, effectively resolving the contradiction between insufficient protection strength and performance loss in the prior art. The present invention can share the split values in the array sequence, so that the data changes of a single parameter in the memory are coupled with the changes of other parameters, and the cracking difficulty is transformed from a linear increase to a nonlinear increase.
[0073] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the above embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the above embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for synchronously hiding multiple parameters in a memory address, characterized in that: The method comprises: S1, creating a data parameter mapping table and a parameter seed mapping table, wherein the data parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; S2, responding to the parameter generation instruction, generates the splitting position based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determines the corresponding splitting function; S3, split the original value of the current parameter based on the splitting function, assign splitting values to the splitting positions, that is, the marked splitting positions retain the original values, and the unmarked splitting positions calculate new values, and update the parameter mapping table; S4, in response to the parameter modification instruction, searching for all split positions of the current parameter based on the number parameter mapping table and the parameter type mapping table, and preferentially selecting the split position corresponding to the parameter set with multiple parameters as the associated split position; S5, based on the associated split position, extract the associated parameter set from the parameter mapping table, trigger the parameter generation instruction of each parameter in the associated parameter set in a random order, repeat S2 to S3 to complete the synchronous update of the parameter mapping table.
2. A method for synchronously hiding multiple parameters in a memory address according to claim 1, characterized in that: The parameter mapping table is initially empty, the key is the element index of the array sequence, that is, the split position, and the value is a set of all parameters mapped to the split position; The parameter seed mapping table is initially empty, the key is the parameter identifier, and the value is the timestamp seed.
3. The method for synchronously hiding multiple parameters in a memory address according to claim 1, characterized in that: The response parameter generation instruction generates a split position based on the timestamp seed of the current parameter in the parameter seed mapping table, and synchronously determines the corresponding split function, specifically including: Convert the system timestamp of the response time of the parameter generation instruction to obtain the timestamp seed of the current parameter, perform a modulo operation on the length of the array sequence through the timestamp seed, generate at least two different element indexes as split positions, and synchronously determine the corresponding splitting function; If the generated split positions already exist in the parameter mapping table, the timestamp seed is updated and the split positions are regenerated until there is a split position that is not occupied by other parameters, that is, an unmarked split position.
4. A method for synchronously hiding multiple parameters in a memory address according to claim 3, characterized in that: The type of the splitting function is determined by the timestamp seed, including addition, subtraction and mixed operations. Different timestamp seeds correspond to different splitting functions. The number of split positions corresponding to a single parameter in the parameter mapping table is dynamically adjusted with the value of the parameter, that is, the smaller the parameter value, the smaller the number of corresponding split positions.
5. The method for synchronously hiding multiple parameters in a memory address according to claim 3, characterized in that: The array sequence adopts a dynamic memory management mechanism, that is, after each execution of S2, the memory address of the array sequence is reallocated and the starting memory address of the array sequence is dynamically adjusted; The memory length corresponding to the array sequence changes dynamically with the length of the array sequence and is not proportional to the length of the parameter-independent address.
6. The method for synchronously hiding multiple parameters in a memory address according to claim 1, characterized in that: The method of splitting the original value of the current parameter based on the splitting function, assigning splitting values to the splitting positions, that is, retaining the original values of the marked splitting positions, calculating new values for the unmarked splitting positions, and updating the parameter mapping table specifically includes: After obtaining the original value of the current parameter, the original value of the parameter is split based on the splitting function to obtain multiple split values, and all the split values are restored to the original value of the parameter after the reverse operation of the splitting function; Assign splitting values to the splitting positions. That is, the splitting values of unmarked splitting positions are randomly generated in the range of -0.5 to 1.5 times the original value of the parameter and are integers. The splitting values of marked splitting positions remain unchanged because they are associated with other parameters. The current parameter is added to the parameter set of the parameter mapping table, and the mapping relationship between the split position and the parameter set in the parameter mapping table is updated.
7. The method for synchronously hiding multiple parameters in a memory address according to claim 1, characterized in that: The response parameter modification instruction searches for all split positions of the current parameter based on the number parameter mapping table and the parameter type mapping table, and preferentially selects the split position corresponding to the parameter set with multiple parameters as the associated split position, specifically including: Find all the split positions corresponding to the current parameters through the parameter mapping table, and traverse the parameter mapping table to obtain the parameter set of each split position; Count the number of parameters in the parameter set, and give priority to the split position corresponding to the parameter set with 2 parameters; if there is no split position corresponding to the parameter set with 2 parameters, select the split position corresponding to the parameter set with more than 2 parameters and the least number of parameters; if the number of parameters in the parameter sets corresponding to all split positions is 1, update the timestamp seed of the current parameter and re-execute S2 to S4.
8. The method for synchronously hiding multiple parameters in a memory address according to claim 1, characterized in that: The process of extracting an associated parameter set from the parameter mapping table based on the associated split position, triggering parameter generation instructions for each parameter in the associated parameter set in a random order, and repeatedly executing S2 to S3 to complete the synchronous update of the parameter mapping table specifically includes: Using the associated split position as the key, extract the corresponding parameters from the updated parameter mapping table to form an associated parameter set; Randomly sort the parameters in the associated parameter set, generate parameter update instructions for each parameter in turn, and repeat S2 to S3 to complete the synchronous update of the parameter mapping table.
9. A system for synchronously concealing multiple parameters in a memory address, applied to a method for synchronously concealing multiple parameters in a memory address as claimed in any one of claims 1 to 8, characterized in that: The system comprises: A creation module is used to create a data parameter mapping table and a parameter seed mapping table, wherein the data parameter mapping table records the correspondence between the split position and the parameter set, and the parameter seed mapping table records the association between the parameter and the timestamp seed; A generation module is used to respond to the parameter generation instruction, generate the split position based on the timestamp seed of the current parameter in the parameter mapping table, and synchronously determine the corresponding split function; An allocation module is used to split the original value of the current parameter based on the splitting function, assign splitting values to the splitting positions, that is, the marked splitting positions retain the original values, and the unmarked splitting positions calculate new values, and update the parameter mapping table; A modification module, configured to respond to a parameter modification instruction, search for all split positions of the current parameter based on a number-parameter mapping table and a parameter-type mapping table, and preferentially select a split position corresponding to a parameter set having multiple parameters as an associated split position; The trigger module is used to extract the associated parameter set from the parameter mapping table based on the associated split position, trigger the parameter generation instruction of each parameter in the associated parameter set in a random order, and repeatedly execute S2 to S3 to complete the synchronous update of the parameter mapping table.
Citation Information
Patent Citations
Secure method and system for biometric verification
CA2351868A1
Automatic memory protection method and device, computer equipment and storage medium
CN120256337A
Method for disguising and hiding data in memory address
CN120469942A
Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number
DE102012004780A1
Tamper resistant software-mass data encoding
US20030163718A1