JP6182160B2 - 実行中のプロセスへのコードの動的挿入 - Google Patents
実行中のプロセスへのコードの動的挿入 Download PDFInfo
- Publication number
- JP6182160B2 JP6182160B2 JP2014556586A JP2014556586A JP6182160B2 JP 6182160 B2 JP6182160 B2 JP 6182160B2 JP 2014556586 A JP2014556586 A JP 2014556586A JP 2014556586 A JP2014556586 A JP 2014556586A JP 6182160 B2 JP6182160 B2 JP 6182160B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- module
- target process
- arbitrary
- identifier
- 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.)
- Active
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
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)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
[0019]次の詳細な説明は、本発明の例示的実施形態を示す添付の図面を参照する。しかしながら、本発明の範囲は、これらの実施形態に限定されず、代わりに添付の特許請求の範囲によって定義される。したがって、例示の実施形態の修正版のような、添付の図面に示す以外の実施形態が、やはり本発明によって含まれる可能性がある。
[0021]本明細書で説明する例示的実施形態は、実行中のプロセスにコードを動的に挿入することができる。例えば、例示的実施形態は、プロセスが実行している間にプロセスの外部から任意のコードの動的実行を求める要求を受け取ることに応じて、プロセスが実行している間にプロセスにおいて任意のコードをアクティブ化させることができる。例示的実施形態は、オペレーティングシステム(OS)のアプリケーションプログラミングインターフェイス(API)がレジストリから任意のコードを含むコードコンテナの場所を調べ、場所を特定すると、コードコンテナから任意のコードをアクティブ化し、要求を行った呼出し元に任意のコードへの参照を提供するようにさせること、メッセージによって指示されるパスを介してコードコンテナから任意のコードを、メッセージによって指示される場所の共有ライブラリにロードし、共有ライブラリを呼び出して任意のコード値をアクティブ化すること、メッセージによって指示されるコードコンテナから任意のコードを取得し、メッセージによって指定されるプロセスのエントリポイントで任意のコードをアクティブ化することなどを含むが、これらに限定されない、様々な方法のいずれかでプロセスにおいて任意のコードをアクティブ化させることができる。
[0058]ステップ426において、アクティベーションの結果がパッケージ化される。一例示的実行では、パッケージ化モジュール524が、アクティベーションの結果をパッケージ化する。
[0105]様々な実施形態を上述したが、これらは単に例として、限定ではなく提示されたことを理解すべきである。本発明の趣旨および範囲を逸脱することなく、本発明における形式および詳細における様々な変更を行うことができることは、当業者には明らかであろう。したがって、本発明の範囲(breadth and scope)およびは、上述の例示的実施形態のいずれによっても限定されるべきではなく、単に、添付の特許請求の範囲およびその均等物に従って定義されるべきである。
Claims (19)
- ターゲットプロセスにおいて、前記ターゲットプロセスが実行されている間に、前記ターゲットプロセス外である要求プロセスからメッセージを受け取るステップであって、前記メッセージが、前記ターゲットプロセスにおける任意のコードの動的実行を要求し、前記メッセージが、前記任意のコードを識別するコード識別子を含み、前記コード識別子が、前記任意のコードを検索しアクティブ化するために使用可能である、ステップと、
アクティブ化されたコードを提供するために前記コード識別子に基づいて前記ターゲットプロセスが実行されている間に、少なくとも1つのプロセッサを用いて前記ターゲットプロセスにおいて前記任意のコードを検索させ、アクティブ化させるステップと
を含み
前記任意のコードを検索させ、アクティブ化させるステップは、
オペレーティングシステムのアプリケーションプログラミングインターフェイスに、前記コード識別子に基づいてレジストリから前記任意のコードを含んだコードコンテナの位置を調べさせるステップを含む、方法。 - 前記オペレーティングシステムのアプリケーションプログラミングインターフェイスに前記コードコンテナを調べさせるステップが、
前記コード識別子を前記オペレーティングシステムのアプリケーションプログラミングインターフェイスに提供するステップを含む、請求項1に記載の方法。 - 前記メッセージを受け取るステップが、
パス情報および場所識別子を受け取るステップであって、前記パス情報がコードコンテナへのパスを示し、前記場所識別子が共有ライブラリの場所を示す、ステップを含み、
前記任意のコードを検索させ、アクティブ化させるステップが、
前記場所識別子によって示される前記場所に基づいて、さらに前記パス情報によって示される前記パスに基づいて、前記任意のコードを前記コードコンテナから前記共有ライブラリにロードするステップと、
前記共有ライブラリを呼び出して、前記任意のコードを実行するステップと
を含む、請求項1に記載の方法。 - 前記任意のコードを検索させ、アクティブ化させるステップが、
前記任意のコードを、前記コード識別子によって示されるコードコンテナから取得するステップと、
前記ターゲットプロセスのエントリポイントで前記任意のコードをアクティブ化させるステップであって、前記エントリポイントは前記コード識別子によって指定される、ステップと、
を含む、請求項1に記載の方法。 - 前記メッセージを受け取るステップは、
前記メッセージに含まれる任意のデータを受け取るステップを含み、
前記任意のコードを検索させ、アクティブ化させるステップが、
前記任意のコードを初期化するために前記任意のデータを前記任意のコードに提供するステップを含む、請求項1に記載の方法。 - 前記ターゲットプロセスに含まれるコードのアクセシビリティを前記アクティブ化されたコードへ提供するステップをさらに含む、請求項1に記載の方法。
- ターゲットプロセスに関してインスタンス化されたインスタンス化されたコードを示すステップであって、前記インスタンス化されたコードは前記アクティブ化されたコードを含む、ステップと、
無効化メッセージを受け取るステップと、
前記無効化メッセージの受け取りに応答して前記インスタンス化されたコードを無効化するステップと
をさらに含む、請求項1に記載の方法。 - 前記コード識別子が、前記ターゲットプロセスにおいてコンパイルされて、次いで実行されるソースコードを含む、請求項1に記載の方法。
- 前記アクティブ化されたコードを参照する値を提供するステップであって、前記値が、前記ターゲットプロセスが実行し続ける間に前記ターゲットプロセスと対話するために前記要求プロセスによって呼出し可能である、ステップをさらに含む、請求項1に記載の方法。
- 前記ターゲットプロセスが実行し続ける間に前記ターゲットプロセスにおいて前記任意のコードを検索させ、アクティブ化させるステップは、
前記アクティブ化されたコードに関連するスレッドを除く、前記ターゲットプロセスのすべてのスレッドを停止させるステップを含む、請求項1に記載の方法。 - ターゲットプロセスにおいて、前記ターゲットプロセスが実行されている間に、前記ターゲットプロセス外である要求プロセスからメッセージを受け取るように構成されたインターフェイスモジュールであって、前記メッセージが、前記ターゲットプロセスにおける任意のコードの動的実行を要求し、前記メッセージが、前記任意のコードを識別するコード識別子を含み、前記コード識別子が、前記任意のコードを検索しアクティブ化するために使用可能である、インターフェイスモジュールと、
前記コード識別子に基づいて前記ターゲットプロセスが実行されている間に、前記任意のコードを前記ターゲットプロセスにおいて検索させ、アクティブ化させて、アクティブ化されたコードを提供するように構成された、因果関係モジュールと
を含み、
前記因果関係モジュールは、前記コード識別子に基づいて、オペレーティングシステムアプリケーションプログラミングインターフェィスにレジストリからの任意のコードを含むコードコンテナの場所を調べさせるよう構成されている、システム。 - 前記メッセージはパス情報及び場所識別子を含み、前記パス情報はコードコンテナへのパスを示し、前記場所識別子は共有ライブラリの位置を示し、
前記因果関係モジュールは、前記場所識別子により示される前記位置に基づいて、及び前記パス情報により示される前記パスにさらに基づいて、前記任意のコードを前記コードコンテナから前記共有ライブラリにロードするよう構成されたアクティベーション論理と、
前記任意のコードを実行するために前記共有ライブラリを呼び出しするよう構成された呼び出し論理と
を含む、請求項11に記載のシステム。 - 前記因果関係モジュールが、
前記コード識別子によって示されたコードコンテナから前記任意のコードを取得するように構成された取得論理と、
前記ターゲットプロセスのエントリポイントで前記任意のコードをアクティブ化するように構成されたアクティベーション論理であって、前記エントリポイントが前記コード識別子によって指定される、アクティベーション論理と
を含む、請求項11に記載のシステム。 - 前記メッセージは任意のデータを含み、
前記因果関係モジュールは前記任意のコードを初期化するために前記任意のコードへ前記任意のデータを供給するよう構成されている、請求項11に記載のシステム。 - 前記ターゲットプロセスに対してインスタンス化された、インスタンス化されたコードを識別するように構成された識別モジュールであって、前記インスタンス化されたコードが前記アクティブ化されたコードを含む、識別モジュールと、
無効化メッセージの受取りに応じて前記インスタンス化されたコードを無効化するように構成された無効化モジュールとをさらに含む、請求項11に記載のシステム。 - 前記因果関係モジュールは前記アクティブ化されたコードを参照する値を提供するよう構成され、前記値は前記ターゲットプロセスが実行し続けている間に前記ターゲットプロセスと対話するために前記要求プロセスによって呼出し可能である、請求項11に記載のシステム。
- 前記因果関係モジュールが、前記ターゲットプロセスにおいて前記任意のコードのロード中に、前記アクティブ化されたコードに関連するスレッドを除く、ターゲットプロセスのすべてのスレッドを停止させるように構成された、請求項11に記載のシステム。
- プロセッサベースのシステムが実行中のプロセスにコードを動的に挿入できるようにするためのコンピュータープログラム論理を記録したコンピューター可読媒体を含むコンピュータープログラムであって、
ターゲットプロセスが実行されている間に前記ターゲットプロセスにおいて前記ターゲットプロセス外である要求プロセスからメッセージを受け取ることに基づいて、前記プロセッサベースのシステムが、前記ターゲットプロセスにおいて、前記ターゲットプロセスが実行されている間に任意のコードを検索させ、アクティブ化させて、アクティブ化されたコードを提供することを可能にするための第1のプログラム論理モジュールであって、前記メッセージが、前記ターゲットプロセスにおいて前記任意のコードの動的実行を要求し、前記メッセージが、前記任意のコードを識別するコード識別子を含み、前記コード識別子が、前記任意のコードを検索しアクティブ化するために使用可能であり、オペレーティングシステムのアプリケーションプログラミングインターフェイスに、前記コード識別子に基づいてレジストリから前記任意のコードを含んだコードコンテナの位置を調べさせる、第1のプログラム論理モジュールと、
前記プロセッサベースのシステムが、前記アクティブ化されたコードを参照する値を提供することを可能にするための第2のプログラム論理モジュールであって、前記値が、前記ターゲットプロセスが実行し続ける間に前記ターゲットプロセスと対話するために要求プロセスによって呼出し可能である、第2のプログラム論理モジュールとを含む、コンピュータープログラム。 - 前記メッセージはパス情報及び場所識別子を含み、前記パス情報はコードコンテナへのパスを示し、前記場所識別子は共有ライブラリの場所を示し、
前記第1のプログラム論理モジュールは、
前記プロセッサベースのシステムが前記場所識別子によって示される場所に基づいて、更に前記パス情報により示される前記パスに基づいて、前記コードコンテナから前記共有ライブラリへ前記任意のコードをロードすることを可能にするアクティベーション論理と
前記プロセッサベースのシステムが、前記任意のコードを実行するために前記共有ライブラリを呼び出しすることを可能にする呼び出し論理と
を含む、請求項18に記載のコンピュータープログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/370,126 | 2012-02-09 | ||
US13/370,126 US8539506B2 (en) | 2012-02-09 | 2012-02-09 | Dynamic injection of code into running process |
PCT/US2013/024558 WO2013119481A1 (en) | 2012-02-09 | 2013-02-04 | Dynamic injection of code into running process |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015507298A JP2015507298A (ja) | 2015-03-05 |
JP2015507298A5 JP2015507298A5 (ja) | 2016-03-24 |
JP6182160B2 true JP6182160B2 (ja) | 2017-08-16 |
Family
ID=48946753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014556586A Active JP6182160B2 (ja) | 2012-02-09 | 2013-02-04 | 実行中のプロセスへのコードの動的挿入 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8539506B2 (ja) |
EP (1) | EP2812794A4 (ja) |
JP (1) | JP6182160B2 (ja) |
KR (1) | KR102023223B1 (ja) |
CN (1) | CN104137062B (ja) |
WO (1) | WO2013119481A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9720809B2 (en) | 2012-02-17 | 2017-08-01 | Microsoft Technology Licensing, Llc | Dynamically enabling debugging over the internet |
US20150007156A1 (en) * | 2013-06-26 | 2015-01-01 | Sap Ag | Injecting patch code at runtime |
US10516733B2 (en) | 2014-11-25 | 2019-12-24 | Auth0, Inc. | Multi-tenancy via code encapsulated in server requests |
CN107153536B (zh) * | 2017-03-31 | 2021-05-07 | 北京三快在线科技有限公司 | 一种应用处理方法及装置 |
CN114003488A (zh) * | 2017-03-31 | 2022-02-01 | 华为技术有限公司 | 一种内存泄露检测方法及设备 |
US10496469B2 (en) * | 2017-07-25 | 2019-12-03 | Aurora Labs Ltd. | Orchestrator reporting of probability of downtime from machine learning process |
US11169858B2 (en) * | 2018-06-15 | 2021-11-09 | Nvidia Corporation | Faster game enablement utilizing virtual machine reuse |
US11983094B2 (en) | 2019-12-05 | 2024-05-14 | Microsoft Technology Licensing, Llc | Software diagnostic context selection and use |
CN111475229B (zh) * | 2020-04-09 | 2021-01-15 | 广州锦行网络科技有限公司 | 一种Windows平台下的dll注入方法及系统 |
CN111488282B (zh) * | 2020-04-13 | 2023-11-07 | 龙芯中科技术股份有限公司 | 业务功能处理方法、装置、电子设备及存储介质 |
CN112631891A (zh) * | 2021-01-05 | 2021-04-09 | 网易(杭州)网络有限公司 | 性能剖析方法及装置、电子设备、存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802367A (en) * | 1995-07-07 | 1998-09-01 | Microsoft Corporation | Method and system for transparently executing code using a surrogate process |
US6463583B1 (en) | 1999-04-08 | 2002-10-08 | Novadigm, Inc. | Dynamic injection of execution logic into main dynamic link library function of the original kernel of a windowed operating system |
US7886287B1 (en) | 2003-08-27 | 2011-02-08 | Avaya Inc. | Method and apparatus for hot updating of running processes |
US7360027B2 (en) * | 2004-10-15 | 2008-04-15 | Intel Corporation | Method and apparatus for initiating CPU data prefetches by an external agent |
US20060206585A1 (en) | 2005-03-07 | 2006-09-14 | Nextwave Media Group, Llc | System and method for publishing targeted copy in a previously opened document independent of a user-initiated submission |
US7694341B2 (en) | 2005-06-03 | 2010-04-06 | Apple Inc. | Run-time code injection to perform checks |
US7669186B2 (en) * | 2005-11-16 | 2010-02-23 | Sun Microsystems, Inc. | Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents |
US8769672B2 (en) * | 2006-08-03 | 2014-07-01 | Symantec Corporation | Code injection prevention |
US8151277B2 (en) | 2007-05-15 | 2012-04-03 | Dynatrace Software Gmbh | Method and system for dynamic remote injection of in-process agents into virtual machine based applications |
US8060858B2 (en) * | 2006-12-29 | 2011-11-15 | Sap Ag | Injection library |
US8095910B2 (en) | 2007-04-10 | 2012-01-10 | Microsoft Corporation | Interruptible client-side scripts |
US20080307391A1 (en) | 2007-06-11 | 2008-12-11 | Microsoft Corporation | Acquiring coverage data from a script |
US20090024986A1 (en) | 2007-07-19 | 2009-01-22 | Microsoft Corporation | Runtime code modification |
JP2010191658A (ja) * | 2009-02-18 | 2010-09-02 | Meidensha Corp | アプリケーション・プログラムのメンテナンス方法 |
CN105278963A (zh) * | 2009-09-10 | 2016-01-27 | 联想(北京)有限公司 | 一种任务栏按钮的管理方法及装置 |
KR101044274B1 (ko) | 2009-11-03 | 2011-06-28 | 주식회사 안철수연구소 | 악성 사이트 검출 장치, 방법 및 컴퓨터 프로그램이 기록된 기록매체 |
CN102314561B (zh) * | 2010-07-01 | 2014-07-23 | 电子科技大学 | 基于api hook的恶意代码自动分析方法和系统 |
-
2012
- 2012-02-09 US US13/370,126 patent/US8539506B2/en active Active
-
2013
- 2013-02-04 KR KR1020147022177A patent/KR102023223B1/ko active IP Right Grant
- 2013-02-04 CN CN201380008946.6A patent/CN104137062B/zh active Active
- 2013-02-04 EP EP13746698.3A patent/EP2812794A4/en not_active Ceased
- 2013-02-04 JP JP2014556586A patent/JP6182160B2/ja active Active
- 2013-02-04 WO PCT/US2013/024558 patent/WO2013119481A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US8539506B2 (en) | 2013-09-17 |
JP2015507298A (ja) | 2015-03-05 |
KR102023223B1 (ko) | 2019-11-04 |
US20130212595A1 (en) | 2013-08-15 |
EP2812794A4 (en) | 2016-05-18 |
EP2812794A1 (en) | 2014-12-17 |
CN104137062A (zh) | 2014-11-05 |
WO2013119481A1 (en) | 2013-08-15 |
KR20140123521A (ko) | 2014-10-22 |
CN104137062B (zh) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6182160B2 (ja) | 実行中のプロセスへのコードの動的挿入 | |
US10162624B1 (en) | Web shell for dynamically generated cross-platform applications | |
US10740078B2 (en) | Dynamic plugin(s) for cloud application(s) | |
US10402239B2 (en) | Method of hosting a first application in a second application | |
US8812451B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
CN110187910B (zh) | 一种热更新方法、装置、设备及计算机可读存储介质 | |
WO2022083316A1 (zh) | 一种应用运行的方法、装置及计算机存储介质 | |
US20150220308A1 (en) | Model-based development | |
WO2016177341A1 (zh) | 接口调用方法、装置及终端 | |
JP2000029713A (ja) | 拡張可能なアプリケ―ションのためのフレ―ムワ―クの実現技術 | |
CN110780930B (zh) | 启动Android系统的方法、装置、电子设备及存储介质 | |
WO2014101393A1 (zh) | 应用实现方法及装置 | |
US11487540B2 (en) | Micro-frontend as a service | |
US20130081010A1 (en) | Template and server content download using protocol handlers | |
US20090049423A1 (en) | Javascripttm programming extension | |
CN116954824A (zh) | 一种支持多种扩展现实 (xr) 技术规范应用程序与2d应用程序多进程混合运行的运行时系统、数据交互方法、设备及介质 | |
WO2020060630A1 (en) | Connected application experience | |
US8793663B2 (en) | Smart cache for a server test environment in an application development tool | |
CN114816445A (zh) | 系统平台架构、函数发布方法及装置、平台及存储介质 | |
US20240160412A1 (en) | Non-intrusive build time injection tool for accelerating launching of cloud applications | |
US20210240552A1 (en) | Supporting universal windows platform and win32 applications in kiosk mode | |
WO2024102326A1 (en) | A non-intrusive build time injection tool for accelerating launching of cloud applications | |
CN117369910A (zh) | 一种基于微应用架构的资源处理方法和装置、电子设备 | |
CN116594773A (zh) | 向Ray集群提交计算任务的方法和装置 | |
CN115729614A (zh) | 基于浏览器pwa标准的运行时库、数据交互方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160202 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170613 |
|
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: 20170623 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170721 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6182160 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |