利用呼叫堆栈信息之应用程序接口(API)认证方法技术

技术编号:5472674 阅读:243 留言:0更新日期:2012-04-11 18:40
本发明专利技术关于一种利用纪录在呼叫堆栈中的信息鉴定应用程序接口(API)的方法。API认证方法中,应用程序已安装于一系统内,不论至少一应用程序被执行,当所执行之应用程序被拦截时,需要API函数。输出API函数之呼叫堆栈细节。堆栈数据库系储存了操作应用程序中所需之各种API函数的呼叫堆栈细节,并且核对该等输出呼叫堆栈细节,对输出呼叫堆栈细节搜寻一堆栈数据库,并且核对所输出呼叫堆栈细节。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及利用记录在呼叫堆栈中的信息验证API的方法。技术背景如熟悉本
人员所知,堆栈意指数据储存单元或储存待处理所需的缓冲, 其在IBM计算器词典称为后进先出表。这意味着当接收新所需时,先于新的所需的 所需是后推的。因此,堆栈以后进先出(LIFO)的方式操作。呼叫堆栈用于记录细节,例如呼叫函数或参数的返回地址;依据LIFO法则,当 需要执行函数时,藉由过程所需的应用程序界面(API)函数,返回地址储存于堆栈 中,当结束所呼叫函数时,继续任务。同时,在各种类型应用程序所安装的系统环境中,当复制能够执行控制和安全 的应用程序的管理或安全程序(此后总称为管理程序)时,必须与给定应用程序紧 密合作。然而,就每个应用程序而言,由于开发应用程序的开发者通常不向公众开 放程序代码等,以保护其技术,第三方分析应用程序的配置的能力也有限,因而第 三方不易复制和配置管理程序与各种类型应用程序紧密合作工作。这此困难导致侵入程序的使用(黑客程序、病毒等),具有类似于管理程序的 配置和执行方法执行系统中未授权的任务,同时避免管理程序的监督,因此将管理 程序的能力严格地限制于管理系统。同时,管理程序所使用的与应用程序紧密合作的最通常方法包括拦截和控制应 用程序所使用的特定函数的方法。此方法的执行是藉由允许或禁止执行现有API函 数、或藉由以管理程序的API函数取代现有API函数。在传统管理程序的情况下,为达到控制API函数的目的,必须将各个函数分类, 藉由核对函数参数而执行分类方法。然而,此分类方法是有疑问的,由于难于对为 不同目的而进行相同行为的API函数进行分类(侵入或黑客的授权执行与非授权执 行)。也就是说,当应用程序的环境文件改变时,API函数的参数分别地用于(1) 利用环境文件改变应用程序本身的变化的情况和(2)使用者随机地建立环境文件和在前述文件上重写所建立文件的情况下是相互相同的。相应地,利用传统管理程序 不能将所称API函数的基本目的和用法分类。这些问题急待解决,因为管理程序当与应用程序紧密合作时解决管理程序能力 有限。
技术实现思路
据此,本专利技术旨在于解决现有技术中存在的问题,本专利技术的一个目的是提供利 用储存于呼叫堆栈中的信息修改API的方法,其可核对作为管理程序执行基础、超 出侵入过程控制范围的信息,因此安全地进行系统有效的、可靠的管理。 (技术方案)决定是否至少一应用程序在应用程序安装的系统中执行;拦截当应用程序执行 时所需的API函数;输出API函数呼叫堆栈的细节;以及搜寻堆栈数据库用以输出 呼叫堆栈细节,在堆栈数据库中储存操作应用程序所需的各种类型的API函数的呼 叫堆栈细节,核对输出呼叫堆栈细节。 (有益效果)依据本专利技术,藉由核对API函数的执行所需细节,系统精确地决定随机应用程 序执行的任务是授权的还是非授权的,相应地,即使应用程序的配置不是精确地分 析,或若系统中应用程序的操作形式不能完全地理解,应用程序执行的消极操作可 更精确地控制,系统中应用程序的操作可稳定地管理,因此防止各种类型的藉由各 种方法存取系统的侵入程序的操作。附图说明图1所示为本专利技术之修改API的方法的操作流程的流程图;图2所示为本专利技术在系统中修改API过程的方块图;以及图3所示为堆栈结构的概念图。其中,附图标记说明如下S10 S70步骤100堆栈110区域在下文中,将参考附图详细地描述本专利技术的具体实施例。术语"堆栈"意指数据储存单元或待处理所需储存的缓冲器,其中,所所需数 据以LIFO的方式记录,并藉由堆栈顶部而插入或删除。此数据包括应用程序界面 (API)函数的执行所需细节,需要API函数执行操作系统或各种应用程序的逻辑。 本专利技术的API修改方法可由堆栈读取记录在堆栈中的API函数的执行所需细节,并 可决定系统(计算器)所执行的函数的目的,或可决定当前执行的函数是否是未授 权的函数。图3所示为堆栈结构的示意图。以下描述请参照图3。堆栈100放置于处理器中的内存中,包括一处理器,并通常分为区域110,每个 区域具有4个字符。当使用者操作并呼叫一函数时,处理器需要记录以正常地执行呼叫函数,此记 录依次地留在堆栈100的区域110内。据熟习本领域技术人员所知,后进先出(LIFO)是输入最后的指令或函数到堆 栈中先处理的方法,由此,堆栈100亦依此次序操作。因此,于区域110中纪录细 节,由堆栈100的顶部至底部次序记录,且操作上由底部到顶部依序进行。进一步 地,处理器核对的每个区域110,以参考返回地址核对下一个操作。例如,由于堆栈100的每个区域110具有一唯一的地址,此唯一地址称为返回 地址,藉由搜寻一地址,为所纪录的返回地址,可追踪处理器的操作流程。同时,扩展基底指示器(Extended Base Pointer)系配置以定义操作的边界让处 理器得以施行,并执行EBP使得返回地址依此规则在一区域中比在EBP区域中优先 被纪录。(参考数据l)PowerPoint <dwDesiredAccess 80000000〉, 〈dwCreationDisposition 00000003〉 file Name=C:\D0CUME~l\ALLUSE~l\APPLIC~l\MICROS~ l\Office\Data\DATA.BAK Stack=011B0000 C:\Product\bin\vsd\vsdpwpnLdll +00005E1A (3A43, 80000000, 1, 3, 1) 7C800000 C:\WINDOWS\system32\kernel32.dll +00027757 (13CF00, 80000000, 1, 0, 3)+00027B6B (13CF00, 13D300, 0, 0, 0) 011B0000 C:\Product\bin\vsd\vsdpwpnt.dll +000033E4 (13CF00, 13D300, 0, 0, 0) 7C800000 C:\WINDOWS\system32\kernel32.dll +0002872E (7FFDDC00, 18B430, 0, 0, 0)30B00000 C:\Program Files\Common Files\Microsoft Shared\office 10\mso.dll +00035963 (13DD64, 13DE68, 1, 118, F50010) +00035644 (13ED7C, 4, 8, F50010, 0)+00034E04 (30BC05BC, 30B61F9F, 30B61B3E, F2015C, F201EC) +0006061E (0, FFFFFFFE, 0, 13EE58, 4A)(参考数据2)PowerPoint 〈dwDesiredAccess 80000000〉, 〈dwCreationDisposition 00000001〉 file Name = C:\data.bak Stack =01 IBOOOO C:\Product\bin\vsd\vsdpwpnLdll +00005E1A (3A43, 80000000, 0, 1, 1)30B00000 C:\Progra本文档来自技高网
...

【技术保护点】
一种利用呼叫堆栈信息的应用程序接口(API)认证方法,其包括: 当应用程序在一系统中已安装时,决定是否至少一应用程序被执行; 当此应用程序被执行时,拦截所需之一API函数; 对该API函数输出呼叫堆栈之细节;以及 对 该等输出呼叫堆栈细节搜寻一堆栈数据库,该数据库系储存了操作应用程序中所需之各种API函数的呼叫堆栈细节,并且核对该等输出呼叫堆栈细节。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:陈京燮
申请(专利权)人:软件营地株式会社
类型:发明
国别省市:KR[韩国]

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

1