CN101663666A - 二进制码验证服务 - Google Patents

二进制码验证服务 Download PDF

Info

Publication number
CN101663666A
CN101663666A CN200880012516A CN200880012516A CN101663666A CN 101663666 A CN101663666 A CN 101663666A CN 200880012516 A CN200880012516 A CN 200880012516A CN 200880012516 A CN200880012516 A CN 200880012516A CN 101663666 A CN101663666 A CN 101663666A
Authority
CN
China
Prior art keywords
binary
service
binary verification
verification
described binary
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
Application number
CN200880012516A
Other languages
English (en)
Other versions
CN101663666B (zh
Inventor
S·M·C·沙斯特里
P·本达普蒂
N·加纳帕锡
V·A·列文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101663666A publication Critical patent/CN101663666A/zh
Application granted granted Critical
Publication of CN101663666B publication Critical patent/CN101663666B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

在二进制码验证服务处从二进制码验证客户机代理接收二进制码。该二进制码验证服务执行二进制码的二进制码验证,其中二进制码验证包括确定该二进制码是否遵从使用规则集。二进制码验证服务将二进制码验证结果发送给二进制码验证客户机代理。

Description

二进制码验证服务
背景
软件质量在安全性和可靠性的上下文中是尤其至关重要的。存在可以作为开发过程的一部分在源代码上运行的工具,这些工具检查各种常见隐错或漏洞以及使用特定规则来验证源代码的遵从性。还可以测试源代码来确保源代码不具有诸如缓冲区溢出等严重安全问题。然而,在任何软件系统或产品中,实际发送给顾客的内容是组成该产品的不同可执行文件的原始比特(被称为二进制码)。当今用于提供二进制码验证的系统是不充分的。
概述
下面提供本发明的简要概述以便向读者提供基本的理解。本概述不是本发明的详尽概观,并且既不标识本发明的关键/决定性要素也不描绘本发明的范围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描述的序言。
本发明的各实施例涉及一种二进制码验证服务。该二进制码验证服务可以确定二进制码是否遵循一个或多个使用规则集并依此对该二进制码评分。在一个示例场景中,该二进制码验证服务可以在安装在系统上之前检查二进制码的质量。在另一示例场景中,程序员可以将该二进制码验证服务用作产品的软件开发的一部分。
许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。
附图简述
附图中使用相同的附图标记来指代相同的部分。
图1是根据本发明一实施例的二进制码验证系统的框图。
图2是根据本发明一实施例的二进制码验证服务的框图。
图3是示出根据本发明一实施例的二进制码验证服务的逻辑和操作的流程图。
图4是示出根据本发明一实施例的在软件开发期间使用二进制码验证服务的逻辑和操作的流程图。
图5是示出根据本发明一实施例的更新二进制码验证服务的使用规则的逻辑和操作的流程图。
图6是用于实现本发明的各实施例的示例计算设备的框图。
详细描述
下面结合附图提供的详细描述旨在作为对本发明各示例的描述,而非表示用于解释或利用本发明各示例的唯一形式。本说明书阐述各示例的功能以及用于构造和操作各示例的步骤序列。然而,相同或等价的功能与序列可由不同的示例来实现。
图1示出了根据本发明的一实施例的二进制码验证系统100。系统100包括可以与服务器106通信的客户机102。客户机102可以使用诸如内联网、因特网、或其任何组合等网络(未示出)来连接到服务器106。为了简明起见示出一个客户机102,但应该理解多个客户机102可以连接到服务器106来寻求二进制码验证服务。客户机102和/或服务器106可被实现为如以下结合图6所述的计算设备。
客户机102包括用于与服务器106上的二进制码验证服务108通信的二进制码验证客户机代理104。客户机代理104可用于为客户机102处的用户验证二进制码。例如,用户下载设备驱动程序来安装在客户机102上。然而,在将该设备驱动程序安装在客户机102上之前,用户可以使用客户机代理104来验证该设备驱动程序二进制码。以这种方式,用户可以在安装该设备驱动程序并可能因编写得糟糕的驱动程序而损坏客户机102之前测试该设备驱动程序是否遵从针对客户机操作系统的使用规则。
如此处所使用的,“二进制码”表示可执行机器代码。如此处所使用的,“二进制码验证”表示分析二进制码来确定二进制码是否遵从一使用规则集。这些使用规则定义应该遵循以便最小化二进制码可能对该二进制码在其中执行的环境所造成的破坏的编程技术。换言之,这些使用规则定义二进制码与诸如操作系统等该二进制码的操作环境之间的正确交互。例如,可以检查设备驱动程序二进制码以确保该设备驱动程序二进制码符合设备驱动程序接口规则(例如,微软
Figure A20088001251600081
驱动程序开发工具包(DDK)等)。二进制码验证可以确认设备驱动程序二进制码的行为并寻找内核API的二进制码使用中的缺陷。在另一示例中,可以对照应用程序编程接口(API)规则(例如,微软API)对用户模式二进制码进行验证。API使用规则可以应用于包括锁定特性、中断请求调用、即插即用、电源管理等各种领域。示例使用规则验证针对API调用的参数的范围,验证以特定次序对API的调用等等。
在系统100中,服务器106包括二进制码验证服务108。尽管仅示出了一个服务器106,但是应该理解,二进制码验证服务108可由两个或更多服务器来支持。二进制码验证服务108可以从客户机代理104接收执行对二进制码的二进制码验证的二进制码验证请求110。二进制码验证服务108将所请求的二进制码的二进制码验证结果112返回给客户机代理104。二进制码验证结果112可以包括指示该二进制码有多遵从一使用规则集的对二进制码的验证评分(例如,A到F的等级、1到10的尺度评分等等)。在一个实施例中,该二进制码验证无须是可靠或完整的(即,验证可能找到某些假肯定或可能遗漏某些使用规则违反)。
客户机代理104随后可以向客户机102处的用户呈现该验证结果。用户可以使用该验证结果来确定是否要安装和/或执行该二进制码。在另一实例中,用户可以包括将验证结果112用于开发软件程序的程序员。
转向图2,示出了二进制码验证服务108的一实施例。服务108可以包括二进制码标识(ID)工具202、二进制码验证引擎204、以及二进制码验证服务数据库206。在一个实施例中,服务108可被实现为可由一个或多个服务器106执行的计算机可读指令。
在服务108处接收二进制码验证请求210。请求210可以包括二进制码标识信息来唯一地标识二进制码。例如,驱动程序二进制码可被数字签名并具有用于该驱动程序和该驱动程序的版本的唯一标识。
在二进制码ID信息在服务108处被接收到时,二进制码ID工具202可以搜索数据库206来确定该二进制码是否已经被验证。如果该二进制码先前已经被验证,则将该二进制码的二进制码验证结果212发送到请求的客户机代理。如果该二进制码先前未被验证,则服务108可以向客户机代理请求该二进制码的副本。或者,原始二进制码验证请求可以包括二进制码ID信息以及该二进制码本身。
二进制验证引擎204对照一使用规则集205来检查二进制码。服务108可以执行静态验证(在不执行二进制码的情况下验证该二进制码)和/或动态验证(对该二进制码进行插装(instrument)并随后在执行该二进制码的同时检查该二进制码)。二进制码验证引擎204可以包括两个或多个使用规则集205。可以在适合某二进制码时将合适的使用规则集205应用于该二进制码。例如,可以使用与用于诸如微软Internet Explorer等浏览器的应用程序插件的使用规则集不同的适用规则集来测试用于微软Windows VistaTM的设备驱动程序二进制码。二进制码验证引擎204可以包括诸如微软的经由可伸缩程序分析的错误检测(ESP)以及微软的静态驱动程序验证器(SDV)(其使用SLAM分析引擎)等二进制码验证引擎。
在由二进制码验证引擎204验证之后,可以将验证结果保存在服务数据库206中。以此方式,如果该二进制码的验证被再次请求,则服务108可以提供来自服务数据库206的验证结果而不是必须重新验证该同样的二进制码。该二进制码本身也可以与该二进制码的验证结果一起保存在服务数据库206中。
服务108将二进制码验证结果212发送到请求的客户机代理。在一个实施例中,验证结果可以包括指示二进制码有多严格地遵循使用规则的评级尺度。例如,二进制码可被评为等级“A”(遵循几乎所有规则)到“F”(几乎不遵循规则),或尺度10(遵循几乎所有规则)到1(几乎不遵循规则)等等。在另一实施例中,验证结果可以指示针对一个或多个使用规则的结果;这些单独结果可以包括针对每一使用规则通过、失败、或不确定。在又一实施例中,验证结果可以指示使用了哪些使用规则集来测试二进制码。
服务108还可以接收使用规则更新214。使用规则更新214可以包括对现存使用规则的修订或新使用规则。在一个实施例中,可以响应于在服务108处接收到的使用规则更新来重新验证存储在服务数据库206中的一个或多个二进制码(以下进一步讨论)。
转向图3,流程图300示出根据本发明一实施例的二进制码验证的逻辑和操作。在一个实施例中,流程图300的逻辑的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。
从框302开始,客户机代理检查要验证的一个或多个二进制码。该客户机代理可以收集唯一地标识二进制码的关于该二进制码的二进制码标识信息。二进制码还可以具有指示该二进制码已经被验证和/或验证结果的电子签名。在一个实施例中,客户机代理响应于用户输入来检查二进制码。例如,用户为客户机102下载新设备驱动程序。可以由客户机代理104向用户呈现命令框,以提议在新设备驱动程序的安装之前验证该新设备驱动程序。在另一实施例中,用户可以请求客户机代理104自动验证新二进制码和/或周期性地检查对先前已验证的二进制码的验证更新。
接着,在判定框304中,该逻辑确定验证信息是否被包括在二进制码中,诸如在电子签名中。如果对判定框304的回答是“是”,则该逻辑继续至框314来向用户呈现包括在二进制码本身内的验证结果。还可以向用户呈现使用服务108重新验证该二进制码的选项。以此方式,用户可以对已经使用最新的使用规则验证了该二进制码感到自信。
如果对判定框304的回答是“否”,则该逻辑继续至框306。在框306中,客户机代理向二进制码验证服务发送先前收集的二进制码标识信息。
继续到框308,二进制码验证服务使用二进制码标识信息来在服务数据库中查找该二进制码。应该理解,服务数据库可以包括在一个物理位置处的若干数据库和/或在不同物理位置但诸如通过网络互连的若干数据库。
接着,在判定框310,该逻辑确定该二进制码的二进制码验证结果是否被存储在服务数据库中。如果对判定框310的回答是“是”,则该逻辑继续至框312。
在框312,二进制码验证服务将该二进制码的验证结果返回给客户机代理。接着,在框314,客户机代理向用户呈现该验证结果。在一个实施例中,用户可以使用该验证结果来确定是否在他们的系统上安装新设备驱动程序。
如果对判定框310的回答是“否”,则该逻辑继续至框316。在框316,服务向客户机代理请求二进制码的副本。继续到框318,客户机将待验证的二进制码发送到服务。接着,在框320,服务验证该二进制码。
继续到框322,服务将验证结果存储在服务数据库中。以此方式,在服务被请求来再次验证相同的二进制码时(来自当前客户机代理或另一客户机代理),则该服务可以参考所保存的验证结果而不是必须重新验证相同的二进制码。在一个实施例中,二进制码本身的副本也可被存储在服务数据库中。如以下进一步讨论的,可以在服务处的二进制码验证使用规则被更新之后重新验证存储在该服务处的二进制码。
继续到框324,服务将验证结果返回给客户机代理。接着,在框326,该验证结果由客户机代理呈现给用户。
转向图4,流程图400示出根据本发明一实施例的在软件开发期间使用二进制码验证服务的二进制验证的逻辑和操作。在一个实施例中,流程图400的逻辑的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。
从框402开始,用户开发源代码。用户可以包括程序员、软件开发者、厂商等等。接着,在框404,用户编译该源代码并使用二进制验证客户机代理将所得的二进制码发送到二进制码验证服务。继续到框406,该服务对该二进制码执行二进制码验证。如框408中所示,该服务随后将二进制码验证结果发送回给用户。
该逻辑继续到判定框410,在那里至少部分地基于所接收到的验证结果来作出该二进制码是否准备好发行的判定。如果对判定框410的回答是“否”,则该逻辑继续到框412,在那里用户对源代码作出更新以尝试使该代码与更多使用规则兼容并从而改善验证结果。在框412之后,该逻辑返回到框404,在那里用户向服务发送对应于经更新的源代码的二进制码。
如果对判定框410的回答是“是”,则该逻辑继续至框414。在框414,可以使用所接收到的二进制码验证结果来证实该二进制码。该二进制码可以被电子签署,以指示该二进制码已经被服务验证。还可以将验证结果的至少一部分包括在该二进制码中,使得该验证结果可以在安装或/执行该二进制码之前由用户审阅。
转向图5,流程图500示出根据本发明一实施例的更新二进制码验证服务的使用规则的逻辑和操作。在一个实施例中,流程图500的逻辑的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。
在框502开始,在二进制码验证服务处接收新使用规则。新规则可以包括对服务处的现存使用规则的修订。继续到框504,确认该新使用规则。该新使用规则可以由平台提供者确认(例如,在微软
Figure A20088001251600121
的情况下由微软公司确认)。该新使用规则还可以由计算社区讨论论坛(诸如web讨论委员会)、标准委员会、或其他组来确认。
接着,在框506,如果确认了新使用规则,则使用该新使用规则来更新二进制码验证服务。在一个实例中,在适当时将该新使用规则添加到一个或多个使用规则集。例如,将与设备驱动有关的新使用规则添加到用于验证设备驱动的一个或多个使用规则集。
继续到框508,使用该新使用规则对服务数据库中存储的二进制码的至少一部分执行二进制码验证。继续到框510,作为新使用规则的结果,更新存储在服务处的二进制码的验证结果。
继续到框512,由服务通知一个或多个用户对他们的二进制码的新验证结果。在软件开发者的情况下,已更新的验证结果可用于为产品(例如,设备驱动程序)重写代码、重新验证产品、以及重新证实该产品。该软件开发者随后可以使顾客意识到已更新的产品。在另一示例中,可以诸如通过微软
Figure A20088001251600122
更新将已更新的验证结果推送给用户,来自动地向用户发送关于新验证结果的警告。这可以改善客户机系统的可靠性和稳定性并从而改善用户体验。
本发明的各实施例提供二进制码验证服务。由于二进制码验证的复杂性和计算强度,在客户机机器上执行二进制码验证是不切实际的。同样,在客户机二进制码验证中,最终用户被施加了将已更新的使用规则下载到该客户机上的负担。二进制码验证服务为最终用户以及软件开发者提供集中式位置以对照最新的使用规则对二进制码进行验证。二进制码验证服务还允许平台厂商在由独立厂商开发的各种应用程序运行于它的平台上的情况下确保平台的质量和稳健性。
图6及以下讨论旨在提供对实现本发明的各实施例的合适的计算环境的简要概括描述。图6的操作环境只是合适的操作环境的一个示例,并不旨在对该操作环境的使用范围或功能提出任何局限。可适用于与在此所述的各实施例一起使用的其它公知计算设备、环境、和/或配置包括但不限于个人计算机、服务器计算机、手持或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
尽管并非必需,但本发明的各实施例在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述。计算机可读指令可通过计算机可读介质来分发(在以下讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,如函数、对象、应用程序编程接口(API)、数据结构等等。通常,计算机可读指令的功能可按需在各个环境中组合或分布。
图6示出了用于实现本发明的一个或多个实施例的计算设备600的示例。在一种配置中,计算设备600包括至少一个处理单元602和存储器604。取决于计算设备的确切配置和类型,存储器604可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该配置在图6中由虚线606来例示。
在其它实施例中,设备600可以包括附加特征和/或功能。例如,设备600还可以包括附加存储(例如,可移动和/或不可移动),其中包括但不限于磁存储、光存储等等。这样的附加存储在图6中由存储608示出。在一个实施例中,用于实现本发明各实施例的计算机可读指令可以在存储608中。存储608还可以储存实现操作系统、应用程序等的其它计算机可读指令。
此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其它数据这样的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器604和存储608都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并且可由设备600访问的任何其它介质。任何这样的计算机存储介质都可以是设备600的一部分。
设备600还可包括允许该设备600与其它设备进行通信的通信连接612。通信连接612可包括但不限于,调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外线端口、USB连接、或用于将计算设备600连接到其它计算设备的其他接口。通信连接612可以包括有线连接或无线连接。通信连接612可以发送和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质通常以诸如载波或其它传输机制等“已调制数据信号”来体现计算机可读指令或其它数据,并包括任何信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及无线介质,如声学、射频、红外、近场通信(NFC)和其它无线介质。
设备600可包括输入设备614,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其它输入设备。设备600中还可包括输出设备616,诸如一个或多个显示器、扬声器、打印机和/或任何其它输出设备。输入设备614和输出设备616可以通过有线连接、无线连接或其任何组合来连接到设备600。在一个实施例中,来自另一计算设备的输入设备或输出设备可用作计算设备600的输入设备614或输出设备616。
计算设备600的组件可以通过诸如总线等各种互连来连接。这些互连可包括诸如PCI Express等外围部件互连(PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等。在另一实施例中,计算设备600的组件可以通过网络互连。例如,存储器604可由位于通过网络互连的不同物理位置的多个物理存储器单元组成。
在描述和权利要求书中,可使用术语“耦合的”及其派生词。“耦合的”可意味着两个或多个元件正在接触(物理地、电子地、磁性地、光学地等)。“耦合的”还可意味着两个或多个元件未彼此接触,但仍彼此合作或交互(例如,通信地耦合的)。
本领域技术人员会认识到,用于存储计算机可读指令的存储设备可分布在网络上。例如,可以通过网络620访问的计算设备630可以储存实现本发明的一个或多个实施例的计算机可读指令。计算设备600可以访问计算设备630并下载部分或全部计算机可读指令来执行。或者,计算设备600可以按需下载计算机可读指令的片断,或者某些指令可以在计算设备600处执行而某些则在计算设备630处执行。本领域的技术人员还可认识到,所有或部分计算机可读指令可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等专用电路来实现。
此处描述了本发明各实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以组成储存在一个或多个计算机可读介质上的计算机可读指令,这些指令如果被计算设备执行则使得计算设备执行所描述的操作。描述一些或全部操作的顺序不应被解释为暗示了这些操作必须要依赖于顺序。从本说明书获益的本领域技术人员应理解替换的排序。此外,应该理解并非所有的操作都必须存在于本发明的每一实施例中。
本发明各实施例的以上描述,包括在摘要中所描述的内容,不旨在是穷举或将各实施例限于所公开的精确形式。尽管本发明的具体实施例和示例此处是为了说明的目的而描述的,但如相关领域的技术人员鉴于以上详细描述所能认识到的,各种等效技术方案和修改都是可能的。在所附权利要求书中所使用的术语不应被解释为将本发明限于说明书中所公开的具体实施例。相反,所附权利要求书应该根据所确立的权利要求解释原则来解释。

Claims (20)

1.一种方法,包括:
在二进制码验证服务处从二进制码验证客户机代理接收二进制码(306);
由所述二进制码验证服务执行所述二进制码的二进制码验证,其中二进制码验证包括确定所述二进制码是否遵从一使用规则集(320);以及
由二进制码验证服务将二进制码验证结果发送到所述二进制码验证客户机代理(312、314)。
2.如权利要求1所述的方法,其特征在于,还包括:
由所述二进制码验证服务将所述二进制码验证结果存储在二进制码验证服务数据库中。
3.如权利要求1所述的方法,其特征在于,还包括:
在所述二进制码验证服务处接收与第二二进制码相关联的二进制码标识信息;
由所述二进制码验证服务使用所述二进制码标识信息在二进制码验证服务数据库中查找二进制码验证结果;以及
由所述二进制码验证服务将对应于在所述二进制码验证服务数据库中所找到的所述第二二进制码的二进制码验证结果发送到所述二进制码验证客户机代理。
4.如权利要求1所述的方法,其特征在于,还包括:
在所述二进制码验证服务处接收新使用规则;以及
由所述二进制码验证服务使用所述新使用规则来更新所述使用规则集。
5.如权利要求4所述的方法,其特征在于,还包括:
由所述二进制码验证服务用已更新的使用规则集来执行存储在二进制码验证服务数据库中的二进制码的二进制码验证;以及
由所述二进制码验证服务更新对应于存储在所述二进制码验证服务数据库中的二进制码的二进制码验证结果。
6.如权利要求5所述的方法,其特征在于,还包括:
由所述二进制码验证服务向一个或多个用户通知一个或多个已更新的验证结果。
7.如权利要求1所述的方法,其特征在于,所述二进制码验证结果包括所述二进制码的等级。
8.一种或多种其上包含在被执行时实现如权利要求1所述的方法的计算机可读指令的计算机可读介质。
9.一种方法,包括:
由二进制码验证客户机代理将二进制码发送到二进制码验证服务(306);
在所述二进制码验证客户机代理处从所述二进制码验证服务接收所述二进制码的二进制码验证结果(312、324)。
10.如权利要求9所述的方法,其特征在于,还包括:
在所述二进制码验证客户机代理处至少部分地基于所述二进制码验证客户机代理处的用户输入选择要验证的二进制码。
11.如权利要求9所述的方法,其特征在于,还包括:
由所述二进制码验证客户机代理将与所述二进制码相关联的二进制码标识信息发送到所述二进制码验证服务;以及
从所述二进制码验证服务接收对所述二进制码的请求,其中所述二进制码验证服务不具有为所述二进制码存储的二进制码验证结果。
12.如权利要求9所述的方法,其特征在于,还包括:
由所述二进制码验证客户机代理向用户呈现所述二进制码验证结果。
13.如权利要求9所述的方法,其特征在于,还包括:
由所述二进制码验证客户机代理将新规则发送到所述二进制码验证服务以更新所述使用规则集。
14.一种或多种其上包含在被执行时实现如权利要求9所述的方法的计算机可读指令的计算机可读介质。
15.一种系统,包括:
二进制码(210);
二进制码验证客户机代理(104);以及
连接到所述二进制码验证客户机代理的二进制码验证服务(108),所述二进制码验证服务响应于来自所述二进制码验证客户机代理的二进制码验证请求向所述二进制码验证客户机代理提供所述二进制码的二进制码验证结果。
16.如权利要求15所述的系统,其特征在于,所述二进制码验证请求包括与所述二进制码相关联的二进制码标识信息,所述二进制码验证服务提供来自存储了所述二进制码验证结果的二进制码验证服务数据库的二进制码验证结果。
17.如权利要求15所述的系统,其特征在于,所述二进制码验证请求包括所述二进制码,所述二进制码验证服务执行所述二进制码的二进制码验证。
18.如权利要求17所述的系统,其特征在于,所述二进制码验证服务将所述二进制码验证结果存储在二进制码验证服务数据库中。
19.如权利要求15所述的系统,其特征在于,所述二进制码验证服务从所述客户机代理接收新使用规则并使用所述新使用规则来更新所述二进制码验证服务处的使用规则集。
20.如权利要求19所述的系统,其特征在于,所述二进制码验证服务使用已更新的使用规则集来执行存储在二进制码验证服务数据库中的二进制码的二进制码验证、更新对应于存储在所述二进制码验证服务数据库中的二进制码的二进制码验证结果、以及向所述二进制码验证客户机代理通知所述二进制码的已更新的二进制码验证结果。
CN2008800125160A 2007-04-18 2008-03-11 二进制码验证服务 Expired - Fee Related CN101663666B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/736,935 2007-04-18
US11/736,935 US8074205B2 (en) 2007-04-18 2007-04-18 Binary verification service
PCT/US2008/056542 WO2008130744A1 (en) 2007-04-18 2008-03-11 Binary verification service

Publications (2)

Publication Number Publication Date
CN101663666A true CN101663666A (zh) 2010-03-03
CN101663666B CN101663666B (zh) 2012-12-12

Family

ID=39871627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800125160A Expired - Fee Related CN101663666B (zh) 2007-04-18 2008-03-11 二进制码验证服务

Country Status (4)

Country Link
US (1) US8074205B2 (zh)
EP (1) EP2137651A4 (zh)
CN (1) CN101663666B (zh)
WO (1) WO2008130744A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074205B2 (en) * 2007-04-18 2011-12-06 Microsoft Corporation Binary verification service
JP5471883B2 (ja) * 2009-07-17 2014-04-16 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム
US10452459B2 (en) 2016-12-09 2019-10-22 Microsoft Technology Licensing, Llc Device driver telemetry
US10467082B2 (en) * 2016-12-09 2019-11-05 Microsoft Technology Licensing, Llc Device driver verification
CN116150142B (zh) * 2023-04-14 2023-06-27 成都数联云算科技有限公司 字段校验及其规则获得方法、装置、介质、设备及产品

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313616A (en) * 1990-09-18 1994-05-17 88Open Consortium, Ltd. Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines
US6035107A (en) * 1997-08-28 2000-03-07 International Bunsiness Machines Corporation Method for performing functional comparison of combinational circuits
US6317868B1 (en) * 1997-10-24 2001-11-13 University Of Washington Process for transparently enforcing protection domains and access control as well as auditing operations in software components
US7111307B1 (en) * 1999-11-23 2006-09-19 Microsoft Corporation Method and system for monitoring and verifying software drivers using system resources including memory allocation and access
AU4794101A (en) * 2000-04-11 2001-10-23 Richard M Mathis Method and apparatus for computer memory protection and verification
US6651186B1 (en) * 2000-04-28 2003-11-18 Sun Microsystems, Inc. Remote incremental program verification using API definitions
US6862696B1 (en) * 2000-05-03 2005-03-01 Cigital System and method for software certification
WO2002056144A2 (en) * 2001-01-09 2002-07-18 Topcoder Inc Systems and methods for coding competitions
US6763517B2 (en) * 2001-02-12 2004-07-13 Sun Microsystems, Inc. Automated analysis of kernel and user core files including searching, ranking, and recommending patch files
US7062650B2 (en) * 2001-09-28 2006-06-13 Intel Corporation System and method for verifying integrity of system with multiple components
US6944772B2 (en) * 2001-12-26 2005-09-13 D'mitri Dozortsev System and method of enforcing executable code identity verification over the network
US8484696B2 (en) * 2002-07-05 2013-07-09 Igt Secure game download
US7089552B2 (en) * 2002-08-29 2006-08-08 Sun Microsystems, Inc. System and method for verifying installed software
US7150008B2 (en) * 2002-10-25 2006-12-12 Microsoft Corporation Non-invasive rule-based binary analysis of software assemblies
US20040153644A1 (en) * 2003-02-05 2004-08-05 Mccorkendale Bruce Preventing execution of potentially malicious software
EP1549012A1 (en) * 2003-12-24 2005-06-29 DataCenterTechnologies N.V. Method and system for identifying the content of files in a network
US20050251857A1 (en) * 2004-05-03 2005-11-10 International Business Machines Corporation Method and device for verifying the security of a computing platform
US7487545B2 (en) * 2004-06-17 2009-02-03 International Business Machines Corporation Probabilistic mechanism to determine level of security for a software package
US8423413B2 (en) * 2004-12-30 2013-04-16 Google Inc. Advertisement approval
JP4727278B2 (ja) * 2005-04-05 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
US7814465B2 (en) * 2006-05-12 2010-10-12 Oracle America, Inc. Method and apparatus for application verification
US8117612B2 (en) * 2007-01-05 2012-02-14 Microsoft Corporation Enterprise device driver management for operating system deployment
US8074205B2 (en) * 2007-04-18 2011-12-06 Microsoft Corporation Binary verification service

Also Published As

Publication number Publication date
EP2137651A1 (en) 2009-12-30
US8074205B2 (en) 2011-12-06
US20080258865A1 (en) 2008-10-23
EP2137651A4 (en) 2012-06-20
CN101663666B (zh) 2012-12-12
WO2008130744A1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
JP5479097B2 (ja) セキュアモジュールアプリケーションに関連する情報の管理
KR101654957B1 (ko) 모바일 애플리케이션의 디바이스 의존적인 온 디맨드 컴파일링 및 설치 기법
TWI359597B (en) Method,computer system ,and computer-readable medi
JP6930949B2 (ja) ソフトウェア配信システム、ソフトウェア配信サーバ、及びソフトウェア配信方法
CN109787774B (zh) 基于数字签名校验的升级下载方法、装置、服务器及终端
CN101663666B (zh) 二进制码验证服务
US20090210871A1 (en) System and method for software application migration
CN106682491B (zh) 应用下载方法和装置
EP1209576A1 (en) Registering device and method, information processing device and method, providing device and method, and program storage medium
WO2023124420A1 (zh) 应用签名方法、系统、交易终端及服务平台
CN116028092A (zh) 汽车ota升级任务熔断方法、装置、设备及存储介质
CN109582320B (zh) 写码方法及终端设备
CN111399867A (zh) 一种软件升级方法、装置、设备及计算机可读存储介质
CN105117260A (zh) 硬件设备驱动程序安装方法和系统
CN112667301A (zh) 车载操作系统的扩展坞实现方法和系统、电子设备
JP2021048495A (ja) 車載制御装置、情報処理装置、車両用ネットワークシステム、アプリケーションプログラムの提供方法、及びプログラム
CN116028077A (zh) 基于移动终端的应用安装方法、生态服务系统、电子设备
CN112860283B (zh) Sp升级包的自识别升级方法、装置及计算机设备
JP5766309B2 (ja) セキュアモジュールアプリケーションに関連する情報の管理
CN103164236A (zh) 远程服务器在线升级的方法及系统
CN110287087B (zh) 用于检测应用的方法和装置
JP5444563B2 (ja) 計算機システム、サーバ装置、端末装置及びソフトウェアアップデート方法
CN113760405B (zh) 一种网关接口的验签方法、装置、存储介质及电子设备
KR20110047341A (ko) 모바일 디바이스의 컴퓨터 접속 방법
CN113708938B (zh) 一种令牌获取方法、令牌获取装置及终端设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121212

CF01 Termination of patent right due to non-payment of annual fee