IP Library Granted Patent US 8,327,452
Granted Patent B2
US 8,327,452 · App. 12/543,524 · Granted Dec 4, 2012

Program obfuscation apparatus, program obfuscation method and computer readable medium

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 8,327,452
App. No.
12/543,524
Granted
Dec 4, 2012
Kind
B2
Abstract

A program obfuscation method includes: detecting a loop from an obfuscation target program; adding a conditional expression to the obfuscation target program at a preceding stage of the loop, wherein the conditional expression is neither permanently invalid nor permanently valid and adding a flow in which (a) when a logical value of the conditional expression is false, processing of the obfuscation target program proceeds to a start of the loop, and (b) when the logical value of the conditional expression is true, the processing executes a set of executable statements equivalent to a set of executable statements which are ones from the first executable statement to a middle executable statement among a plurality of executable statements in the loop, and then the processing proceeds to an executable statement subsequent to the middle executable statement in the loop.

Claims (20)

1. A non-transitory computer readable medium storing a program causing a computer to execute a process for obfuscating a program, the process comprising:

detecting a loop from an obfuscation target program;

adding a conditional expression to the obfuscation target program at a preceding stage of the loop, wherein the conditional expression is neither permanently invalid nor permanently valid; and

adding a flow in which (a) when a logical value of the conditional expression is false, processing of the obfuscation target program proceeds to a start of the loop, and (b) when the logical value of the conditional expression is true, the processing executes a set of executable statements equivalent to a set of executable statements which are ones from the first executable statement to a middle executable statement among a plurality of executable statements in the loop, and then the processing proceeds to an executable statement subsequent to the middle executable statement in the loop.

2. The computer readable medium according to claim 1 , the process further comprising:

when only a single executable statement exists in the loop, replacing the single executable statement with a plurality of new executable statements equivalent to the single executable statement, wherein

when the logical value of the conditional expression is true, the adding the flow indicates adding a flow in which the processing executes a set of executable statements equivalent to a set of executable statements which are ones from the first executable statement to a middle executable statement among the plurality of new executable statements, and then the processing proceeds to an executable statement subsequent to the middle executable statement in the loop.

3. The computer readable medium according to claim 1 ,

wherein when a determination conditional expression for determining whether the loop should be continued or not is located at the start of the loop, the adding the conditional expression that is neither permanently invalid nor permanently valid indicates adding at a preceding stage of the loop a conditional expression that is inevitably false when the logical value of the determination conditional expression is false.

4. The computer readable medium according to claim 1 ,

wherein the equivalent executable statement set comprises an expression different from that of the set of executable statements which are ones from the first executable statement to the middle executable statement among the plurality of executable statements in the loop.

5. A program obfuscation method comprising:

detecting, by the at least one processor a loop from an obfuscation target program;

adding, by the at least one processor a conditional expression to the obfuscation target program at a preceding stage of the loop, wherein the conditional expression is neither permanently invalid nor permanently valid; and

adding, by the at least one processor a flow in which (a) when a logical value of the conditional expression is false, processing of the obfuscation target program proceeds to a start of the loop, and (b) when the logical value of the conditional expression is true, the processing executes a set of executable statements equivalent to a set of executable statements which are ones from the first executable statement to a middle executable statement among a plurality of

executable statements in the loop, and then the processing proceeds to an executable statement subsequent to the middle executable statement in the loop.

6. A program obfuscation apparatus comprising:

a hardware detection section that detects a loop from an obfuscation target program; and a hardware addition section that:

(i) adds a conditional expression to the obfuscation target program at a preceding stage of the loop, wherein the conditional expression is neither permanently invalid nor permanently valid and

(ii) adds a flow in which (a) when a logical value of the conditional expression is false, processing proceeds to a start of the loop, and (b) when the logical value of the conditional expression is true, the processing executes a set of executable statements equivalent to a set of executable statements which are ones from the first executable statement to a middle executable statement among a plurality of executable statements in the loop, and then the processing proceeds to an executable statement subsequent to the middle executable statement in the loop.

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 Aug 19, 2009
From: ONEDA, YUICHI
To: FUJI XEROX CO., LTD.
Reel/Frame 023114/0947 →