当前位置: 首页 > 专利查询>英航斯公司专利>正文

一种用于在经编译软件内修改机器指令的方法和系统技术方案

技术编号:17746073 阅读:31 留言:0更新日期:2018-04-18 19:31
一种用于修改经编译的软件应用以实现附加软件代码从而增强软件应用的功能的系统和方法。所述系统和方法包括:接收软件应用二进制(601)、元数据(602)和修改选项(603);分析所接收的成分;基于该分析来修改该软件应用二进制;以及返回经修改的软件应用二进制(610)。

【技术实现步骤摘要】
【国外来华专利技术】一种用于在经编译软件内修改机器指令的方法和系统
本专利技术涉及用于在经编译软件内修改机器指令的系统和方法。
技术介绍
Web和移动应用公司经常依赖于第三方服务来为其产品添加功能。这些第三方服务通常需要以软件开发工具包(SDK)、应用程序编程接口(API)、软件库或其他软件代码的形式来实现软件代码。虽然这些第三方服务可以显著地增强用户对web或移动应用的享受,并且为实施第三方服务的公司创造重大价值(即,广告收益、经改进的用户功能、增强的客户支持),但是安装第三方代码的负担落在了web和移动应用公司自己身上。公司人员(通常是内部开发人员)可能需要几个小时或者甚至几天才能正确执行单个第三方SDK的手动实施。内部开发人员必须首先从无数选择中识别他想使用的适当的第三方服务(例如,来自数十个竞争的移动广告网络),阅读提供了安装说明的相关联支持手册以便使用不熟悉的第三方SDK,并且然后将SDK直接安装到web或移动应用源代码中。这个过程在管理上是繁琐的,并且需要冗长的质量保证和测试程序来确保安装过程正确完成,并且不会无意间损坏web或移动应用。例如,想要通过在线广告创造收益并且不具有资源或时间来建立其自己的广告网络系统的web或移动公司将必须将第三方广告网络SDK安装到公司的web或移动app中。这个SDK将在web或移动应用中运行广告并且为公司提供广告收益。第三方服务提供方定期地更新它们的SDK。如果公司希望使用第三方服务的最新特征和功能,则必须将升级的SDK实施到公司的web或移动应用中。这不是简单且快速的过程。web或移动应用必须由熟练的开发人员来进行,这有可能破坏业务运营。必须移除旧的SDK,并且由具有所需技能和经验的人员来安装和测试已升级的SDK。具有多个第三方SDK的成功公司可能必须雇佣一个全职内部开发人员团队来管理这个过程。由于这个原因,许多web和移动应用开发人员简单地避免使用将在其他方面满足需要的第三方服务。识别最佳第三方服务、管理各种首次SDK安装、跟踪SDK更新何时可用并且然后重新执行繁琐的安装、以及测试过程的负担对于小企业来说可能是难以承受的。事实上,已经创造出用于管理新SDK和已更新SDK泛滥的新术语:‘SDK疲劳(SDKfatigue)’。对于开发人员来说,与实施第三方系统相关联的成本可能过高,尤其是当考虑所述多个第三方服务时,开发人员将必须在选择适合其需求的一个第三方服务之前对其进行评估。例如,在找到最适合他的特定应用(比如,休闲游戏或社交网络应用)的广告网络之前,开发人员可能需要测试十几个第三方广告网络。对于许多web和移动应用公司来说,SDK实施和持续管理过程如此耗时且困难以至于他们仅限制对这些有价值的第三方服务的使用。结果是,这些公司错过了有价值的增量收益机会以及他们可以提供给其客户的创新性新服务。因此,需要一种方法:利用经编译软件应用并在无需开发人员评估最适合其web或移动应用的最佳第三方服务的情况下对该经编译软件应用进行修改,并且这样做没有手动地将第三方软件代码(SDK、API)插入到其web或移动应用的源代码中的负担。还需要一种方法,该方法将允许开发人员在没有通常与针对每个服务手动实施SDK相关联的挑战和业务中断的情况下毫不费力地测试大量具有潜在价值的第三方服务,从而使web和移动应用公司能够快速评估和实施多个第三方服务以便在诸如广告、分析、用户调研、死机报告、开发者工具、库、app评级提示、创新推广活动、app购买等领域增强其产品和服务功能,并且对应用进行修改从而使得其可以恰当地使用客户端设备上的硬件。此外,需要一种方法来允许由之前安装在web或移动应用中的SDK执行的现有功能被重新定向到新的或更优化的目的。此外,需要一种方法,所述方法可以在各种格式、操作系统和编程语言(诸如,iOS、Android、HTML5、C和C+以及Flash)中执行这些修改。
技术实现思路
本专利技术涉及一种用于修改经编译软件应用以便实现附加软件代码从而增强软件应用的功能的系统和方法。所述系统和方法包括:接收软件应用二进制和修改选项、基于所述修改选项来修改所述软件应用二进制、编译所述软件应用二进制、以及以可用格式返回经修改的软件应用二进制。本专利技术的目的是:对软件应用二进制、修改选项和元数据进行分析以判定是否需要在二进制级别、汇编级别和/或源代码级别对机器指令进行修改,并且在所需级别自动地执行所述修改以简化所述修改过程。附图说明图1是根据本公开实施例的包括web服务和修改服务的软件修改系统的调用图;图2示出了在被软件修改系统的实施例修改之前在计算设备上运行的软件应用;图3示出了在被软件修改系统的实施例修改之后在计算设备上运行的软件应用;图4示出了根据本公开实施例的web服务的示例计算机实现方式;图5示出了根据本公开实施例的web服务上提供的修改选项的示例计算机实现方式;图6示出了根据本公开实施例的软件修改服务过程的示例性流程图;图7示出了根据本公开实施例的软件修改系统过程的示例性流程图;图8示出了根据本公开实施例的软件修改系统过程的示例性流程图;图9示出了根据本公开实施例的软件修改系统过程的示例性流程图;并且图10示出了在某些实施例中可以用于实施本公开各个方面的计算机的高级图。具体实施方式以下结合附图阐述的详细描述旨在作为对本专利技术的目前优选实施例的描述并且不旨在代表本专利技术可以被构造或利用的仅有形式。所述描述结合所展示的实施例阐述了用于构造和操作本专利技术的步骤的功能和顺序。然而,应当理解,可以通过不同的实施例来实现相同的或等效的功能和顺序,所述不同的实施例同样旨在被包含在本专利技术的精神和范围内。将理解的是,尽管此处可以使用术语“第一”、“第二”等来描述各个元件,但是这些元件不应被这些术语限制。这些术语仅用于将一个元件与另一个元件进行区分。例如,在不偏离本专利技术范围的情况下,第一姿势可以称为第二姿势,并且类似地,第二姿势可以称为第一姿势。在此对本专利技术的描述中所使用的术语仅用于描述特定实施例的目的,并且不旨在限制本专利技术。如在对本专利技术的描述和所附权利要求书中所使用的,除非上下文另有明示,否则单数形式“一个(a)”、“一个(an)”和“所述(the)”旨在同样包括复数形式。还将理解的是,如本文使用的术语“和/或”指代并且包括相关联列举项的一个或多个项的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或它们的组的存在或添加。术语软件应用二进制意指采用二进制格式的计算机应用。软件应用二进制可以使用适当的程序来读取,或者可以被提取用于揭示资产(revealassets)。应当理解,软件应用二进制、软件应用、经编译的软件应用、和计算机应用可被互换地使用。一种用于在经编译软件内修改机器指令的方法和系统包括软件模块,该软件模块用于:接收具有所期望的修改选项的计算机应用、分析该计算机应用以判定在哪个(哪些)级别处修改该计算机应用、在所确定的(多个)级别处修改该计算机应用、以及返回经修改的计算机应用。与直接将修改嵌入源代码内的编本文档来自技高网
...
一种用于在经编译软件内修改机器指令的方法和系统

