Method, device and electronic equipment for encrypting memory addresses
By performing format conversion and convolutional encoding on the memory addresses of iOS applications, the problem of large source code modifications caused by code hardening is solved, and memory address encryption and security enhancement are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INDUSTRIAL AND COMMERCIAL BANK OF CHINA
- Filing Date
- 2022-06-30
- Publication Date
- 2026-05-19
AI Technical Summary
Existing methods for hardening the code of iOS applications result in significant modifications to the source code, which is not conducive to debugging by developers, especially for financial and gaming apps.
By obtaining the memory address of the target application, converting it from Objective-C to C, and then using convolutional coding for encryption, the complexity of the memory address is increased.
It implements memory address encryption for iOS applications, enhances security protection, reduces the impact of code changes on debugging, and improves application security.
Smart Images

Figure CN114968852B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computers or other related fields, and more specifically, to a method, apparatus, and electronic device for encrypting memory addresses. Background Technology
[0002] It's well known that iOS is highly secure, with very few vulnerabilities and virtually no risk of malware infection. While the closed nature of Apple's system is often cited as contributing to the high security of iOS apps, the reality is that iOS apps are not particularly difficult to crack. On jailbroken devices, the methods used to harden IPAs become easily analyzed. For iOS developers, understanding app hardening techniques is essential to increase the difficulty of cracking, especially for financial and gaming apps.
[0003] In existing technologies, code hardening typically involves string encryption, class and method name obfuscation, program code obfuscation, adding a security SDK program for hardening, and providing interfaces for developers to process detection results. However, the above-mentioned obfuscation methods significantly modify the source code, making the code extremely difficult to read and have certain limitations, making it unsuitable for developers of financial and gaming apps to debug.
[0004] There is currently no effective solution to the above problems. Summary of the Invention
[0005] This invention provides a method, apparatus, and electronic device for encrypting memory addresses, which at least solves the technical problem in the prior art where code hardening leads to significant changes in source code, making debugging difficult for developers.
[0006] According to one aspect of the present invention, a method for encrypting a memory address is provided, comprising: obtaining a memory address corresponding to a target application, wherein the memory address is used to access a program script corresponding to the target application, and the language corresponding to the target application is a first language; converting the format of the memory address to obtain a converted memory address, wherein the converted memory address is stored in a target memory space pointed to by a target pointer, and the program language corresponding to the target pointer is a second language, and the first language is different from the second language; and performing convolutional encoding on the converted memory address to obtain an encrypted memory address.
[0007] Furthermore, before converting the memory address to obtain the converted memory address, the process includes: creating a first object based on the memory address, wherein the memory space pointed to by the first object is a binary memory space address; monitoring the creation progress of the first object based on the proxy class, and generating a creation message after detecting that the first object has been successfully created.
[0008] Furthermore, after generating the creation message, the process includes: sending the creation message to the target pointer; and determining the target memory space pointed to by the target pointer.
[0009] Furthermore, the memory address is format-converted to obtain the converted memory address, including converting the memory address from binary format to hexadecimal format to obtain the converted memory address.
[0010] Furthermore, after performing convolutional encoding on the converted memory address to obtain the encrypted memory address, the process includes: decoding the encrypted memory address to obtain the converted memory address; performing inverse conversion on the converted memory address to obtain the memory address; and accessing the program script corresponding to the target application based on the memory address.
[0011] Furthermore, the converted memory address is convolutionally encoded to obtain the encrypted memory address, including: generating a polynomial based on the converted memory address; generating multiple sub-generators based on multiple sub-polynomials; generating a polynomial matrix based on the polynomial and multiple sub-generators; and performing convolution processing on the polynomial matrix to obtain the encrypted memory address.
[0012] Furthermore, the encryption method for memory addresses also includes: the first language is Objective-C, and the second language is C, where Objective-C is the programming language of the iOS operating system.
[0013] According to another aspect of the present invention, a memory address encryption device is also provided, comprising: an acquisition module, configured to acquire a memory address corresponding to a target application, wherein the memory address is used to access the program script corresponding to the target application, and the language corresponding to the target application is a first language; a conversion module, configured to perform format conversion on the memory address to obtain a converted memory address, wherein the converted memory address is stored in a target memory space pointed to by a target pointer, and the program language corresponding to the target pointer is a second language, and the first language is different from the second language; and a convolutional encoding module, configured to perform convolutional encoding on the converted memory address to obtain an encrypted memory address.
[0014] According to another aspect of the present invention, a computer-readable storage medium is also provided, wherein a computer program is stored in the computer-readable storage medium, and the computer program is configured to execute the above-described method for encrypting memory addresses when it is run.
[0015] According to another aspect of the present invention, an electronic device is also provided, the electronic device including one or more processors; a memory for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors are configured to run the programs, wherein the programs are configured to execute the above-described encryption method for memory addresses during runtime.
[0016] According to another aspect of the present invention, a computer program product is also provided, including a computer program / instruction that, when executed by a processor, implements the above-described method for encrypting memory addresses.
[0017] In this embodiment of the invention, the method involves obtaining the memory address corresponding to the target application, then converting the memory address to obtain a converted memory address, and finally performing convolutional encoding on the converted memory address to obtain an encrypted memory address. The memory address is used to access the program script corresponding to the target application, the language corresponding to the target application is a first language, the converted memory address is stored in the target memory space pointed to by the target pointer, the program language corresponding to the target pointer is a second language, and the first language is different from the second language.
[0018] In the above process, firstly, the memory address corresponding to the target application is actively obtained, and the converted memory address is obtained, thereby encrypting the memory address. This solves the technical problem that the source code can be modified significantly due to code hardening, which is not conducive to debugging by developers. Secondly, the converted memory address is convolutionally encoded to obtain the encrypted memory address, which increases the complexity of the memory address and achieves the obfuscation effect on the target application, thereby enhancing the security protection function of the target application.
[0019] Therefore, the solution provided in this application achieves the purpose of encrypting the memory address of the application, thereby realizing the obfuscation effect of the target application, increasing the complexity of the memory address, and enhancing the security protection function of the target application. In turn, it solves the technical problem in the prior art that the source code can be modified too much due to code hardening, which is not conducive to debugging by developers. Attached Figure Description
[0020] The accompanying drawings, which are included to provide a further understanding of the invention and form part of this application, illustrate exemplary embodiments of the invention and, together with their description, serve to explain the invention and do not constitute an undue limitation thereof. In the drawings:
[0021] Figure 1 This is a schematic diagram of an optional memory address encryption method according to an embodiment of the present invention;
[0022] Figure 2 This is a schematic diagram of an optional convolution algorithm according to an embodiment of the present invention;
[0023] Figure 3 This is a schematic diagram of an optional memory address encryption method according to an embodiment of the present invention;
[0024] Figure 4 A schematic diagram of an optional memory address encryption device according to an embodiment of the present invention;
[0025] Figure 5 A schematic diagram of an optional electronic device according to an embodiment of the present invention. Detailed Implementation
[0026] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.
[0027] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0028] It should be noted that all relevant information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for display, data used for analysis, etc.) involved in this invention are information and data authorized by the user or fully authorized by all parties. For example, this system has an interface with the relevant user or organization. Before obtaining relevant information, it needs to send an acquisition request to the aforementioned user or organization through the interface, and obtain the relevant information after receiving consent from the aforementioned user or organization.
[0029] Example 1
[0030] According to an embodiment of the present invention, an embodiment of a method for encrypting memory addresses is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0031] Figure 1 This is a schematic diagram of a memory address encryption method according to an embodiment of the present invention, as shown below. Figure 1 As shown, the method includes the following steps:
[0032] Step S101: Obtain the memory address corresponding to the target application, wherein the memory address is used to access the program script corresponding to the target application, and the language corresponding to the target application is the first language.
[0033] In step S101, the memory address corresponding to the target application can be obtained based on devices such as systems, servers, and electronic devices. In this embodiment, the memory address corresponding to the target application can be obtained through the system.
[0034] Optionally, the target application can be a financial or banking app, which can be accessed via a memory address.
[0035] Optionally, the target application can be written in Objective-C, a binary-based language. Objective-C adds object-oriented features (encapsulation, inheritance, polymorphism) to the C language. Objective-C is fully compatible with C, and C and even C++ code can be mixed in the code. Objective-C is the primary programming language for OS X and iOS operating systems.
[0036] Step S102: Convert the format of the memory address to obtain the converted memory address. The converted memory address is stored in the target memory space pointed to by the target pointer. The programming language corresponding to the target pointer is the second language, which is different from the first language.
[0037] In step S102, the system converts the obtained memory address into a hexadecimal memory address by converting the binary memory address into a hexadecimal memory address through the target pointer and stores it in the target memory space it points to. This achieves the conversion of the memory address into the underlying hexadecimal memory address, resulting in the converted memory address. The target pointer is a pointer to the underlying C language.
[0038] Step S103: Perform convolutional encoding on the converted memory address to obtain the encrypted memory address.
[0039] In step S103, the system obtains the encrypted memory address by performing convolutional encoding on the converted memory address. For example, when the converted memory address is a digital signal encoding sequence in the form of symbols 0x0101..., such as... Figure 2 As shown, the input to the convolution algorithm can be a hexadecimal digital signal. The converted memory address serves as the input for the convolutional encoding. Each bit is sequentially input to the input terminals shown in the diagram. In the diagram, b1, b2, and b3 are called registers, each storing 1 bit of the symbol and initialized to 0. The three adders below each have their own input terminals and outputs c1, c2, and c3. Based on the corresponding registers and inputs shown in the diagram, the inputs participate in the calculations of each adder, yielding the result for each adder. Therefore, each 1-bit input corresponds to a 3-bit output (c1, c2, c3). For example, inputting a 1 will output 101, inputting a 0 will output 100, and so on. If the converted memory address sequence is 0x1010, then the convolutional sequence G will be 101100101100, which is 12 bits.
[0040] Based on the scheme defined in steps S101 to S103 above, it can be seen that the method involves obtaining the memory address corresponding to the target application, then converting the memory address to obtain the converted memory address, and finally performing convolutional encoding on the converted memory address to obtain the encrypted memory address. The memory address is used to access the program script corresponding to the target application, the language of the target application is the first language, the converted memory address is stored in the target memory space pointed to by the target pointer, and the program language corresponding to the target pointer is the second language. The first language is different from the second language.
[0041] It is worth noting that in the above process, the memory address corresponding to the target application is first actively obtained, and the memory address is converted. Finally, the converted memory address is convolutionally encoded to obtain the encrypted memory address, which increases the complexity of the memory address and achieves the obfuscation effect on the memory address of the target application. This enhances the security protection function of the target application and solves the technical problem that code hardening leads to large changes in the source code, which is not conducive to debugging by developers.
[0042] Therefore, the solution provided in this application achieves the purpose of encrypting the memory address of the application, thereby realizing the obfuscation effect of the target application, increasing the complexity of the memory address, and enhancing the security protection function of the target application. In turn, it solves the technical problem in the prior art that the source code can be modified too much due to code hardening, which is not conducive to debugging by developers.
[0043] In one optional embodiment, before converting the memory address to obtain the converted memory address, the system creates a first object based on the memory address, wherein the memory space pointed to by the first object is a binary memory space address; the creation progress of the first object is monitored based on the proxy class, and a creation message is generated after the first object is detected to have been successfully created.
[0044] Optionally, the first object is an object in the Objective-C language program code, pointing to a binary memory space used to store the memory address of the target application, for example, such as... Figure 3 As shown, an object A is created in Objective-C code. The memory space of this object is a binary memory space with address B, where B is 0011011.
[0045] Optionally, because the target pointer itself is a pointer to the binary address memory region of object A, the target pointer is unaware that the memory space of the first object has been created. This is because the memory reclamation system does not inform the target pointer; it must be determined by the target pointer itself. In this case, such as... Figure 3 As shown, the system creates a proxy class that inherits from a subclass of NSObject in the iOS system code. This proxy class points to the memory space of the first object to monitor changes, releases, or creations in the first object's memory space. When the memory space of the first object changes, is released, or is created, a creation message for the first object is generated. For example, when object A is created (enabled), a subclass C is created, inheriting from the NSObject class. Subclass C points to the memory space 0011011 of object A. Subclass C and object A actually point to the same memory space, so once there are any changes, releases, or creations in this memory space, subclass C can know about them. It essentially acts as a sniffer for object A, detecting whether object A exists, is created, or is being garbage collected.
[0046] Furthermore, after the system generates the creation message, it sends the creation message to the target pointer and then determines the target memory space pointed to by the target pointer.
[0047] Optional, such as Figure 3As shown, the system sends a message about the creation of the first object to the target pointer via the forwardMessage method. After receiving the message, the target pointer will point to a new memory space or the memory space of another specified object to store the memory address of the first object. For example, if the subclass C detects that the memory space 0011011 of object A has been created, it will capture the creation message of this memory space 0011011. This message will be forwarded to pointer D via the forwardMessage method in the system. In this way, pointer D knows that the memory space 0011011 of object B has been created. At this time, pointer D can point to a new memory space or the memory space of another specified object to store the memory address of A.
[0048] It should be noted that by creating a proxy class to notify the target pointer, the underlying memory address is made aware of the change in the object's memory address, thus achieving the purpose of moving the memory address.
[0049] Furthermore, when the system performs format conversion on memory addresses, it converts the memory address from binary format to hexadecimal format to obtain the converted memory address.
[0050] Optionally, the binary memory address of the original OC language program can be converted into a new hexadecimal memory address in C language. Hexadecimal memory address is a computer encoding format, which is essentially a digital signal, such as an encoded sequence that exists in the form of a digital signal like 0x0101...
[0051] It should be noted that the binary memory addresses of the original Objective-C program are converted into hexadecimal memory addresses in the new C language for subsequent convolutional encoding encryption.
[0052] Furthermore, after performing convolutional encoding on the converted memory address to obtain the encrypted memory address, the encrypted memory address is decoded to obtain the converted memory address; then the converted memory address is reverse-converted to obtain the memory address; finally, the program script corresponding to the target application is accessed based on the memory address.
[0053] Optionally, when the target application needs to be used, the encrypted memory address needs to be decoded and reverse-converted to obtain the memory address. The target application can then be located based on the memory address of the target application.
[0054] Furthermore, when the system performs convolutional encoding on the converted memory address to obtain the encrypted memory address, it generates a polynomial based on the converted memory address; then it generates multiple sub-generators based on multiple sub-polynomials; and finally it generates a polynomial matrix based on the polynomial and multiple sub-generators; and finally it performs convolutional processing on the polynomial matrix to obtain the encrypted memory address.
[0055] Optionally, taking the digital signal sequence 0x10111 as the converted memory address as an example, the input digital signal sequence E is passed through a (2, 1, 2) convolutional encoder: increasing from 0 in power order, from left to right:
[0056] C(x) = 1·x + 0·x 1 +1·x 2 +1·x 2 +1·x 4
[0057] Its polynomial expression is: C(x) = 1 + x 2 +x 3 +x 4
[0058] Based on the encoder connections, the upper adder consists of three inputs: left, middle, and right, and the sub-generator polynomial is:
[0059] g(1,1)(x)=1+x+x 2
[0060] The adder below consists of three inputs, one on the left and one on the right, and its sub-generator polynomial is: g(1,2)(x)=1+x 2 .
[0061] Based on the above sub-generator polynomials, written in binary form, we obtain the sub-generators g(1,1)=(111) and g(1,2)=(101).
[0062] Generate polynomial matrices:
[0063] G(x)=[g(1,1)(x), g(1,2)(x)], G(x)=[1+x+x^2, 1+x^2]
[0064] The output code sequence of a convolutional encoder consists of n_0 subsequences, namely:
[0065] c(x) = [c(x), c(x), ..., c(x)], and c(x) = C(x)G(x).
[0066] Where c(1)(x)=C(x)g(1,1)(x) and c(2)(x)=C(x)g(1,2)(x)
[0067] c(1)(x)=C(x)g(1,1)(x)=(1+x^2+x^3+x^4)(1+x+x^2)=1+x+x^4+x^6
[0068] In binary form, c_1 = 1100101.
[0069] c(2)(x)=C(x)g(1,2)(x)=(1+x^2+x^3+x^4)(1+x^2)=1+x^3+x^5+x^6
[0070] In binary form, c_2 = 1001011
[0071] The two paths are merged to obtain the calculated convolution result c = 11100001100111. The convolution result is the encrypted memory address.
[0072] It should be noted that convolutional coding is used to encode memory addresses into more complex codes and transform them into digital signals, thereby increasing the complexity of memory addresses and making them more difficult for target applications to crack.
[0073] In one optional embodiment, the first language corresponding to the target application is Objective-C, and the second language is C, wherein Objective-C is the programming language of the iOS operating system.
[0074] Therefore, this invention provides a method for encrypting memory addresses. This method uses a scheme based on an Objective-C proxy class to notify the target pointer in C language, thereby performing hexadecimal shifting of the memory address of the first object's memory space. After convolutional encoding, the complexity of the memory address is increased, achieving obfuscation effects for iOS apps, especially financial apps, enhancing the app's security protection functions. This solves the technical problem in existing technologies where code hardening leads to significant changes in the source code, making debugging difficult for developers.
[0075] Example 2
[0076] According to an embodiment of the present invention, an embodiment of a memory address encryption device is provided, wherein, Figure 4 A schematic diagram of an optional memory address encryption device according to an embodiment of the present invention is shown below. Figure 4 As shown, the device includes:
[0077] The acquisition module 401 is used to acquire the memory address corresponding to the target application, wherein the memory address is used to access the program script corresponding to the target application, and the language corresponding to the target application is the first language; the conversion module 402 is used to convert the format of the memory address to obtain the converted memory address, wherein the converted memory address is stored in the target memory space pointed to by the target pointer, and the program language corresponding to the target pointer is the second language, and the first language is different from the second language; the convolutional encoding module 403 is used to perform convolutional encoding on the converted memory address to obtain the encrypted memory address, wherein the first language is Objective-C and the second language is C, wherein Objective-C is the programming language of the iOS operating system.
[0078] It should be noted that the above-mentioned acquisition module 401, conversion module 402 and convolutional coding module 403 correspond to steps S101 to S103 in the above embodiments. The three modules and the corresponding steps implement the same examples and application scenarios, but are not limited to the content disclosed in the above embodiment 1.
[0079] Optionally, the encryption device for the memory address also includes: a creation module and a monitoring module; the creation module is used to create a first object based on the memory address, wherein the memory space pointed to by the first object is a binary memory space address; the monitoring module is used to monitor the creation progress of the first object based on the proxy class, and generate a creation message after detecting that the first object has been successfully created.
[0080] Optionally, the memory address encryption device further includes: a sending module and a first determining module; the sending module is used to send a creation message to the target pointer; the first determining module is used to determine the target memory space pointed to by the target pointer.
[0081] Optionally, the conversion module further includes: a first conversion module; the first conversion module is used to convert the memory address from binary format to hexadecimal format to obtain the converted memory address.
[0082] Optionally, the memory address encryption device further includes: a decoding module, an inverse conversion module, and an access module; the decoding module is used to decode the encrypted memory address to obtain the converted memory address; the inverse conversion module is used to inverse convert the converted memory address to obtain the memory address; and the access module is used to access the program script corresponding to the target application based on the memory address.
[0083] Optionally, the memory address encryption device further includes: a first generation module, a second generation module, a third generation module, and a processing module; the first generation module is used to generate a polynomial based on the converted memory address; the second generation module is used to generate multiple sub-generators based on multiple sub-polynomials; the third generation module is used to generate a polynomial matrix based on the polynomial and multiple sub-generators; the processing module is used to perform convolution processing on the polynomial matrix to obtain the encrypted memory address.
[0084] Example 3
[0085] According to another aspect of the present invention, a computer-readable storage medium is also provided, wherein a computer program is stored in the computer-readable storage medium, and the computer program is configured to execute the above-described method for encrypting memory addresses when it is run.
[0086] Example 4
[0087] According to another aspect of the present invention, an electronic device is also provided, wherein, Figure 5 This is a schematic diagram of an optional electronic device according to an embodiment of the present invention, such as... Figure 5 As shown, the electronic device includes one or more processors; and a memory for storing one or more programs, which, when executed by one or more processors, cause the one or more processors to run the programs, wherein the programs are configured to execute the encryption method of the memory address described above during runtime.
[0088] Example 5
[0089] According to another aspect of the present invention, a computer program product is also provided, including a computer program / instruction that, when executed by a processor, implements the above-described method for encrypting memory addresses.
[0090] The sequence numbers of the above embodiments of the present invention are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0091] In the above embodiments of the present invention, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0092] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units can be a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual coupling, direct coupling, or communication connection may be through some interfaces; the indirect coupling or communication connection of units or modules may be electrical or other forms.
[0093] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0094] Furthermore, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0095] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0096] The above are merely preferred embodiments of the present invention. It should be noted that those skilled in the art can make various improvements and modifications without departing from the principle of the present invention, and these improvements and modifications should also be considered within the scope of protection of the present invention.
Claims
1. A method for encrypting memory addresses, characterized in that, include: Obtain the memory address corresponding to the target application, wherein the memory address is used to access the program script corresponding to the target application, and the language corresponding to the target application is a first language; The memory address is format-converted to obtain a converted memory address, wherein the converted memory address is stored in the target memory space pointed to by the target pointer, and the programming language corresponding to the target pointer is a second language, and the first language is different from the second language; The converted memory address is convolutionally encoded to obtain the encrypted memory address; The process of convolutionally encoding the transformed memory address to obtain the encrypted memory address includes: generating a polynomial based on the transformed memory address; generating multiple sub-generators based on multiple sub-polynomials; generating a polynomial matrix based on the polynomial and the multiple sub-generators; and performing convolution processing on the polynomial matrix to obtain the encrypted memory address.
2. The method according to claim 1, characterized in that, Before performing format conversion on the memory address to obtain the converted memory address, the process includes: A first object is created based on the memory address, wherein the memory space pointed to by the first object is a binary memory space address; The creation process of the first object is monitored based on the proxy class, and a creation message is generated after the first object is detected to have been successfully created.
3. The method according to claim 2, characterized in that, After generating the creation message, the method further includes: Send the creation message to the target pointer; Determine the target memory space pointed to by the target pointer.
4. The method according to claim 1, characterized in that, The memory address is format-converted to obtain the converted memory address, including: The memory address is converted from binary format to hexadecimal format to obtain the converted memory address.
5. The method according to claim 1, characterized in that, After performing convolutional encoding on the converted memory address to obtain the encrypted memory address, the process includes: The encrypted memory address is decoded to obtain the converted memory address; The converted memory address is then reverse-converted to obtain the memory address. Access the program script corresponding to the target application based on the memory address.
6. The method according to claim 1, characterized in that, The first language is Objective-C, and the second language is C. Objective-C is the programming language of the iOS operating system.
7. A memory address encryption device, characterized in that, include: The acquisition module is used to acquire the memory address corresponding to the target application, wherein the memory address is used to access the program script corresponding to the target application, and the language corresponding to the target application is a first language; A conversion module is used to convert the format of the memory address to obtain a converted memory address, wherein the converted memory address is stored in the target memory space pointed to by the target pointer, and the programming language corresponding to the target pointer is a second language, and the first language is different from the second language; The convolutional coding module is used to perform convolutional coding on the converted memory address to obtain the encrypted memory address; The convolutional coding module is further configured to generate a polynomial based on the transformed memory address; generate multiple sub-generators based on multiple sub-polynomials; generate a polynomial matrix based on the polynomial and the multiple sub-generators; and perform convolution processing on the polynomial matrix to obtain the encrypted memory address.
8. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program is configured to execute the encryption method for the memory address as described in any one of claims 1 to 6 when it is run.
9. An electronic device, characterized in that, The electronic device includes one or more processors; A memory for storing one or more programs, which, when executed by one or more processors, cause the one or more processors to be configured to run the programs, wherein the programs are configured to execute the encryption method for the memory address as described in any one of claims 1 to 6 at runtime.
10. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instruction is executed by the processor, it implements the method for encrypting the memory address as described in any one of claims 1 to 6.