[發明專利]將自定義DLL注入目標進程的方法及裝置有效
| 申請號: | 201310462428.3 | 申請日: | 2013-09-30 |
| 公開(公告)號: | CN103530118B | 公開(公告)日: | 2017-01-11 |
| 發明(設計)人: | 馮世杰 | 申請(專利權)人: | 廣州華多網絡科技有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司11138 | 代理人: | 張耀光 |
| 地址: | 511446 廣東省廣州市番*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 自定義 dll 注入 目標 進程 方法 裝置 | ||
1.一種將自定義DLL注入目標進程的方法,其特征在于,所述方法,包括:
創建目標進程;
在所述目標進程開始運行之前,修改用于加載DLL的加載函數,使得在所述目標進程開始運行并調用所述加載函數后,將所述目標進程的執行點從所述加載函數的起始代碼跳轉至所述目標進程中預先分配好的指定內存中;
在所述目標進程開始運行并調用所述加載函數后,利用預先設定在所述指定內存中的加載代碼調用所述加載函數的真實函數體,由所述加載函數的真實函數體將所述自定義DLL加載至所述目標進程;
其中,所述加載函數的真實函數體為在所述修改用于加載DLL的加載函數前所述加載函數中具有的函數體。
2.根據權利要求1所述的方法,其特征在于,在所述目標進程開始運行并調用所述加載函數之后,還包括:
檢測所述自定義DLL運行時是否需要調用NTDLL以及依賴DLL,所述依賴DLL為所述自定義DLL運行時所需要調用的非NTDLL的DLL;
若檢測結果為所述自定義DLL運行時僅需要調用NTDLL,則直接執行利用預先設定在所述指定內存中的加載代碼調用所述加載函數的真實函數體,由所述加載函數的真實函數體將所述自定義DLL加載至所述目標進程的步驟。
3.根據權利要求2所述的方法,其特征在于,在所述檢測所述自定義DLL運行時是否需要調用NTDLL以及依賴DLL之后,還包括:
若檢測結果為所述自定義DLL運行時需要調用NTDLL以及依賴DLL,則判斷所述自定義DLL運行時需要調用的所有依賴DLL是否全部被加載完;
若判斷結果為所述自定義DLL運行時需要調用的所有依賴DLL全部被加載完,則直接執行利用預先設定在所述指定內存中的加載代碼調用所述加載函數的真實函數體,由所述加載函數的真實函數體將所述自定義DLL加載至所述目標進程的步驟;
若判斷結果為所述自定義DLL運行時需要調用的所有依賴DLL未被全部加載完,則利用預先設定在所述指定內存中的加載代碼調用所述加載函數的真實函數體,由所述加載函數的真實函數體加載所述目標進程中即將需要加載的DLL。
4.根據權利要求3所述的方法,其特征在于,所述判斷所述自定義DLL運行時需要調用的所有依賴DLL是否全部被加載完,包括:
判斷預存的判斷列表中是否存在所述自定義DLL運行時需要調用的所有的依賴DLL的名稱,其中,所述判斷列表中保存有已經被加載至所述目標進程中的所述自定義DLL運行時需要調用的依賴DLL的名稱;
若判斷結果為預存的判斷列表中存在所述自定義DLL運行時需要調用的所有的依賴DLL的名稱,則判定所述自定義DLL運行時需要調用的所有依賴DLL全部被加載完;
若判斷結果為預存的判斷列表中不存在所述自定義DLL運行時需要調用的所有的依賴DLL的名稱,則判定所述自定義DLL運行時需要調用的所有依賴DLL未被全部加載完。
5.根據權利要求1至4中任一所述的方法,其特征在于,在所述修改用于加載DLL的加載函數之前,還包括:
在所述目標進程中分配具有可讀寫執行權限的所述指定內存;
將所述加載代碼寫入到所述指定內存中。
6.根據權利要求5所述的方法,其特征在于,所述修改用于加載DLL的加載函數,使得在所述目標進程開始運行并調用所述加載函數后,將所述目標進程的執行點從所述加載函數的起始代碼跳轉至所述目標進程中預先分配好的指定內存中,包括:
獲取用于加載DLL的加載函數的地址;
根據所述加載函數的地址獲取所述加載函數中的所述起始代碼;
將所述加載函數中的所述起始代碼拷貝至指定位置;
將獲取到的所述加載函數中的所述起始代碼修改為用于將所述目標進程的執行點從所述加載函數的起始代碼跳轉至所述指定內存中的代碼;
所述利用預先設定在所述指定內存中的加載代碼調用所述加載函數的真實函數體,由所述加載函數的真實函數體將所述自定義DLL加載至所述目標進程,包括:
利用拷貝在所述指定位置的所述加載函數中的所述起始代碼恢復所述加載函數;
利用恢復后的所述加載函數中的函數體將所述自定義DLL加載至所述目標進程的所述指定內存中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州華多網絡科技有限公司,未經廣州華多網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310462428.3/1.html,轉載請聲明來源鉆瓜專利網。





