JP4006337B2 - 共有ライブラリを使用して実行可能ファイルの実行を修正する方法 - Google Patents
共有ライブラリを使用して実行可能ファイルの実行を修正する方法 Download PDFInfo
- Publication number
- JP4006337B2 JP4006337B2 JP2002561683A JP2002561683A JP4006337B2 JP 4006337 B2 JP4006337 B2 JP 4006337B2 JP 2002561683 A JP2002561683 A JP 2002561683A JP 2002561683 A JP2002561683 A JP 2002561683A JP 4006337 B2 JP4006337 B2 JP 4006337B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- function
- symbol
- shared library
- executable
- 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.)
- Expired - Fee Related
Links
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
- Information Transfer Between Computers (AREA)
Description
−実行可能ファイルを起動する際、サービスファイル中に位置する新しい関数への複数の参照を含む、参照ファイルが事前ロードされ、
−実行可能ファイルの起動中に行われる動的リンク編集段階で、実行可能ファイル中に含まれる各未解決の参照について、前記参照が、この参照が参照ファイル中で定義される限り優先順位の問題として前記参照ファイルに割り当てられ、さもなければ前記参照が共有ライブラリに割り当てられ、
−実行可能ファイルの実行中、参照ファイル中に参照が存在する関数を呼び出すことで、実際に呼び出された関数を実行する代わりに、サービスファイル中に位置する新しい関数を実行することができ、この新しい関数へのアクセス経路が参照ファイル中に定義される。
−この実行可能ファイルの実行段階の間に、実行可能ファイルに動的に挿入されることを目的とする複数の関数を含むサービスファイルと、
−前記サービスファイル中および共有ライブラリ中に位置する関数への複数の参照を含む参照ファイルと、
−サービスファイルと参照ファイルとを監視および制御する制御手段とを備える。
−動的オブジェクトとそれに対応するローディングアドレスのリストと、各動的オブジェクトについて、インポート外部関数のリストとエクスポートされた関数のリストとが実行可能ファイル内で決定され、
−実行可能ファイルの実行中に、再ルーティングテーブル中の所定の関数のアドレスが修正されるので、前記所定の関数が次に呼び出される時、新しいアドレスに対応する関数が実行できるようになる。
F2=S:X2,B:F2
および
F3=S:X3
”
extern int open(const char *pathname,int flags,mode_t mode)
{
if(traceon&&tracefile)
fprintf(tracefile,”trace%s:%d:open(\”%s\”,%o,%o)\n”,
INDEX,pid,pathname,flags,mode);
Return(*meta_open)(pathname,flags,mode));}
”
・このプログラムの動的オブジェクトのリスト(一部実行可能および共有ライブラリ)およびそれらがロードされたそれぞれのアドレス。
・各動的オブジェクトに対する、インポート外部関数、すなわち、それらに対するエントリが再ルーティングテーブル中に存在し、その後修正されると思われるもののリスト。
・各動的オブジェクトに対する、エクスポートされた関数、すなわちその定義アドレスが同じプログラムの別の動的オブジェクトの再ルーティングテーブル中に出現しうるもののリスト。
・共有ライブラリの形態で、管理モジュール自体を事前ロードすることによってプログラムをブートするか、
・または、プログラムの動作中に、プログラムに割り込み、オペレーティングシステムを介してプログラム中に最新の命令で割り込みを挿入し、管理モジュールをロードする。
・割り込みを挿入し、共有ライブラリの形態の管理モジュールのロード関数を呼び出すことによって、実行中に管理モジュールをプログラム中にロードすること。リナックスの場合(“dlopen(“mg.so”))”。実現する技術はデバッガによって使用されるものと同様である。
・このプログラムの呼び出しグラフを操作するための、制御チャネルを介したプログラム(実行可能ファイル)との対話。指令はグラフィカルインタフェースによってか、指令文字列によってか、または何らかの他のプログラム中に含まれる関数によって起動すればよい。
Claims (4)
- コンピュータ内の共有ライブラリ中およびサービスファイル中に位置する関数を参照する複数の記号を含む実行可能ファイルの実行を修正する方法であって、
前記実行可能ファイルを起動する際、前記複数の記号のうち少なくとも1つの記号と前記複数の関数のうち少なくとも1つの関数に対する参照との関連づけが定義された少なくとも1つのエントリから構成されている参照ファイルをロードするステップと、
動的リンク編集段階においては、前記複数の記号のうち少なくとも1つの記号が前記参照ファイル中で定義されている場合は、当該記号と、当該記号を含む少なくとも1つのエントリとをリンク編集し、前記複数の記号のうち少なくとも1つの記号が前記参照ファイル中で定義されていない場合は、当該記号と、当該記号に対応する前記共有ライブラリ中の少なくとも1つの関数とをリンク編集するステップと、
前記実行可能ファイルの実行中においては、前記複数の記号のうち少なくとも1つの記号により関数呼び出しがあると、当該記号が前記参照ファイル中で定義されている場合は、当該記号とリンク編集されている少なくとも1つのエントリに含まれ、当該記号に関連づけられている少なくとも1つの参照が指し示す、前記サービスファイル中の少なくとも1つの関数を実行し、当該記号が前記参照ファイル中で定義されていない場合は、当該記号とリンク編集された前記共有ライブラリ中の少なくとも1つの関数を実行するステップとを前記コンピュータが自動的に実行することを特徴とする方法。 - 前記実行可能ファイルの実行中においては、前記参照ファイル中で定義されている各記号と当該記号に関連づけられている前記少なくとも1つの参照が指し示す、前記サービスファイル中の前記少なくとも1つの関数との間のリンクが動的に編集されることを特徴とする、請求項1に記載の方法。
- 前記動的リンク編集が共有ライブラリ操作ルーチンを使用して実行されることを特徴とする、請求項2に記載の方法。
- 前記参照ファイルと前記サービスファイルとが共有ライブラリの形態で管理されることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0101378A FR2820221B1 (fr) | 2001-02-01 | 2001-02-01 | Procede et systeme pour gerer des executables a bibliotheques partagees |
PCT/FR2002/000398 WO2002061579A2 (fr) | 2001-02-01 | 2002-02-01 | Procede et systeme pour gerer des executables a bibliotheques partagees |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004530184A JP2004530184A (ja) | 2004-09-30 |
JP4006337B2 true JP4006337B2 (ja) | 2007-11-14 |
Family
ID=8859512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002561683A Expired - Fee Related JP4006337B2 (ja) | 2001-02-01 | 2002-02-01 | 共有ライブラリを使用して実行可能ファイルの実行を修正する方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7506316B2 (ja) |
EP (2) | EP1386230B1 (ja) |
JP (1) | JP4006337B2 (ja) |
AT (1) | ATE391953T1 (ja) |
CA (1) | CA2437627C (ja) |
DE (1) | DE60226019T2 (ja) |
FR (1) | FR2820221B1 (ja) |
WO (1) | WO2002061579A2 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2820221B1 (fr) | 2001-02-01 | 2004-08-20 | Cimai Technology | Procede et systeme pour gerer des executables a bibliotheques partagees |
US20070146781A1 (en) * | 2002-05-28 | 2007-06-28 | Garg Man M | Method and implementation of capturing print data from heterogeneous networked clients |
US20030223091A1 (en) * | 2002-05-28 | 2003-12-04 | Garg Manmohan M. | Method and implementation of capturing print data from heterogeneous networked clients |
JP4115759B2 (ja) * | 2002-07-01 | 2008-07-09 | 株式会社東芝 | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム |
US7844734B2 (en) * | 2002-11-18 | 2010-11-30 | Innopath Software, Inc. | Dynamic addressing (DA) using a centralized DA manager |
GB2407655B (en) * | 2003-10-28 | 2009-08-05 | Symbian Ltd | Mapping of dynamic link libraries in a computing device |
US7739689B1 (en) * | 2004-02-27 | 2010-06-15 | Symantec Operating Corporation | Internal monitoring of applications in a distributed management framework |
US20060026584A1 (en) * | 2004-07-27 | 2006-02-02 | Muratori Richard D | Explicit linking of dynamic link libraries |
FR2881242B1 (fr) * | 2005-01-21 | 2007-03-23 | Meiosys Soc Par Actions Simpli | Procede non intrusif de journalisation d'evements internes au sein d'un processus applicatif, et systeme mettant en oeuvre ce procede |
FR2881247B1 (fr) * | 2005-01-21 | 2007-03-23 | Meiosys Soc Par Actions Simpli | Procede de gestion semantique, de journalisation ou de rejeu d'operations non deterministes au sein du deroulement d'un processus applicatif |
FR2881239B1 (fr) * | 2005-01-24 | 2007-03-23 | Meiosys Soc Par Actions Simpli | Procede de gestion d'acces a des ressources partagees dans un environnement multi-processeurs |
FR2883083B1 (fr) * | 2005-03-14 | 2007-05-04 | Meiosys Soc Par Actions Simpli | Procede d'execution d'une application dans un conteneur virtuel formant une session d'environnement virtualise |
US7721278B2 (en) * | 2005-05-27 | 2010-05-18 | Microsoft Corporation | Modular server architecture for multi-environment HTTP request processing |
US20070234342A1 (en) * | 2006-01-25 | 2007-10-04 | Flynn John T Jr | System and method for relocating running applications to topologically remotely located computing systems |
US7613749B2 (en) | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
US7930710B2 (en) * | 2006-05-16 | 2011-04-19 | Panasonic Corporation | Program start-up unit, program start-up method, recording medium with start-up processing program recorded, and integrated circuit |
US7594138B2 (en) | 2007-01-31 | 2009-09-22 | International Business Machines Corporation | System and method of error recovery for backup applications |
US8006254B2 (en) * | 2007-10-04 | 2011-08-23 | International Business Machines Corporation | Bequeathing privilege to a dynamically loaded module |
US8156510B2 (en) | 2007-10-04 | 2012-04-10 | International Business Machines Corporation | Process retext for dynamically loaded modules |
US8495573B2 (en) * | 2007-10-04 | 2013-07-23 | International Business Machines Corporation | Checkpoint and restartable applications and system services |
US8448159B2 (en) * | 2007-11-02 | 2013-05-21 | Tti Inventions C Llc | Method and system for policy enabled programming |
WO2009103742A2 (en) * | 2008-02-18 | 2009-08-27 | Martin Boesgaard | Authenticating a web page with embedded javascript |
CA2684225A1 (en) * | 2009-10-30 | 2011-04-30 | Ibm Canada Limited - Ibm Canada Limitee | Selective delta validation of a shared artifact |
US8607199B2 (en) * | 2009-12-16 | 2013-12-10 | International Business Machines Corporation | Techniques for debugging code during runtime |
US8495601B2 (en) | 2010-06-09 | 2013-07-23 | Lear Corporation | Shared memory architecture |
US8539472B2 (en) | 2010-06-09 | 2013-09-17 | Lear Corporation | Method and system of updating shared memory |
KR101059658B1 (ko) * | 2010-07-01 | 2011-08-25 | 엔에이치엔(주) | 개발자 인터페이스 제공 방법 및 시스템 |
JP5803157B2 (ja) * | 2011-03-07 | 2015-11-04 | 日本電気株式会社 | 情報処理装置、プログラム不正検知方法、およびプログラム不正検知プログラム |
KR101991687B1 (ko) | 2012-11-23 | 2019-06-24 | 삼성전자 주식회사 | 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템 |
US9189622B2 (en) * | 2013-04-30 | 2015-11-17 | Vmware, Inc. | Static redirection for objective C |
US9720660B2 (en) * | 2013-05-21 | 2017-08-01 | Red Hat, Inc. | Binary interface instrumentation |
CN105528365A (zh) * | 2014-09-30 | 2016-04-27 | 国际商业机器公司 | 用于管理可执行文件的方法和装置 |
US10514994B2 (en) | 2015-06-09 | 2019-12-24 | Satori Worldwide, Llc | Distributed scalable workload testing |
CN107292132B (zh) * | 2016-03-30 | 2023-03-14 | 北京娜迦信息科技发展有限公司 | 用于安卓系统的共享对象文件的加载方法与装置 |
US11063950B2 (en) * | 2016-06-09 | 2021-07-13 | Microsoft Technology Licensing, Llc | Secure remote desktop session |
US10310872B2 (en) * | 2017-02-21 | 2019-06-04 | Red Hat, Inc. | Transparent fast application launcher |
WO2018187160A1 (en) * | 2017-04-07 | 2018-10-11 | Satori Worldwide, Llc | Distributed scalable workload testing |
CN109710671B (zh) * | 2018-12-14 | 2023-05-30 | 国云科技股份有限公司 | 实现数据库操作数据引流的方法及其数据库防火墙系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01307825A (ja) | 1988-06-06 | 1989-12-12 | Nec Corp | インターフェイスモジュールを介する動的リンク実行方式 |
US5175828A (en) * | 1989-02-13 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison |
JPH04243424A (ja) | 1991-01-17 | 1992-08-31 | Nec Corp | 動的リンク方式 |
JPH06110678A (ja) * | 1992-09-30 | 1994-04-22 | Toshiba Corp | プログラム実行方式及び実行プログラムの動的変更方法 |
CA2102883A1 (en) * | 1993-02-26 | 1994-08-27 | James W. Arendt | System and method for lazy loading of shared libraries |
US5546586A (en) * | 1993-05-06 | 1996-08-13 | Apple Computer, Inc. | Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code |
US5481706A (en) * | 1993-11-01 | 1996-01-02 | International Business Machines Corporation | System and method for creating thread-safe shared libraries |
US6219825B1 (en) * | 1995-01-10 | 2001-04-17 | Hewlett-Packard Company | Profile based optimization of shared libraries |
JPH11110194A (ja) * | 1997-10-06 | 1999-04-23 | Toshiba Corp | 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体 |
US6154878A (en) * | 1998-07-21 | 2000-11-28 | Hewlett-Packard Company | System and method for on-line replacement of software |
US6351843B1 (en) * | 1998-08-31 | 2002-02-26 | International Business Machines Corporation | Dynamically inserting a function into an application executable at runtime |
US6314566B1 (en) * | 1998-09-29 | 2001-11-06 | Apple Computer, Inc. | Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries |
FR2820221B1 (fr) | 2001-02-01 | 2004-08-20 | Cimai Technology | Procede et systeme pour gerer des executables a bibliotheques partagees |
US20020174161A1 (en) * | 2001-05-18 | 2002-11-21 | Scheetz Michael A. | Java startup wrapper |
-
2001
- 2001-02-01 FR FR0101378A patent/FR2820221B1/fr not_active Expired - Fee Related
-
2002
- 2002-02-01 WO PCT/FR2002/000398 patent/WO2002061579A2/fr active IP Right Grant
- 2002-02-01 EP EP02701384A patent/EP1386230B1/fr not_active Expired - Lifetime
- 2002-02-01 EP EP08150861A patent/EP1914630A1/fr not_active Withdrawn
- 2002-02-01 CA CA2437627A patent/CA2437627C/fr not_active Expired - Fee Related
- 2002-02-01 AT AT02701384T patent/ATE391953T1/de not_active IP Right Cessation
- 2002-02-01 JP JP2002561683A patent/JP4006337B2/ja not_active Expired - Fee Related
- 2002-02-01 DE DE60226019T patent/DE60226019T2/de not_active Expired - Lifetime
- 2002-02-01 US US10/470,995 patent/US7506316B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
FR2820221B1 (fr) | 2004-08-20 |
WO2002061579A3 (fr) | 2003-11-27 |
FR2820221A1 (fr) | 2002-08-02 |
CA2437627C (fr) | 2010-07-20 |
ATE391953T1 (de) | 2008-04-15 |
DE60226019D1 (de) | 2008-05-21 |
EP1386230A2 (fr) | 2004-02-04 |
CA2437627A1 (fr) | 2002-08-08 |
JP2004530184A (ja) | 2004-09-30 |
DE60226019T2 (de) | 2009-06-25 |
US20040111720A1 (en) | 2004-06-10 |
US7506316B2 (en) | 2009-03-17 |
WO2002061579A2 (fr) | 2002-08-08 |
EP1386230B1 (fr) | 2008-04-09 |
EP1914630A1 (fr) | 2008-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4006337B2 (ja) | 共有ライブラリを使用して実行可能ファイルの実行を修正する方法 | |
US4607332A (en) | Dynamic alteration of firmware programs in Read-Only Memory based systems | |
KR100415371B1 (ko) | 컴퓨터 | |
US7185331B2 (en) | Method and apparatus for downloading executable code in a non-disruptive manner | |
US20120102476A1 (en) | Method, device and system for activating on-line patch | |
JPH10283189A (ja) | 内蔵実行可能アプリケーション及びコンピュータ読み取り可能な記憶媒体並びに内蔵実行可能アプリケーションの作成方法及びその作成システム | |
US9678867B2 (en) | Method for changing the software in the memory of an electronic control unit | |
JP6257506B2 (ja) | 電子制御装置のメモリ内のソフトウェアを変更する方法 | |
US20050071856A1 (en) | Dynamically loadable stub modules | |
JPH1115673A (ja) | 異なるランタイム環境において実行するための実行可能プログラムにおけるコードシーケンスを機能的に類似したコードシーケンスと条件付きで置き換えるローダ | |
US7269828B2 (en) | Method for safely instrumenting large binary code | |
US20030018865A1 (en) | Disablement of a write filter stored on a write-protected partition | |
GB2393818A (en) | Error handling by controlling the activity of temporary files. | |
CN106528114A (zh) | 安卓固件应用、安卓固件和固件升级方法 | |
US6014740A (en) | Single instruction method of seizing control of program execution flow in a multiprocessor computer system | |
JP5197159B2 (ja) | プログラム起動装置及びプログラム起動方法 | |
KR100478463B1 (ko) | 응용 프로그램의 동적링크 방법 | |
KR100745256B1 (ko) | 임베디드 시스템에서의 코드 오버레이 방법 | |
JPH07152551A (ja) | コンピュータシステムおよびプログラム実行方法 | |
RU2521265C2 (ru) | Система и способ автоматической обработки системных ошибок программного обеспечения | |
US11899567B2 (en) | System with hardware register and controller external to processor that facilitates transitions between firmware images using hardware register written with firmware image entry points | |
CN115268983B (zh) | 一种针对嵌入式物联网设备漏洞的热修复方法及装置 | |
GB2373888A (en) | Dynamic vector address allocation for a code patching scheme | |
US20230080059A1 (en) | System with dynamically selectable firmware image sequencing for production test, debug, prototyping | |
WO2022269793A1 (ja) | 制御装置、及び、アドレス管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050128 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070508 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070508 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070712 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070827 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4006337 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100831 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100831 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110831 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120831 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130831 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |