欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種模塊加載方法、裝置及電子設備的制造方法

文檔序號:9453376閱讀:478來源:國知局
一種模塊加載方法、裝置及電子設備的制造方法
【技術領域】
[0001]本發(fā)明涉及計算機安全技術領域,特別涉及一種模塊加載方法、裝置及電子設備。
【背景技術】
[0002]Windows XP系統(tǒng)是微軟公司推出供個人電腦使用的操作系統(tǒng)。為了防止黑客對計算機的攻擊,微軟公司推出了一款安全工具EMET(Enhanced Mitigat1n ExperienceToolkit,增強減災體驗工具)。其基本工作原理是:
[0003]按照對進程的模塊預先指定的地址和占用內存空間的大小,將進程的模塊加載到內存中;在將進程的模塊加載到內存之后,對加載到內存中的模塊的地址和內存空間進行申請,強制系統(tǒng)對加載到內存中的模塊的地址進行隨機化處理,得到隨機化后的目的地址;按照隨機化后的目的地址和占用內存空間的大小,將進程的模塊重新加載到內存中;將進程的模塊原占用的地址及內存空間分配給上述申請。
[0004]但是應用EMET安全工具對模塊進行加載,對ROP (Return-orientedprogramming,返回導向編程)攻擊的防護性不佳,主要體現(xiàn)在應用EMET安全工具在將進程的模塊按照預先指定的地址和占用內存空間的大小,加載到內存至將進程的模塊原占用的地址及內存空間重新進行分配的過程中,黑客有可能利用ROP攻擊技術從內存中獲得進程的模塊原占用的地址,進而通過該地址尋找適合用于攻擊的指令片斷,并將尋找到的各個指令片斷拼接起來,進行攻擊。

【發(fā)明內容】