【技术保护点】
一种修改软件的方法,所述方法包括:在计算设备处:a.接收软件应用二进制;b.分析所述软件应用二进制以判定是否需要对二进制指令进行修改;c.如果需要对所述二进制指令进行所述修改,则修改所述二进制指令;d.将新的元数据注入到所述软件中;e.对经修改的软件应用二进制进行编译;以及f.返回所述经修改的软件应用二进制。

【技术特征摘要】
【国外来华专利技术】2015.07.17 US 62/194,1801.一种修改软件的方法,所述方法包括:在计算设备处:a.接收软件应用二进制;b.分析所述软件应用二进制以判定是否需要对二进制指令进行修改;c.如果需要对所述二进制指令进行所述修改,则修改所述二进制指令;d.将新的元数据注入到所述软件中;e.对经修改的软件应用二进制进行编译;以及f.返回所述经修改的软件应用二进制。2.如权利要求1所述的修改软件的方法,进一步包括:接收一个或多个修改选项,其中,分析所述软件应用二进制的步骤进一步包括分析所述一个或多个修改选项,其中,修改所述二进制指令的步骤进一步基于所述一个或多个修改选项。3.如权利要求2所述的修改软件的方法,进一步包括:分析所述软件应用二进制和所述一个或多个修改选项以判定是否需要对汇编指令进行修改,其中,如果需要对所述汇编指令进行修改,则将二进制指令反汇编成汇编指令并且修改所述汇编指令。4.如权利要求3所述的修改软件的方法,进一步包括:分析所述软件应用二进制和所述一个或多个修改选项以判定是否需要对源代码进行修改,其中,如果需要对源代码进行修改,则将汇编指令反编译成源代码指令并且修改所述源代码指令。5.如权利要求4所述的修改软件的方法,进一步包括:接收所述软件应用二进制的元数据,其中,分析软件应用二进制的步骤进一步包括分析所述元数据,其中,修改所述二进制指令的步骤进一步基于所述元数据。6.如权利要求5所述的修改软件的方法,进一步包括:在返回所述软件应用二进制之前使用数字密钥对所述经修改的软件应用二进制进行签名。7.如权利要求6所述的修改软件的方法,其中,接收所述软件应用二进制选自由以下各项组成的组:从用户上传所述应用二进制或于在线应用市场下载所述应用二进制来接收所述应用二进制。8.如权利要求7所述的修改软件的方法,其中,返回所述软件应用二进制选自由以下各项组成的组:提供所述软件应用二进制...

【专利技术属性】
技术研发人员:C·休斯A·施罗德L·米切尔
申请(专利权)人:英航斯公司
类型:发明
国别省市:美国,US

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1