IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0620534
(2003-07-16)
|
등록번호 |
US-7287166
(2007-10-23)
|
발명자
/ 주소 |
- Chang,Hoi
- Atallah,Mikhail J.
- Rice,John R.
|
출원인 / 주소 |
- Purdue Research Foundation
|
대리인 / 주소 |
Bose McKinney & Evans LLP
|
인용정보 |
피인용 횟수 :
62 인용 특허 :
38 |
초록
▼
A method of protecting a software program from unauthorized modification, and a system for practicing the method. The method utilizes self-protecting software code. Armed internally with self-defensive mechanisms, a self-protecting software program is tamper-resistant. Whenever its integrity is com
A method of protecting a software program from unauthorized modification, and a system for practicing the method. The method utilizes self-protecting software code. Armed internally with self-defensive mechanisms, a self-protecting software program is tamper-resistant. Whenever its integrity is compromised, a self-protecting software program may become unusable due to software program crashes or other errors, or may generate subtle errors that do not immediately result render the program unusable but still result in incorrect software program execution. A self-protecting software program also may be able to repair itself to restore the integrity of its damaged code. The system comprises a computer program for automatically adding self-protection features to a software program.
대표청구항
▼
We claim: 1. A computer implemented method for adding tamper resistance to a software program, the method comprising: selecting a program block that computes a result necessary for proper execution of the software program, the program block comprising at least one program instruction; selecting a s
We claim: 1. A computer implemented method for adding tamper resistance to a software program, the method comprising: selecting a program block that computes a result necessary for proper execution of the software program, the program block comprising at least one program instruction; selecting a silent guard for the program block; selecting an insertion point in the software program; selecting a program variable in the software program; determining the expected value of the program variable at the insertion point; determining the expected value of the silent guard at the start of execution of the program block; installing a second computation that includes the runtime value of the program variable, such that the result of the second computation is corrupted if the runtime value of the program variable is not equal to the expected value of the program variable at the insertion point; setting the silent guard equal to the result of the second computation, such that the runtime value of the silent guard equals the expected value of the silent guard if the runtime value of the program variable equals the expected value of the program variable at the insertion point; and installing a first computation dependent on the silent guard in the software program, such that if the runtime value of the silent guard is not equal to the expected value of the silent guard then the first computation causes the result computed by the program block to evaluate improperly, causing the software program to execute improperly. 2. The method of claim 1, wherein the second computation uses both the expected value of the program variable and the runtime value of the program variable. 3. A recordable computer media having a tamper resistant software program recorded thereon, the tamper resistant software program comprising: a program variable having an expected value at a first dependency point in the software program and an expected value at a second dependency point in the software program, the expected value at the first dependency point not being equal to the expected value at the second dependency point; a silent guard variable having an expected value at the first dependency point; a mathematical computation that includes the runtime value of the silent guard variable and an expected term, the expected term being set based on the expected value of the silent guard variable at the first dependency point; a supplementary silent guard variable having an expected value at the second dependency point in the software program; wherein the runtime value of the program variable is dependent on the result of the mathematical computation which is dependent on the runtime value of the silent guard variable, such that the runtime value of the program variable will not equal the expected value of the program variable at the first dependency point if the runtime value of the silent guard variable does not equal the expected value of the silent guard variable at the first dependency point, which will cause the software program to execute improperly; and wherein the runtime value of the program variable at the second dependency point is dependent on the runtime value of the supplementary silent guard variable, such that the runtime value of the program variable will not equal the expected value of the program variable at the second dependency point if the runtime value of the supplementary silent guard variable does not equal the expected value of the supplementary silent guard variable at the second dependency point, which will cause the software program to execute improperly. 4. A recordable computer media having a tamper resistant software program recorded thereon, the tamper resistant software program comprising: a program variable having an expected value at a first dependency point in the software program and an expected value at a second dependency point in the software program, the expected value at the first dependency point not being equal to the expected value at the second dependency point; a silent guard variable having an expected value at the first dependency point and an expected value at the second dependency point in the software program; a mathematical computation that includes the runtime value of the silent guard variable and an expected term, the expected term being set based on the expected value of the silent guard variable at the first dependency point; wherein the runtime value of the program variable is dependent on the result of the mathematical computation which is dependent on the runtime value of the silent guard variable, such that the runtime value of the program variable will not equal the expected value of the program variable at the first dependency point if the runtime value of the silent guard variable does not equal the expected value of the silent guard variable at the first dependency point, which will cause the software program to execute improperly; and wherein the runtime value of the program variable at the second dependency point is dependent on the runtime value of the silent guard variable at the second dependency point, such that the runtime value of the program variable will not equal the expected value of the program variable at the second dependency point if the runtime value of the silent guard variable does not equal the expected value of the silent guard variable at the second dependency point, which will cause the software program to execute improperly. 5. The method of claim 1, wherein the insertion point is separated from the installation point of the first computation by a plurality of program instructions of the software program. 6. The recordable computer media of claim 3, wherein the first dependency point is separated from the second dependency point by a plurality of program instructions of the software program. 7. The recordable computer media of claim 4, wherein the first dependency point is separated from the second dependency point by a plurality of program instructions of the software program. 8. A recordable computer media having a tamper resistant software program recorded thereon, the tamper resistant software program comprising: a program block that computes a result necessary for proper execution of the software program, the program block comprising at least one program instruction; a silent guard for the program block, the silent guard having an expected value at the start of execution of the program block; a program variable, the program variable having an expected value at an insertion point in the software program; a second computation that includes the runtime value of the program variable, such that the result of the second computation is corrupted if the runtime value of the program variable is not equal to the expected value of the program variable at the insertion point; the silent guard being set equal to the result of the second computation, such that the runtime value of the silent guard equals the expected value of the silent guard if the runtime value of the program variable equals the expected value of the program variable at the insertion point; a first computation dependent on the silent guard, such that if the runtime value of the silent guard is not equal to the expected value of the silent guard then the first computation causes the result computed by the program block to evaluate improperly, causing the software program to execute improperly. 9. The recordable computer media of claim 8, wherein the second computation uses both the expected value of the program variable and the runtime value of the program variable. 10. The recordable computer media of claim 8, wherein the insertion point is separated from the first computation by a plurality of program instructions of the software program.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.