IP Library Granted Patent US 10,229,277
Granted Patent B2
US 10,229,277 · App. 14/847,975 · Granted Mar 12, 2019

Code processing apparatus and computer program product

Inventors: Yurie Shinke (Ota, JP); Fukutomo Nakanishi (Fuchu, JP); Hiroyoshi Haruki (Kawasaki, JP); Mikio Hashimoto (Bunkyo, JP); Fumihiko Sano (Kawasaki, JP)
Assignees: Kabushiki Kaisha Toshiba; TOSHIBA SOLUTIONS CORPORATION
G06F21/6209G06F8/54G06F8/70G06F9/44521G06F21/12G06F21/14G06F21/602
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 10,229,277
App. No.
14/847,975
Granted
Mar 12, 2019
Kind
B2
Abstract

According to an embodiment, a code processing apparatus includes a determining unit, a concealing unit, an instructing unit, and an unconcealing unit. The determining unit is configured to determine, based on relocation information included in first code data that includes a code body and relocation information representing a portion of the code body to be relocated by a linker, a first portion including at least a part of the code body that is other than the portion. The concealing unit is configured to conceal the first portion. The instructing unit is configured to instruct the linker to process the first code data having the first portion concealed. The unconcealing unit is configured to unconceal the concealed portion of second code data that is generated from the first code data by the linker.

Claims (58)

1. A code processing apparatus comprising:

processing circuitry configured to:

determine, based on relocation information included in first code data that includes a pre-linked code body and relocation information representing a portion of the code body to be relocated by a linker, a first portion including at least a part of the code body excluding the portion which the linker rewrites along with relocation;

conceal the first portion of a pre-linked code body included in the first code data before the linker performs relocation;

instruct the linker to process the first code data having the first portion concealed;

unconceal the concealed portion of second code data that is generated from the first code data by the linker; and

identify a position of the concealed portion of the second code data based on symbol information output from the linker and a symbol indicating a position in the code body, and unconceals the identified concealed portion.

2. The code processing apparatus according to claim 1 , wherein the processing circuitry is further configured to:

acquire an unconcealing code for unconcealing the concealed portion, and

unconceal the concealed portion of the second code data using the acquired unconcealing code.

3. The code processing apparatus according to claim 2 , wherein the processing circuitry is further configured to:

conceal the first portion by replacing an original code of the first portion with a dummy code, and

acquire the original code from the first code data as the unconcealing code.

4. The code processing apparatus according to claim 2 , wherein the processing circuitry is further configured to:

conceal the first portion by encrypting an original code of the first portion, and

acquire the unconcealing code by decrypting the concealed portion of the second code data.

5. The code processing apparatus according to claim 1 , wherein the processing circuitry is further configured to:

determine a concealing method based on the relocation information, and

conceal the first portion using the concealing method determined by the determining.

6. The code processing apparatus according to claim 1 , wherein processing circuitry is further configured to:

record a unique tag for identification to a part of the first portion, and

identify a position of the concealed portion of the second code data based on the tag, and unconceals the identified concealed portion.

7. The code processing apparatus according to claim 1 , wherein the processing circuitry is further configured to:

receive the first code data under protection from another apparatus and remove the protection, and

determine the first portion based on the relocation information included in the first code data having the protection removed.

8. The code processing apparatus according to claim 7 , wherein the processing circuitry is further configured to:

receive one piece into which a plurality of pieces of first code data having been merged, and

separate the one piece into the pieces of first code data.

9. The code processing apparatus according to claim 1 , wherein the processing circuitry is further configured to:

output the second code data with the concealed portion unconcealed under protection.

10. The code processing apparatus according to claim 9 , wherein the processing circuitry is further configured to:

merge a plurality of pieces of second code data having the concealed portion unconcealed into one piece, and

output the one piece into which the pieces of second code data are merged under protection.

11. A code processing apparatus comprising:

processing circuitry configured to:

acquire a pre-linked concealed code that conceals a first portion of a pre-linked code body and a protected unconcealing code for unconcealing the first portion, the pre-linked concealed code and the protected unconcealing code being output from another apparatus;

instruct a linker to perform processing with respect to the acquired pre-linked concealed code;

unconceal the concealed portion of second code data generated from the first code data by the linker using the acquired protected unconcealing code; and

identify a position of the concealed portion of the second code data based on symbol information output from the linker and a symbol indicating a position in the code body, and unconceals the identified concealed portion.

12. A computer program product comprising a non-transitory computer-readable medium containing a program executed by a computer, the program causing the computer to execute:

determining, based on relocation information included in first code data that includes a pre-linked code body and relocation information representing a portion of the code body to be relocated by a linker, a first portion including at least a part of the code body excluding the portion which the linker rewrites along with relocation;

concealing the first portion of the pre-linked code body included in the first code data before the linker performs relocation;

instructing the linker to process the first code data having the first portion concealed;

unconcealing the concealed portion of second code data that is generated the first code data by the linker; and

identify a position of the concealed portion of the second code data based on symbol information output from the linker and a symbol indicating a position in the code body, and unconceals the identified concealed portion.

13. A computer program product comprising a non-transitory computer-readable medium containing a program executed by a computer, the program causing the computer to execute:

acquiring a pre-linked concealed code that conceals a first portion of a pre-linked code body and a protected unconcealing code for unconcealing the first portion, the pre-linked concealed code and the protected unconcealing code being output from another apparatus;

instructing a linker to perform processing with respect to the acquired pre-linked concealed code;

unconcealing the concealed portion of second code data generated from the first code data by the linker using the acquired protected unconcealing code; and

identifying a position of the concealed portion of the second code data based on symbol information output from the linker and a symbol indicating a position in the code body, and unconcealing the identified concealed portion.

14. A code processing apparatus comprising:

processing circuitry configured to:

determine, based on relocation information included in first code data that includes a pre-linked code body and relocation information representing a portion of the code body to be relocated by a linker, a first portion including at least a part of the code body excluding the portion which the linker rewrites along with relocation;

conceal the first portion of a pre-linked code body included in the first code data before the linker performs relocation;

instruct the linker to process the first code data having the first portion concealed;

unconceal the concealed portion of second code data that is generated from the first code data by the linker;

record a unique tag for identification to a part of the first portion; and

identify a position of the concealed portion of the second code data based on the tag, and unconceals the identified concealed portion.

Assignments (3)
CHANGE OF NAME Recorded Feb 8, 2021
From: TOSHIBA SOLUTIONS CORPORATION
To: TOSHIBA DIGITAL SOLUTIONS CORPORATION
Reel/Frame 055185/0728 →
CHANGE OF NAME Recorded Mar 8, 2019
From: TOSHIBA SOLUTIONS CORPORATION
To: TOSHIBA DIGITAL SOLUTIONS CORPORATION
Reel/Frame 048547/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2015
From: SHINKE, YURIE; NAKANISHI, FUKUTOMO; HARUKI, HIROYOSHI; HASHIMOTO, MIKIO; SANO, FUMIHIKO
To: KABUSHIKI KAISHA TOSHIBA; TOSHIBA SOLUTIONS CORPORATION
Reel/Frame 037190/0434 →
Continuity (2)
Continuation PCTJP2013057840 · Mar 19, 2013
Related Publication 20150379290A1 · Dec 31, 2015