[发明专利]一种NativeAPI函数重构方法和装置有效
申请号: | 201410775577.X | 申请日: | 2014-12-15 |
公开(公告)号: | CN104392169B | 公开(公告)日: | 2018-05-01 |
发明(设计)人: | 郑建强;刘德建;陈宏展;钟良德;方振华;李上杰 | 申请(专利权)人: | 福建天晴数码有限公司 |
主分类号: | G06F21/51 | 分类号: | G06F21/51 |
代理公司: | 福州市景弘专利代理事务所(普通合伙)35219 | 代理人: | 林祥翔,吕元辉 |
地址: | 350015 *** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 native api 函数 方法 装置 | ||
技术领域
本发明涉及计算机技术安全领域,特别涉及一种Native API函数重构方法和装置。
背景技术
随着WINDOWS API(WINDOWS Application Programming Interface,WINDOWS应用程序编程接口)编程的广泛普及和应用,越来越多的应用程序可以通过调用WINDOWS API函数来完成相应的功能。目前,应用程序在实现具体功能时,在应用层,首先需要加载与功能相关的DLL(Dynamic Link Library,动态链接库),然后根据GetProcAddress函数获取DLL中WINDOWS API函数的起始地址,根据这些起始地址调用对应的WINDOWS API函数,这些WINDOWS API函数通常会最终调用较低级的Native API函数,这些Native API函数最终完成对驱动层的访问。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:在应用层上,恶意程序(比如利用钩子HOOK技术的程序)可以预先处理GetProcAddress函数,以得到相关的API函数(通常可以包括WINDOWS API函数或者Native API函数)的起始地址,并获取API函数的内容或对API函数的内容进行修改。因此,在应用层上,恶意程序均可以非法监听、拦截或篡改API函数中的内容,从而使得应用程序存在较大的安全隐患。
因此,如何避免应用程序在调用API函数时,被恶意程序非法监听、拦截,甚至篡改API函数中的内容,进而解决应用程序存在的安全隐患,是计算机技术安全领域亟需解决的一个问题。
发明内容
为此,需要提供一种Native API函数重构的技术方案,用以解决现有技术中调用API函数的过程中容易被恶意程序预先处理,使得应用程序存在较大的安全隐患的问题。
为实现上述目的,发明人提供了一种Native API函数重构方法,所述方法包括如下步骤:
自定义实现Native API函数;
将所述Native API函数封装为静态库lib文件,并保存于本地;其中所述静态库lib文件位于自定义代码段中。
作为Native API函数重构方法的一种可实施方式,自定义实现Native API函数的方法基于系统类型;所述系统类型包括32位系统或64位系统。
作为Native API函数重构方法的一种可实施方式,所述自定义实现Native API函数的方法基于系统类型具体包括:
当所述系统类型为32位系统时,自定义实现32位系统的Native API函数并将其保存于所述自定义代码段中的第一指定位置;或,
当所述系统类型为64位系统时,自定义实现64位系统的Native API函数并将其保存于所述自定义代码段中的第二指定位置。
作为Native API函数重构方法的一种可实施方式,所述自定义实现64位系统的Native API函数还包括整合操作,所述整合操作包括指令整合和堆栈整合;
所述指令整合包括设置寄存器ECX指令和设置寄存器EDX指令,所述寄存器ECX和寄存器EDX用于存储调用自定义实现64位的Native API函数的参数;
所述堆栈整合具体包括:
在调用自定义实现64位系统的Native API函数前将当前堆栈的栈顶指针ESP及栈底指针EBP的初始值保存至静态局部变量中;
在调用完自定义实现64位系统的Native API函数后,将当前堆栈的栈顶指针ESP及栈底指针EBP的值替换为初始值。
作为Native API函数重构方法的一种可实施方式,所述方法还包括:
对自定义实现的Native API函数进行虚拟化操作。
发明人还提供了一种Native API函数重构装置,所述装置包括实现单元,封装单元以及存储单元;
所述实现单元用于自定义实现Native API函数;
所述封装单元用于将所述自定义实现Native API函数封装为静态库lib文件;其中,所述静态库lib文件位于可执行应用程序自定义代码段中;
所述存储单元用于将静态库lib文件保存于本地。
作为Native API函数重构装置的一种可实施方式,实现单元自定义实现Native API函数基于系统类型;所述系统类型包括32位系统或64位系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴数码有限公司,未经福建天晴数码有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410775577.X/2.html,转载请声明来源钻瓜专利网。