[發明專利]Native API函數重構方法及裝置有效
| 申請號: | 201310455970.6 | 申請日: | 2013-09-29 |
| 公開(公告)號: | CN103530552A | 公開(公告)日: | 2014-01-22 |
| 發明(設計)人: | 馮世杰 | 申請(專利權)人: | 廣州華多網絡科技有限公司 |
| 主分類號: | G06F21/51 | 分類號: | G06F21/51 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 張耀光 |
| 地址: | 510655 廣東省廣州市黃*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 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函數的過程中容易被惡意程序預先處理,使得應用程序存在較大的安全隱患的問題,本發明實施例提供了一種Native?API函數重構方法及裝置。所述技術方案如下:
第一方面,提供了一種Native?API函數重構方法,所述方法,包括:
獲取加載函數的系統調用號,所述加載函數用于將動態鏈接庫NTDLL.DLL加載至內存,所述NTDLL.DLL中包含Native?API函數;
將每個所述加載函數的系統調用號分別拷貝至與所述加載函數對應的各個自定義加載函數的代碼體中,所述自定義加載函數位于用于執行應用程序的自定義代碼段中,所述自定義加載函數的代碼體中的初始代碼與所述加載函數中的代碼相同;
根據包含有所述加載函數的系統調用號的所述自定義加載函數將所述NTDLL.DLL加載至所述內存的指定位置;
利用位于所述指定位置的NTDLL.DLL中的Native?API函數中的代碼分別重構所述自定義代碼段內與所述Native?API函數對應的各個自定義Native?API函數中的代碼。
在第一方面的第一種可能的實施方式中,在所述根據包含有所述加載函數的系統調用號的所述自定義加載函數將所述NTDLL.DLL加載至所述內存的指定位置之前,還包括:
獲取分配函數的系統調用號,所述分配函數用于為所述加載函數分配內存讀寫執行權限;
將所述分配函數的系統調用號拷貝到所述自定義分配函數的代碼體內,所述自定義分配函數位于所述自定義代碼段中;
利用包含有所述分配函數的系統調用號的所述自定義分配函數為所述自定義加載函數分配內存讀寫執行權限。
結合第一方面或者第一方面的第一種可能的實施方式,在第二種可能的實施方式中,所述根據包含有所述加載函數的系統調用號的所述自定義加載函數將所述NTDLL.DLL加載至所述內存的指定位置之前,還包括:
將用于調用內核函數的公用代碼段拷貝到所述自定義代碼段中;
所述根據包含有所述加載函數的系統調用號的所述自定義加載函數將所述NTDLL.DLL加載至所述內存的指定位置,包括:
根據包含有所述加載函數的系統調用號的所述自定義加載函數以及所述自定義代碼段中的所述公用代碼段將所述NTDLL.DLL加載至所述內存的指定位置。
結合第一方面、第一方面的第一種可能的實施方式或者第一方面的第二種可能的實施方式,在第三種可能的實施方式中,在所述將用于調用內核函數的公用代碼段拷貝到所述自定義代碼段中之前,還包括:
遍歷內存中NTDLL的導出表,獲取指定的測試函數的起始地址;
根據所述測試函數的起始地址調用所述測試函數以獲取系統類型;
所述將用于調用內核函數的公用代碼段拷貝到所述自定義代碼段中,包括:
根據所述系統類型將用于調用與所述系統類型對應的內核函數的公用代碼段拷貝至所述自定義代碼段中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州華多網絡科技有限公司,未經廣州華多網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310455970.6/2.html,轉載請聲明來源鉆瓜專利網。





