JP2018523218A - コンパイルされたソフトウェア内の機械命令を修正する方法およびシステム - Google Patents
コンパイルされたソフトウェア内の機械命令を修正する方法およびシステム Download PDFInfo
- Publication number
- JP2018523218A JP2018523218A JP2017566147A JP2017566147A JP2018523218A JP 2018523218 A JP2018523218 A JP 2018523218A JP 2017566147 A JP2017566147 A JP 2017566147A JP 2017566147 A JP2017566147 A JP 2017566147A JP 2018523218 A JP2018523218 A JP 2018523218A
- Authority
- JP
- Japan
- Prior art keywords
- binary
- software application
- modification
- software
- modifying
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【選択図】 図6
Description
Claims (15)
- ソフトウェアを修正する方法であって、該方法は:
コンピューティングデバイスにおいて、
a.ソフトウェアアプリケーションバイナリを受信する工程と;
b.バイナリ命令への修正が必要かどうか判断するために、ソフトウェアアプリケーションバイナリを分析する工程と;
c.バイナリ命令への修正が必要な場合に、バイナリ命令を修正する工程と;
d.ソフトウェアに新しいメタデータをインジェクトする工程と;
e.修正されたソフトウェアアプリケーションバイナリをコンパイルする工程と;および、
f.修正されたソフトウェアアプリケーションバイナリを返す工程と、を含むことを特徴とする、ソフトウェアを修正する方法。 - 1つ以上の修正オプションを受信する工程をさらに含み、ソフトウェアアプリケーションバイナリを分析する工程は、1つ以上の修正オプションを分析する工程をさらに含み、バイナリ命令を修正する工程は、さらに1つ以上の修正オプションに基づく、ことを特徴とする、請求項1に記載のソフトウェアを修正する方法。
- アセンブリ命令への修正が必要かどうか判断するために、ソフトウェアアプリケーションバイナリおよび1つ以上の修正オプションを分析する工程をさらに含み、アセンブリ命令への修正が必要な場合、次に、バイナリ命令をアセンブリ命令へ逆アセンブルする工程、およびアセンブリ命令を修正する工程を含むことを特徴とする、請求項2に記載のソフトウェアを修正する方法。
- ソースコードへの修正が必要かどうか判断するために、ソフトウェアアプリケーションバイナリおよび1つ以上の修正オプションを分析する工程をさらに含み、ソースコードへの修正が必要な場合、次に、アセンブリ命令をソースコード命令へ逆コンパイルする工程、および、ソースコード命令を修正する工程を含むことを特徴とする、請求項3に記載のソフトウェアを修正する方法。
- ソフトウェアアプリケーションバイナリのメタデータを受信する工程をさらに含み、ソフトウェアアプリケーションバイナリを分析する工程は、メタデータを分析する工程をさらに含み、バイナリ命令を修正する工程はさらに、メタデータに基づく、ことを特徴とする、請求項4に記載のソフトウェアを修正する方法。
- ソフトウェアアプリケーションバイナリを返す前にデジタルキーを使用して、修正されるソフトウェアアプリケーションバイナリに署名する工程をさらに含む、ことを特徴とする、請求項5に記載のソフトウェアを修正する方法。
- ソフトウェアアプリケーションバイナリを受信する工程は、ユーザからアプリケーションバイナリを受信する工程、アプリケーションバイナリをアップロードする工程、またはアプリケーションバイナリをオンラインアプリケーションマーケットプレイスからダウンロードする工程、からなる群から選択されることを特徴とする、請求項6に記載のソフトウェアを修正する方法。
- ソフトウェアアプリケーションバイナリを返す工程は、ダウンロードのためにソフトウェアアプリケーションバイナリを提供する工程、デバッグおよびサービス改善のためにソフトウェアアプリケーションへのアクセスを提供する工程、および、アプリケーションバイナリをオンラインアプリケーションマーケットプレイスに公開する工程、からなる群から選択されることを特徴とする、請求項7に記載のソフトウェアを修正する方法。
- 非一時的なコンピューター可読ストレージ媒体であって、その中に命令を格納し、命令がコンピューティングデバイスによって実行された時、コンピューティングデバイスに:
a.ソフトウェアアプリケーションバイナリを受信させ;
b.バイナリ命令への修正が必要かどうか判断するために、ソフトウェアアプリケーションバイナリを分析させ;
c.バイナリ命令への修正が必要な場合に、バイナリ命令を修正させ;
d.ソフトウェアアプリケーションバイナリに新しいメタデータをインジェクトさせ;
e.修正されたソフトウェアアプリケーションバイナリをコンパイルさせ;かつ、
f.修正されたソフトウェアアプリケーションバイナリを返させる、ことを特徴とする、非一時的なコンピューター可読ストレージ媒体。 - 1つ以上の修正オプションを受信することをさらに含み、バイナリ命令への修正がさらに必要かどうか判断するためのソフトウェアアプリケーションバイナリの分析は、1つ以上の修正オプションの分析を含み、バイナリ命令の修正はさらに、1つ以上の修正に基づく、ことを特徴とする、請求項9に記載の非一時的なコンピューター可読ストレージ媒体。
- アセンブリ命令への修正が必要かどうか判断するために、ソフトウェアアプリケーションバイナリおよび1つ以上の修正オプションを分析する命令をさらに含み、アセンブリ命令への修正が必要な場合、次に、アプリケーションバイナリ命令をアセンブリ命令へ逆アセンブルし、およびアセンブリ命令を修正することを特徴とする、請求項10に記載の非一時的コンピューター可読ストレージ媒体。
- ソースコードへの修正が必要かどうか判断するために、ソフトウェアアプリケーションバイナリおよび1つ以上の修正を分析する命令をさらに含み、ソースコードへの修正が必要な場合、次に、アセンブリ命令をソースコード命令へ逆コンパイルし、および、ソースコード命令を修正することを特徴とする、請求項11に記載の非一時的コンピューター可読ストレージ媒体。
- ソフトウェアアプリケーションバイナリのメタデータを受信する命令をさらに含み、ソフトウェアアプリケーションバイナリの分析は、メタデータの分析をさらに含むことを特徴とする、請求項12に記載の非一時的コンピューター可読ストレージ媒体。
- デジタルキーを使用して、修正されるソフトウェアアプリケーションバイナリに署名する命令をさらに含むことを特徴とする、請求項13に記載の非一時的コンピューター可読ストレージ媒体。
- ユーザインターフェースをさらに含み、ユーザインターフェースは、ユーザが1つ以上の修正オプションを選択するために、複数の修正オプションを提供することを特徴とする、請求項14に記載の非一時的コンピューター可読ストレージ媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562194180P | 2015-07-17 | 2015-07-17 | |
US62/194,180 | 2015-07-17 | ||
PCT/US2016/042139 WO2017015036A1 (en) | 2015-07-17 | 2016-07-13 | A method and system for modifying machine instructions within compiled software |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018523218A true JP2018523218A (ja) | 2018-08-16 |
Family
ID=57834988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017566147A Pending JP2018523218A (ja) | 2015-07-17 | 2016-07-13 | コンパイルされたソフトウェア内の機械命令を修正する方法およびシステム |
Country Status (7)
Country | Link |
---|---|
US (2) | US10310831B2 (ja) |
EP (1) | EP3311266A4 (ja) |
JP (1) | JP2018523218A (ja) |
KR (1) | KR101935847B1 (ja) |
CN (1) | CN107924302B (ja) |
IL (1) | IL256382B (ja) |
WO (1) | WO2017015036A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3311266A4 (en) | 2015-07-17 | 2018-09-12 | Enhance, Inc. | A method and system for modifying machine instructions within compiled software |
US10228936B2 (en) * | 2016-12-16 | 2019-03-12 | EntIT Software, LLC | Software delivery pipeline management |
CN109308183A (zh) * | 2018-07-30 | 2019-02-05 | 南阳理工学院 | 一种面向vliw芯片可执行代码的逆向工具方法 |
US11055105B2 (en) * | 2018-08-31 | 2021-07-06 | Micron Technology, Inc. | Concurrent image measurement and execution |
US20220237300A1 (en) * | 2021-01-22 | 2022-07-28 | Microsoft Technology Licensing, Llc | Firmware component identification and vulnerability assessment |
US11977868B2 (en) * | 2022-01-04 | 2024-05-07 | Xerox Corporation | Search based approach for generating controller models |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7934211B2 (en) | 2005-06-30 | 2011-04-26 | Oracle International Corporation | Multi-level patching operation |
US7901752B2 (en) * | 2006-06-16 | 2011-03-08 | Albany International Corp. | Advanced battery paster belt |
US8418122B2 (en) * | 2006-10-13 | 2013-04-09 | Oracle America, Inc. | Incorporating functionality from an object file into an existing binary file |
US9280337B2 (en) | 2006-12-18 | 2016-03-08 | Adobe Systems Incorporated | Secured distribution of software updates |
TWM325778U (en) * | 2007-06-23 | 2008-01-21 | Shuen Huang | Attachment structure for a seat back |
WO2009097350A1 (en) * | 2008-01-29 | 2009-08-06 | Palm, Inc. | Secure application signing |
US8683830B2 (en) * | 2009-04-10 | 2014-04-01 | Checkpoint Systems, Inc. | Push pin security device |
US20100333079A1 (en) * | 2009-06-30 | 2010-12-30 | Computer Associates Think, Inc. | Binary Code Modification System and Method for Implementing Identity and Access Management or Governance Policies |
US8627303B2 (en) * | 2009-11-30 | 2014-01-07 | International Business Machines Corporation | Memory optimization of virtual machine code by partitioning extraneous information |
US9256401B2 (en) * | 2011-05-31 | 2016-02-09 | Microsoft Technology Licensing, Llc | Editor visualization of symbolic relationships |
US8856724B2 (en) * | 2011-06-20 | 2014-10-07 | Ebay Inc. | Systems and methods for incremental software development |
US8527361B2 (en) | 2011-06-27 | 2013-09-03 | Amazon Technologies, Inc. | Service for adding in-application shopping functionality to applications |
US20130019235A1 (en) * | 2011-07-11 | 2013-01-17 | Salesforce.Com, Inc. | Mechanism for facilitating management of metadata and metada-based update of software |
US8707289B2 (en) * | 2011-07-20 | 2014-04-22 | Google Inc. | Multiple application versions |
CN103034479A (zh) * | 2011-10-09 | 2013-04-10 | 镇江雅迅软件有限责任公司 | 一种基于结构动态技术的数据生成系统 |
US8793337B2 (en) | 2011-10-24 | 2014-07-29 | Infosys Limited | System and method for providing one or more updated files for a generated user personalized software application |
US9027004B1 (en) | 2013-03-12 | 2015-05-05 | Amazon Technologies, Inc. | Injection of supplemental computer instructions |
US20140282371A1 (en) | 2013-03-14 | 2014-09-18 | Media Direct, Inc. | Systems and methods for creating or updating an application using a pre-existing application |
US10184494B2 (en) * | 2013-06-28 | 2019-01-22 | Hamilton Sundstrand Corporation | Enhance motor cooling system and method |
US20150040112A1 (en) * | 2013-08-01 | 2015-02-05 | Qualcomm Incorporated | Enabling Interoperability Between Software Applications By Utilizing Partial Binaries |
WO2016112330A1 (en) * | 2015-01-09 | 2016-07-14 | University of Virginia Patent Foundation d/b/a University of Virginia Licensing & Ventures Group | System, method and computer readable medium for space-efficient binary rewriting |
EP3311266A4 (en) | 2015-07-17 | 2018-09-12 | Enhance, Inc. | A method and system for modifying machine instructions within compiled software |
-
2016
- 2016-07-13 EP EP16828260.6A patent/EP3311266A4/en not_active Withdrawn
- 2016-07-13 KR KR1020187003236A patent/KR101935847B1/ko active IP Right Grant
- 2016-07-13 WO PCT/US2016/042139 patent/WO2017015036A1/en active Application Filing
- 2016-07-13 JP JP2017566147A patent/JP2018523218A/ja active Pending
- 2016-07-13 CN CN201680042022.1A patent/CN107924302B/zh not_active Expired - Fee Related
- 2016-07-13 US US15/743,896 patent/US10310831B2/en active Active
-
2017
- 2017-12-18 IL IL256382A patent/IL256382B/en active IP Right Grant
-
2019
- 2019-05-21 US US16/418,311 patent/US10747518B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3311266A4 (en) | 2018-09-12 |
US20180203677A1 (en) | 2018-07-19 |
KR20180017211A (ko) | 2018-02-20 |
US10747518B2 (en) | 2020-08-18 |
US10310831B2 (en) | 2019-06-04 |
WO2017015036A1 (en) | 2017-01-26 |
CN107924302A (zh) | 2018-04-17 |
CN107924302B (zh) | 2021-03-30 |
KR101935847B1 (ko) | 2019-01-07 |
IL256382A (en) | 2018-02-28 |
EP3311266A1 (en) | 2018-04-25 |
IL256382B (en) | 2018-10-31 |
US20190272161A1 (en) | 2019-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10747518B2 (en) | Method and system for modifying machine instructions within compiled software | |
US9959198B1 (en) | Simulated testing of API | |
US8850424B2 (en) | Processing, modification, distribution of installation packages | |
Vithani et al. | Modeling the mobile application development lifecycle | |
US8584114B2 (en) | Method of generating and distributing a computer application | |
CN107896244B (zh) | 一种版本文件的分发方法、客户端及服务器 | |
KR102122451B1 (ko) | 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버 | |
US20120204160A1 (en) | Managing Non-Common Features for Program Code Translation | |
JP2014525092A (ja) | サードパーティのコンテンツをオンライン文書署名に関連付けるための方法 | |
US9678745B2 (en) | Automatic submission of applications to applications stores | |
US20200285450A1 (en) | System for providing instant preview of a mobile application under development | |
WO2019029451A1 (zh) | 发布移动应用的方法和电子设备 | |
US20140006169A1 (en) | Application marketplace for online advertising applications | |
US20170097814A1 (en) | Automatic multi-platform mobile application development | |
CN104298500A (zh) | 在线自动生成并可以分享的电子相册App系统及方法 | |
CN110806935A (zh) | 应用程序构建方法、装置和系统 | |
CN116382718A (zh) | 代码离线部署方法、装置、计算机设备及存储介质 | |
KR101539337B1 (ko) | 온라인 서비스 플랫폼 기반의 모바일 앱 자동 생성 방법 및 그 시스템 | |
US20200293156A1 (en) | Studio builder for interactive media | |
CN110196803B (zh) | 一种软件缺陷培训方法和系统 | |
US20210334092A1 (en) | System For Providing Instant Preview Of A Mobile Application Under Development | |
TW201606547A (zh) | 用戶定義的動態事件 | |
US10755321B1 (en) | Techniques for dynamic utilization of advertising capabilities by applications on user devices | |
US11381940B1 (en) | Tethering computer programs and user interfaces to selected targets | |
US20170316447A1 (en) | Method and System for Supporting Intelligent Export and Integration of Analytic System Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180105 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180118 |
|
A529 | Written submission of copy of amendment under article 34 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A529 Effective date: 20180131 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180620 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180627 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190710 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200302 |