IP Library Granted Patent US 7,962,952
Granted Patent B2
US 7,962,952 · App. 11/581,109 · Granted Jun 14, 2011

Information processing apparatus that executes program and program control method for executing program

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,962,952
App. No.
11/581,109
Granted
Jun 14, 2011
Kind
B2
Abstract

There is provided a computer readable medium storing a subprogram causing a computer to execute a subprocess that includes a predetermined process performed in response to a call from a caller program and a return process to return the result of the predetermined process to the caller program. The subprocess includes: an address acquisition process that acquires an access destination address to be accessed by the subprogram before executing the return process, the access destination address being assigned to the memory area of the caller program; a determination process that determines whether or not the caller program is a legitimate caller program based on the acquired access destination address; and a termination process that, if it is determined that the caller program is not a legitimate caller program as a result of the determination, terminates execution of the subprocess before executing the return process.

Claims (57)

1. A portable recording device storing a program causing a computer to execute a subprocess that includes a process performed in response to a call from a caller program and a return process to return the result of the process to the caller program, the subprocess comprising:

acquiring an access destination address to be accessed by the program, the access destination address being assigned to a memory area of the caller program;

acquiring memory information about the memory area used by the caller program based on the acquired access destination address, the memory information indicating if the memory area is executable;

determining, when acquired memory information indicates that the memory area is not executable, that the caller program is not legitimate;

if it is determined that the caller program is not legitimate, terminating execution of the subprocess;

determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate caller program based on the acquired access destination address and an original access destination address of a legitimate caller program registered in advance; and

acquiring a start address of the memory area where the caller program is stored, based on the acquired access destination address;

if the acquired start address and a start address of the legitimate caller program registered in advance are different, determining the difference;

correcting the acquired access destination address based on the difference; and

determining if the caller program is legitimate based on the corrected access destination address.

2. The device according to claim 1 , the subprocess further comprising:

acquiring attribute information about the caller program based on the acquired access destination address; and

determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate based on the acquired attribute information and attribute information about a legitimate caller program registered in advance.

3. The device according to claim 1 , the subprocess further comprising:

determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate by referring to an address list with which a group of original access destination addresses of a legitimate caller program is registered.

4. The device according to claim 1 , the subprocess further comprising:

acquiring data which is stored in a range of addresses from a memory, the range being specified based on the acquired access destination address; and

determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate by comparing the acquired data and data to be stored in the range of addresses which is specified with an access destination address of a legitimate caller program.

5. The device according to claim 4 , wherein the range of addresses does not include addresses where such data whose content may be changed by reassignment of addresses is stored.

6. The device according to claim 4 , the subprocess further comprising:

acquiring a start address of the memory area where the caller program is stored, based on the acquired access destination address;

if the acquired start address and a start address of the legitimate caller program registered in advance are different, determining the difference;

correcting the acquired data based on the difference; and

determining if the caller program is legitimate based on the corrected data and the data to be stored.

7. A portable recording medium device storing a program causing a computer to execute a subprocess that includes a process performed in response to a call from a caller program and a return process to return the result of the process to the caller program, the subprocess comprising:

acquiring an access destination address to be accessed by the program, the access destination address being assigned to a memory area of the caller program;

acquiring memory information about the memory area used by the caller program based on the acquired access destination address, the memory information indicating if the memory area is executable;

determining, when acquired memory information indicates that the memory area is not executable, that the caller program is not legitimate;

if it is determined that the caller program is not legitimate, terminating execution of the subprocess;

acquiring data which is stored in a range of addresses from a memory, the range being specified based on the acquired access destination address;

calculating a hash value of the acquired data; and

determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate based on the calculated hash value and a hash value determined from data to be stored in the range of addresses which is specified based on an access destination address of a legitimate caller program registered in advance.

8. The device according to claim 1 , wherein the access destination address is a return destination address to which the program shifts execution control after processes of the program ends.

9. The device according to claim 1 , wherein the access destination address is an address indicated by an argument handed by the caller program when the program is called by the caller program.

10. The device according to claim 9 , wherein the address is a callback address specified as a callback destination by the caller program.

11. An information processing apparatus comprising:

a processor;

said processor executing a subprocess including a process performed in response to a call from a caller program and a return process to return the result of the process to the caller program;

said processor acquiring an access destination address which the subprocess section accesses when executing the subprocess, the access destination address being assigned to a memory area of the caller program;

said processor acquiring memory information about the memory area used by the caller program based on the acquired access destination address, the memory information indicating if the memory area is executable;

said processor determining, when acquired memory information indicates that the memory area is not executable, that the caller program is not legitimate based on the acquired memory information;

said processor terminating, if it is determined that the caller program is not legitimate, execution of the subprocess;

said processor determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate caller program based on the acquired access destination address and an original access destination address of a legitimate caller program registered in advance; and

said processor acquiring a start address of the memory area where the caller program is stored, based on the acquired access destination address;

said processor, if the acquired start address and a start address of the legitimate caller program registered in advance are different, determining the difference;

said processor correcting the acquired access destination address based on the difference; and

said processor determining if the caller program is legitimate based on the corrected access destination address.

12. A program control method for executing a subprogram which performs a subprocess including a process performed in response to a call from a caller program and a return process to return the result of the process to the caller program, comprising:

acquiring, using a processor, an access destination address to be accessed by the subprogram, the access destination address being assigned to a memory area of the caller program;

acquiring, using a processor, memory information about the memory area used by the caller program based on the acquired access destination address, the memory information indicating if the memory area is executable;

determining, using a processor, when acquired memory information indicates that the memory area is not executable, that the caller program is not legitimate based on the acquired access destination address; and

terminating, using a processor, execution of the subprocess if it is determined that the caller program is not legitimate;

determining, when acquired memory information indicates that the memory area is executable, if the caller program is legitimate caller program based on the acquired access destination address and an original access destination address of a legitimate caller program registered in advance; and

acquiring a start address of the memory area where the caller program is stored, based on the acquired access destination address;

if the acquired start address and a start address of the legitimate caller program registered in advance are different, determining the difference;

correcting the acquired access destination address based on the difference; and

determining if the caller program is legitimate based on the corrected access destination address.

Assignments (2)
CHANGE OF NAME Recorded Aug 12, 2021
From: FUJI XEROX CO., LTD.
To: FUJIFILM BUSINESS INNOVATION CORP.
Reel/Frame 058287/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2006
From: SAITO, KAZUO
To: FUJI XEROX CO., LTD.
Reel/Frame 018423/0270 →