최소 단어 이상 선택하여야 합니다.
최대 10 단어까지만 선택 가능합니다.
다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
NTIS 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
DataON 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
Edison 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
Kafe 바로가기국가/구분 | United States(US) Patent 등록 |
---|---|
국제특허분류(IPC7판) |
|
출원번호 | US-0556420 (2012-07-24) |
등록번호 | US-8930719 (2015-01-06) |
발명자 / 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 | 피인용 횟수 : 2 인용 특허 : 376 |
An apparatus and method for encoding and decoding additional information into a digital information in an integral manner. More particularly, the invention relates to a method and device for data protection.
1. A computing device for running application software, comprising: memory designed to store data in non transitory form;an operating system;wherein said memory stores an application software;wherein said application software comprises (1) a memory scheduler code resource and (2) other code resource
1. A computing device for running application software, comprising: memory designed to store data in non transitory form;an operating system;wherein said memory stores an application software;wherein said application software comprises (1) a memory scheduler code resource and (2) other code resources;wherein said application software is designed to call said memory scheduler code resource;wherein said memory scheduler code resource, when called, functions to shuffle said other code resources in said memory; andwherein said memory scheduler code resource is designed to modify a stack frame in said memory. 2. A system for executing an application on a computer system, comprising: a computer system comprising a processor for processing instructions and memory designed to store data in non transitory form;a software application comprising a plurality of executable code resources loaded in said memory;said memory storing a plurality of addresses, each one of said plurality of addresses associated with an address of a corresponding one of said plurality of executable code resources;wherein a first one of said plurality of executable code resources is designed to relocate at least each of the other ones of said plurality of executable code resources to different addresses within said memory during execution of said software application, using said processor; andwherein said first one of said plurality of executable code resources is designed to modify a stack frame in said memory. 3. The device of claim 1 further comprising a program counter designed to store values and wherein said operating system is designed to enable application software to modify a value stored by said program counter. 4. The device of claim 1 further comprising a program counter designed to store values and wherein said memory scheduler code resource is designed to modify a value stored by said program counter. 5. The device of claim 1 wherein said memory scheduler code resource is designed to modify a calling address, and to copy itself to a memory location associated with said calling address. 6. The device of claim 1 wherein said operating system is designed to call said memory scheduler code resource. 7. The device of claim 1 wherein said memory scheduler code resource maintains a list of addresses in said memory, wherein each one of said addresses is associated with one of the code resources. 8. The device of claim 1 wherein said memory scheduler code resource maintains a list of addresses in said memory associated with said other code resources in said memory. 9. The device of claim 1 further comprising a processor for processing instructions defined by said application software. 10. A system for executing application software code, comprising: a memory designed to store data in non transitory form, and storing executable code resources;wherein said executable code resources comprise a memory scheduler and other executable code resources;wherein said memory scheduler is designed to shuffle said other executable code resources in said memory; andwherein said memory scheduler is designed to modify a stack frame in said memory. 11. The system of claim 10, wherein said memory scheduler is designed to shuffle said other executable code resources randomly in said memory. 12. The system of claim 10 wherein said memory scheduler is designed to shuffle said other executable code resources in said memory such that the shuffling results in a change in location in said memory of at least one of said other executable code resources. 13. The system of claim 10 further comprising a program counter designed to store values and wherein said memory scheduler is designed to modify values stored by said program counter. 14. The system of claim 10 wherein said memory scheduler maintains a list of addresses in said memory of at least one code resource. 15. The system of claim 10 wherein said memory scheduler maintains a list of addresses in said memory of said other executable code resources. 16. The system of claim 10 designed to call said memory scheduler. 17. The system of claim 10 wherein said application software code is designed to call said memory scheduler. 18. The system of claim 2 wherein said first one of said plurality of executable code resources is a memory scheduler code resource, wherein, when said memory scheduler code resource is called, said memory scheduler code resource functions to shuffle said memory scheduler code resource randomly in said memory. 19. The system of claim 2 wherein said first one is also designed to relocate itself to a different address during execution of said software application. 20. The system of claim 2 wherein said system is designed to repeatedly relocate said at least each of the other ones of said plurality of executable code resources to different addresses within said memory during execution of said software application. 21. A system comprising: a processor;a memory designed to store data in non transitory form;wherein said processor is coupled to said memory;wherein said system is configured to load a program comprising code resources into said memory and to shuffle at least one code resource into a different location in said memory after said program has been loaded into said memory; andwherein one of said code resources is designed to modify a stack frame in said memory. 22. A system comprising: a processor designed to process instructions;a memory designed to store data in non transitory form;wherein said processor is coupled to said memory;wherein said system is configured to load an executable program comprising at least two code resources into said memory and to randomize the location of at least one of the at least two code resources in the said memory, using said processor; andwherein one of the at least two code resources is designed to modify a stack frame in said memory. 23. A system for executing a program comprising code, comprising: a processor designed to process instructions;a memory designed to store data in non transitory form;wherein said processor is coupled to said memory;a memory scheduler configured to randomize location of code defining a code resource, in said memory, using said processor; andwherein said memory scheduler is configured to modify a stack frame in said memory. 24. The system of claim 23 wherein said memory scheduler is configured to repeatedly randomize the location of at least a portion of the code in said memory. 25. The device of claim 1 wherein each one of said other code resources comprises a sequence of instructions that have sequential addresses in said memory. 26. The device of claim 25 wherein each one of said other code resources defines a function or procedure. 27. The device of claim 1 wherein each one of said other code resources comprises a sequence of instructions that immediately follow one another in said memory. 28. The device of claim 27 wherein each one of said other code resources defines a function or procedure. 29. A system comprising: a processor;a memory coupled to said processor;wherein said memory is designed to store data in non transitory form;wherein said system is configured to load a program comprising code resources into said memory and to shuffle at least a subset of said code resources into a different location in said memory after said program has been loaded into said memory; andwherein one of said code resources is configured to modify a stack frame in said memory. 30. The system of claim 2 wherein each one of said plurality of executable code resources loaded in said memory comprises a sequence of instructions that have sequential addresses in said memory. 31. The system of claim 30 wherein each one of said plurality of executable code resources loaded in said memory defines a function or procedure. 32. The system of claim 31 wherein each one of said plurality of executable code resources loaded in said memory is an essential code resource. 33. The system of claim 2 wherein each one of said plurality of executable code resources loaded in said memory comprises a sequence of instructions, and the sequence of instructions for one of said plurality of executable code resources loaded in said memory has memory addresses that immediately follow one another. 34. The system of claim 33 wherein each one of said plurality of executable code resources loaded in said memory defines a function or procedure. 35. The system of claim 33 wherein said system comprises one of a set-top box; a cellular phone; a smart television; and a personal digital assistant (PDA). 36. A system for protecting a software application, said software application comprising a plurality of executable code resources, said system comprising: a processor;memory for storing data in non transitory form;wherein said processor is coupled to said memory for transmitting data there between;wherein, when executing said software application, said system is configured to store in said memory an original plurality of code resource addresses;wherein, when executing said software application, said system is configured to store a plurality of executable code resources for executing said software application;wherein each one of said original plurality of code resource addresses specifies an address in said memory of one of said plurality of executable code resources;wherein, when executing said software application, said system is configured to (1) relocate each one of said plurality of executable code resources in said memory so that each one of said plurality of executable code resources is specified by each one of a new plurality of code resource addresses and (2) store in said memory each one of said new plurality of code resource addresses; andwherein one of said plurality of executable code resources is configured to modify a stack frame in said memory. 37. The system of claim 36, wherein said system is configured to repeatedly (1) relocate each one of said plurality of executable code resources in said memory so that each one of said plurality of executable code resources is specified by each one of a new plurality of code resource addresses and (2) store in said memory each one of said new plurality of code resource addresses. 38. The system of claim 36, wherein each one of said plurality of executable code resources is relocated to random addresses. 39. The system of claim 36, wherein each one said original plurality of code resource addresses specifies an entry point of an original location in said memory of each one of said plurality of executable code resources. 40. The system of claim 36, wherein each one said new plurality of code resource addresses specifies an entry point of a new location in said memory of each one of said plurality of executable code resources. 41. The system of claim 36 wherein each one of said plurality of executable code resources is stored in sequential locations in said memory. 42. The system of claim 41 wherein each one of said plurality of executable code resources executes a function or procedure when called. 43. The system of claim 36 wherein each one of said plurality of executable code resources executes a function or procedure. 44. The system of claim 36 wherein said system is configured to relocate each one of said plurality of executable code resources in said memory in response to a call to an executable code resource of said plurality of executable code resources. 45. The system of claim 44 wherein said system is configured to update a reference to said executable code resource in said memory to reflect a new address in said memory of said executable code resource resulting from relocating said executable code resource. 46. The system of claim 45 wherein said executable code resource is a memory scheduler which is called periodically, or at random or pseudo random intervals. 47. A computer program product storing in non-transitory form instructions defining a software program, which instructions, when loaded into a computer system instruct the computer system to perform the following steps: load said program into memory of said computer system;wherein said software program, as loaded into memory, comprises a plurality of code resources;shuffle locations in said memory of at least a subset of said plurality of code resources; andwherein said shuffle comprises one of said plurality of code resources modifying a stack frame in said memory. 48. The product of claim 47 wherein each one of said subset of said code resources comprises a sequence of instructions that have sequential addresses in said memory. 49. The product of claim 47 wherein each one of said subset of said code resources defines a function or procedure. 50. The product of claim 47 wherein said subset comprises at least two code resources.
Copyright KISTI. All Rights Reserved.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.