一种Windows平台下对抗API挂接的方法

文档序号:6555185阅读:141来源:国知局

专利名称::一种Windows平台下对抗API挂接的方法
技术领域
:本发明涉及Windows平台编程界面安全,特别是一种Windows平台下对抗API挂接的方法。
背景技术
:Windows平台下的API挂接是一种广泛使用的对WindowsAPI进行监控甚至修改其行为的技术,其中WindowsAPI是Windows提供的应用程序编程接口函数。出于对安全的考虑,对于想调用的API,使用者希望该API是没有被挂接的,并且其功能也没有被修改;这就需要一种判断API是否被修改并还原的方法。目前采用的是比较传统的手段,例如某些安全领域的软件会判断API首地址的内容是否为已知的特征机器码,如jmpxxx(汇编语言的跳转指令)/callxxx(调用函数指令)/pushxxx;ret(汇编语言的另一种跳转指令)这些特征,从而判断该API是否被修改,这种方法原理是判断API首地址的内容是否为汇编语言的无条件跳转指令。然而这种方法并不能应对所有API挂接的具体实现方法,即不能完全正确地判断一个API的内容正确性。例如恶意进程可以把API修改成其他的不影响执行流程的汇编语言指令,最后加上条件跳转指令,大大增加传统手段检测的难度。
发明内容本发明的目的在于提供一种Windows平台下对抗API挂接的方法,该方法可以阻止恶意修改编程接口的程序。本发明的技术方案如下一种Windows平台下对抗API挂接的方法,其特征在于进程调用API函数CreateFile打开提供API的PE文件,再将打开的PE文件映射到虚拟内存缓冲区,取得API在虚拟内存缓冲区内的偏移量,记为偏移一,然后进程通过调用API函数GetProcAddress取得API在进程空间的偏移量,记为偏移二,最后通过判断比较两个偏移的内容,将与偏移一不相同的偏移二的内容恢复成偏移一的内容。所述API即ApplicationProgrammingInterface应用程序编程接口。所述PE文件即Portableexecutableformat,是Windows32平台下的可执行档格式,是对应的API提供者。通常的PE文件包括后缀名为.dll的动态链接库文件和后缀名为.exe的Windows平台下的可执行文件。所述文件映射是共享内存的一种方法。所述API的偏移量是指API首地址离起点处距离的字节数。所述判断比较两个偏移的内容,偏移一的内容与偏移二的内容相同,则进程结束。本发明具有以下优点本发明利用从PE文件分析得出API原来的内容,并能保证所得到API的内容的正确性,可以真正实现对抗API挂接;同时提高了恶意进程挂接API的难度,恶意进程必须改写磁盘上的PE文件才能实现挂接,这时候在WindowsNT平台下恶意进程将触发WindowsFileProtection机制。图1为本发明的工作流程图具体实施方式实施例1一种Windows平台下对抗API挂接的方法,进程通过调用API函数CreateFile打开提供API的PE文件,再将打开的PE文件映射到虚拟内存缓冲区,取得API在虚拟内存缓冲区内的偏移量,记为偏移一,然后进程通过调用API函数GetProcAddress取得API在进程空间的偏移量,记为偏移二,最后通过判断比较两个偏移的内容,将与偏移一不相同的偏移二的内容恢复成偏移一的内容。所述API即ApplicationProgrammingInterface应用程序编程接口。所述PE文件即Portableexecutableformat,是Windows32平台下的可执行档格式,是对应的API提供者。通常的PE文件包括后缀名为.dll的动态链接库文件和后缀名为.exe的Windows平台下的可执行文件。所述文件映射是共享内存的一种方法。所述API的偏移量是指API首地址离起点处距离的字节数。判断比较两个偏移的内容时,当偏移一的内容与偏移二的内容相同,则结束进程,否则将偏移二的内容恢复成偏移一的内容。权利要求1.一种Windows平台下对抗API挂接的方法,其特征在于进程调用API函数CreateFile打开提供API的PE文件,再将打开的PE文件映射到虚拟内存缓冲区,取得API在虚拟内存缓冲区内的偏移量,记为偏移一,然后进程通过调用API函数GetProcAddress取得API在进程空间的偏移量,记为偏移二,最后通过判断比较两个偏移的内容,将与偏移一不相同的偏移二的内容恢复成偏移一的内容。2.根据权利要求1所述的一种Windows平台下对抗API挂接的方法,其特征在于所述API即ApplicationProgrammingInterface应用程序编程接口。3.根据权利要求1所述的一种Windows平台下对抗API挂接的方法,其特征在于所述PE文件即Portableexecutableformat,是Windows32平台下的可执行档格式,是对应的API提供者。4.根据权利要求1所述的一种Windows平台下对抗API挂接的方法,其特征在于所述文件映射是共享内存的一种方法。5.根据权利要求1所述的一种Windows平台下对抗API挂接的方法,其特征在于所述API的偏移量是指API首地址离起点处距离的字节数。6.根据权利要求1所述的一种Windows平台下对抗API挂接的方法,其特征在于所述判断比较两个偏移的内容,偏移一的内容与偏移二的内容相同,则进程结束。全文摘要本发明公开了一种Windows平台下对抗API挂接的方法,其特征在于进程调用API函数CreateFile打开提供API的PE文件,再将打开的PE文件映射到虚拟内存缓冲区,取得API在虚拟内存缓冲区内的偏移量,记为偏移一,然后进程通过调用API函数GetProcAddress取得API在进程空间的偏移量,记为偏移二,最后通过判断比较两个偏移的内容,将与偏移一不相同的偏移二的内容恢复成偏移一的内容;本发明从PE文件分析得出API原来的内容,并保证得到API内容的正确性,实现对抗API挂接;提高恶意进程挂接API的难度,恶意进程须改写PE文件才能实现挂接,这时在WindowsNT平台下将触发WindowsFileProtection机制。文档编号G06F21/00GK1936834SQ20061002185公开日2007年3月28日申请日期2006年9月14日优先权日2006年9月14日发明者邝思豪申请人:珠海金山软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1