[0005]本發(fā)明實施例的目的在于提供一種模塊加載方法、裝置及電子設備,以提高計算機對ROP攻擊的防護。
[0006]為達到上述目的,本發(fā)明實施例公開了一種模塊加載方法,包括:
[0007]檢測是否有新進程啟動;
[0008]如果檢測到有新進程啟動,在對所述新進程的模塊按照預先指定的加載地址進行加載之前,根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址;
[0009]按照所生成的新加載地址以及所述新進程的模塊占用內存空間的大小,加載所述新進程的模塊。
[0010]可選的,在所述根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址之前,還包括:
[0011]判斷所述新進程是否為需要保護的進程;
[0012]所述根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址,包括:
[0013]在所述新進程為需要保護的進程的情況下,根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址。
[0014]可選的,所述判斷所述新進程是否為需要保護的進程,包括:
[0015]判斷預先存儲的進程配置信息表中是否記錄有與所述新進程對應的信息;如果有,則將所述新進程確定為需要保護的進程。
[0016]可選的,在所述按照所生成的新加載地址以及所述新進程的模塊占用內存空間的大小,加載所述新進程的模塊之前,還包括:
[0017]清除模塊綁定導入表中的數(shù)據,以禁用模塊的綁定輸入機制,使模塊加載到所述新加載地址。
[0018]可選的,所述新進程的模塊為主模塊,且主模塊中存在重定位表;或所述新進程的模塊為系統(tǒng)模塊;
[0019]所述根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址,包括:
[0020]隨機生成地址,將隨機生成的地址作為所述新進程的模塊的新加載地址。
[0021]可選的,所述新進程的模塊為主模塊,且主模塊中不存在重定位表;
[0022]所述根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址,包括:
[0023]將預先指定的加載地址,確定為所述新進程的模塊的新加載地址。
[0024]可選的,所述新進程的模塊為系統(tǒng)模塊:所述方法還包括:
[0025]根據預先指定的加載地址和所述新進程的模塊占用內存空間的大小,填充預先準備的跳轉指令。
[0026]可選的,還包括:
[0027]記錄所述新進程的所有模塊的預先指定的加載地址;
[0028]捕獲所述新進程出現(xiàn)的異常;
[0029]判斷所記錄的加載地址中是否存在所捕獲到的異常對應的地址;
[0030]如果存在,則向用戶提示有溢出攻擊。
[0031]為達到上述目的,本發(fā)明實施例公開了一種模塊加載裝置,包括:檢測單元、地址生成單元和加載單元,其中,
[0032]所述檢測單元,用于檢測是否有新進程啟動;
[0033]所述地址生成單元,用于在所述檢測單元檢測到有新進程啟動的情況下,在對所述新進程的模塊按照預先指定的加載地址進行加載之前,根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址;
[0034]所述加載單元,用于按照所述地址生成單元生成的新加載地址以及所述新進程的模塊占用內存空間的大小,加載所述新進程的模塊。
[0035]可選的,還包括:第一判斷單元,
[0036]所述第一判斷單元,用于判斷所述新進程是否為需要保護的進程;
[0037]所述地址生成單元,具體用于:
[0038]在所述檢測單元檢測到有新進程啟動、且所述第一判斷單元判斷結果為是的情況下,在對所述新進程的模塊按照預先指定的加載地址進行加載之前,根據預先設置的地址生成規(guī)則,生成所述新進程的模塊的新加載地址。
[0039]可選的,所述第一判斷單元,具體用于:
[0040]判斷預先存儲的進程配置信息表中是否記錄有與所述新進程對應的信息;如果有,則將所述新進程確定為需要保護的進程。
[0041]可選的,還包括:數(shù)據清除單元,
[0042]所述數(shù)據清除單元,用于清除模塊綁定導入表中的數(shù)據,以禁用模塊的綁定輸入機制,使模塊加載到所述新加載地址。
[0043]可選的,所述新進程的模塊為主模塊,且主模塊中存在重定位表;或所述新進程的模塊為系統(tǒng)模塊;
[0044]所述地址生成單元,具體用于:
[0045]隨機生成地址,將隨機生成的地址作為所述新進程的模塊的新加載地址。
[0046]可選的,所述新進程的模塊為主模塊,且主模塊中不存在重定位表;
[0047]所述地址生成單元,具體用于:
[0048]將預先指定的加載地址,確定為所述新進程的模塊的新加載地址。
[0049]可選的,所述新進程的模塊為系統(tǒng)模塊:
[0050]還包括:跳轉指令填充單元,
[0051]所述跳轉指令填充單元,用于根據預先指定的加載地址和所述新進程的模塊占用內存空間的大小,填充預先準備的跳轉指令。
[0052]可選的,還包括:記錄單元、異常捕獲單元、第二判斷單元和提示單元,其中,
[0053]所述記錄單元,用于記錄所述新進程的所有模塊的預先指定的加載地址;
[0054]所述異常捕獲單元,用于捕獲所述新進程出現(xiàn)的異常;
[0055]所述第二判斷單元,用于判斷所述記錄單元記錄的加載地址中是否存在所述異常捕獲單元捕獲到的異常對應的地址;
[0056]所述提示單元,用于在所述第二判斷單元判斷結果為是的情況下,向用戶提示有溢出攻擊。
[0057]為達到上述目的,本發(fā)明實施例公開了一種電子設備,包括:處理器、存儲器、通信接口和總線;
[0058]所述處理器、所述存儲器和所述通信接口通過所述總線連接并完成相互間的通
?目;
[0059]所述存儲器存儲可執(zhí)行程序代碼;
[0060]所述處理器通過讀取所述存儲器中存儲的可執(zhí)行程序代碼來運行與所述可執(zhí)行程序代碼對應的程序,以用于執(zhí)行本發(fā)明實施例所提供的任意一種模塊加載方法。
[0061]由上述的技術方案可見,本發(fā)明實施例提供了一種模塊加載方法及裝置,檢測是否有新進程啟動;如果檢測到有新進程啟動,在對所述新進程的模塊按照預先指定的加載地址進行加載之前,根據預先設置的
當前第1頁1 2 3 4 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
峨边| 长沙市| 桓台县| 佳木斯市| 定兴县| 百色市| 桂阳县| 明星| 绩溪县| 县级市| 鄯善县| 永丰县| 民权县| 靖远县| 德州市| 德格县| 高邮市| 广水市| 庆云县| 临汾市| 宜兰市| 瑞丽市| 万年县| 丽江市| 金华市| 蓝田县| 盐池县| 正宁县| 襄垣县| 抚顺市| 都昌县| 三门县| 安福县| 南乐县| 沅江市| 东至县| 张北县| 永修县| 观塘区| 九江县| 安阳县|