CA2191411A1 - System and method for runtime optimization of private variable function calls in a secure interpreter - Google Patents
System and method for runtime optimization of private variable function calls in a secure interpreterInfo
- Publication number
- CA2191411A1 CA2191411A1 CA002191411A CA2191411A CA2191411A1 CA 2191411 A1 CA2191411 A1 CA 2191411A1 CA 002191411 A CA002191411 A CA 002191411A CA 2191411 A CA2191411 A CA 2191411A CA 2191411 A1 CA2191411 A1 CA 2191411A1
- Authority
- CA
- Canada
- Prior art keywords
- executed
- interpreter
- private variable
- modified
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Abstract
A secure program interpreter performs a special check the first time itexecutes a method call to determine if the sole purpose of the called method is to access the value of private variable, modify the value of a private variable, or return a constant value. When this is the case, the interpreter's internal representation of the method being executed is modified so as to directly access the private variable of the called method, or to directly accessthe stored constant of the called method. The modified method representation uses special "privileged" load and store instructions, not available in normal source code programs, that access private variables and constants outside the method being executed without causing a security violation to be flagged. When the modified portion of the method is executed, the private variable or constant is accessed directly by the executed method using a privileged load or store instruction, the use of which avoids the flagging of a security violation by the program interpreter. When execution of the program is completed, the modified internal representation of the method is flushed, such that when the program is executed again said interpreter generates a new working representation of the aforementioned method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/569,754 US5794044A (en) | 1995-12-08 | 1995-12-08 | System and method for runtime optimization of private variable function calls in a secure interpreter |
US08/569,754 | 1995-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2191411A1 true CA2191411A1 (en) | 1997-06-09 |
CA2191411C CA2191411C (en) | 2003-05-06 |
Family
ID=24276720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002191411A Expired - Fee Related CA2191411C (en) | 1995-12-08 | 1996-11-27 | System and method for runtime optimization of private variable function calls in a secure interpreter |
Country Status (10)
Country | Link |
---|---|
US (1) | US5794044A (en) |
EP (1) | EP0778521B1 (en) |
JP (1) | JPH1040107A (en) |
KR (1) | KR100478025B1 (en) |
CN (1) | CN1117318C (en) |
AU (1) | AU712005B2 (en) |
CA (1) | CA2191411C (en) |
DE (1) | DE69621751T2 (en) |
SG (1) | SG75109A1 (en) |
TW (1) | TW341687B (en) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966534A (en) * | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
US6385660B2 (en) | 1997-10-06 | 2002-05-07 | Sun Microsystems, Inc. | Site specific message dispatch in object-oriented systems |
US6295607B1 (en) * | 1998-04-06 | 2001-09-25 | Bindview Development Corporation | System and method for security control in a data processing system |
US6061520A (en) * | 1998-04-07 | 2000-05-09 | Sun Microsystems, Inc. | Method and system for performing static initialization |
US6681387B1 (en) | 1999-12-01 | 2004-01-20 | Board Of Trustees Of The University Of Illinois | Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit |
DE60142136D1 (en) * | 2000-02-21 | 2010-07-01 | Panasonic Corp | Linking Java class files for embedded devices |
US6978448B1 (en) * | 2000-06-12 | 2005-12-20 | Sun Microsystems, Inc. | Method and apparatus for rewriting bytecodes to minimize runtime checks |
US7086044B2 (en) * | 2001-03-22 | 2006-08-01 | International Business Machines Corporation | Method, article of manufacture and apparatus for performing automatic intermodule call linkage optimization |
US7028293B2 (en) * | 2001-03-30 | 2006-04-11 | Microsoft Corporation | Constant return optimization transforming indirect calls to data fetches |
FR2827974B1 (en) * | 2001-07-26 | 2005-02-11 | Trusted Logic | PROCESS FOR THE COMPRESSION OF A CODE INTERPRETED BY SEMANTIC ANALYSIS |
FR2828296B1 (en) * | 2001-08-03 | 2003-12-12 | Trusted Logic | OBJECT CODE COMPRESSION METHOD INTERPRETED BY FACTORING TREE EXPRESSIONS |
US20030131347A1 (en) * | 2001-10-12 | 2003-07-10 | Allison David S. | Method and apparatus for runtime binding of object members |
DE10216602A1 (en) * | 2002-04-15 | 2003-10-30 | Giesecke & Devrient Gmbh | Optimization of compiler generated program code |
US7181744B2 (en) * | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
JP4012517B2 (en) * | 2003-04-29 | 2007-11-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Managing locks in a virtual machine environment |
US20060059471A1 (en) * | 2004-09-15 | 2006-03-16 | Microsoft Corporation | Calling non-public types |
US7797690B2 (en) | 2005-03-15 | 2010-09-14 | International Business Machines Corporation | System, method and program product to optimize code during run time |
US20090007068A1 (en) * | 2007-06-27 | 2009-01-01 | Microsoft Corporation | Accessing Non-Public Code |
US8671456B2 (en) | 2012-06-26 | 2014-03-11 | Sap Portals Israel Ltd. | Accessing restricted resources in computer programming |
US10657262B1 (en) * | 2014-09-28 | 2020-05-19 | Red Balloon Security, Inc. | Method and apparatus for securing embedded device firmware |
TWI552781B (en) * | 2014-09-30 | 2016-10-11 | Liquid suction and discharge filter | |
US9729671B2 (en) * | 2014-10-05 | 2017-08-08 | YScope Inc. | Systems and processes for computer log analysis |
US9841972B2 (en) * | 2014-12-17 | 2017-12-12 | Cisco Technology, Inc. | Securing secret information in source code verification and at runtime |
CN108614702B (en) * | 2016-12-28 | 2022-02-11 | 阿里巴巴集团控股有限公司 | Byte code optimization method and device |
CN109032572B (en) * | 2017-06-08 | 2023-03-31 | 阿里巴巴集团控股有限公司 | Method for Java program method internal connection based on byte code |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
US5210874A (en) * | 1988-03-22 | 1993-05-11 | Digital Equipment Corporation | Cross-domain call system in a capability based digital data processing system |
US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
AU628264B2 (en) * | 1990-08-14 | 1992-09-10 | Oracle International Corporation | Methods and apparatus for providing a client interface to an object-oriented invocation of an application |
US5280614A (en) * | 1990-08-21 | 1994-01-18 | International Business Machines Corporation | Apparatus and method for controlling access to data using domains |
US5307499A (en) * | 1990-11-30 | 1994-04-26 | Singapore Computer Systems Limited | Interpretive object-oriented facility which can access pre-compiled classes |
JPH05257664A (en) * | 1991-12-12 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | System and method for generating version-independent object-oriented application program |
US5319784A (en) * | 1991-12-18 | 1994-06-07 | International Business Machines Corp. | System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure |
JP2794523B2 (en) * | 1993-11-26 | 1998-09-10 | 日本アイ・ビー・エム株式会社 | Inline expansion method in programming languages with array functions |
US5590266A (en) * | 1994-10-11 | 1996-12-31 | International Business Machines Corporation | Integrity mechanism for data transfer in a windowing system |
-
1995
- 1995-12-08 US US08/569,754 patent/US5794044A/en not_active Expired - Lifetime
-
1996
- 1996-11-20 AU AU71889/96A patent/AU712005B2/en not_active Expired
- 1996-11-27 CA CA002191411A patent/CA2191411C/en not_active Expired - Fee Related
- 1996-12-03 EP EP96308721A patent/EP0778521B1/en not_active Expired - Lifetime
- 1996-12-03 DE DE69621751T patent/DE69621751T2/en not_active Expired - Fee Related
- 1996-12-06 KR KR1019960062296A patent/KR100478025B1/en not_active IP Right Cessation
- 1996-12-06 CN CN96121868A patent/CN1117318C/en not_active Expired - Fee Related
- 1996-12-06 SG SG1996011565A patent/SG75109A1/en unknown
- 1996-12-09 JP JP8328896A patent/JPH1040107A/en active Pending
- 1996-12-12 TW TW085115368A patent/TW341687B/en active
Also Published As
Publication number | Publication date |
---|---|
AU712005B2 (en) | 1999-10-28 |
US5794044A (en) | 1998-08-11 |
TW341687B (en) | 1998-10-01 |
SG75109A1 (en) | 2000-09-19 |
DE69621751D1 (en) | 2002-07-18 |
KR100478025B1 (en) | 2005-06-27 |
CN1158459A (en) | 1997-09-03 |
EP0778521A3 (en) | 1999-05-12 |
JPH1040107A (en) | 1998-02-13 |
EP0778521B1 (en) | 2002-06-12 |
AU7188996A (en) | 1997-06-12 |
KR970049812A (en) | 1997-07-29 |
DE69621751T2 (en) | 2003-01-30 |
EP0778521A2 (en) | 1997-06-11 |
CA2191411C (en) | 2003-05-06 |
CN1117318C (en) | 2003-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2191411A1 (en) | System and method for runtime optimization of private variable function calls in a secure interpreter | |
US4809160A (en) | Privilege level checking instruction for implementing a secure hierarchical computer system | |
Hawblitzel et al. | Implementing Multiple Protection Domains in Java. | |
PL342994A1 (en) | Java runtime system with modified constant pool | |
CA2267482A1 (en) | Report program language source code translation to object-oriented language source code which emulates report program language behaviour | |
Baker et al. | Runtime aspect weaving through metaprogramming | |
Wagner et al. | Leapfrogging: a portable technique for implementing efficient futures | |
CA2143488A1 (en) | Dynamic Link Libraries Without Linker or Loader Support | |
EP1082654A1 (en) | Referencing a method in object-based programming | |
US6101326A (en) | Method and apparatus for frame elimination for simple procedures with tail calls | |
Chiba et al. | Yet another java. lang. class | |
Hawblitzel et al. | A case for language-based protection | |
WO2002037265A3 (en) | Frameworks for loading and execution of object-based programs | |
US7246135B2 (en) | Sharing classes between programs | |
PL325157A1 (en) | Method of generating and storing an application software consisting of commands for a programmable memory control unit and operating method for such programmable memory control unit | |
KR20070041800A (en) | The method of api hook by modifying call instructions in code sections of modules in address space of application | |
Liang | A modular semantics for compiler generation | |
Breuel | Implementing dynamic language features in Java using dynamic code generation | |
Budimlic et al. | Static interprocedural optimizations in java | |
Dumortier | Freeness and related analyses of constraint logic programs using abstract interpretation. | |
WO2001009715A3 (en) | A single-compiler architecture | |
Sanders | Eliminating the substitution axiom from UNITY logic | |
Pusch | Proving the soundness of a Java bytecode verifier in Isabelle/HOL | |
Marti | Compilation techniques for a control-flow concurrent LISP system | |
Läufer et al. | Self-interpretation and reflection in a statically typed language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |