一种模块加载方法、装置及电子设备的制造方法

文档序号:9453376阅读:391来源:国知局
一种模块加载方法、装置及电子设备的制造方法
【技术领域】
[0001]本发明涉及计算机安全技术领域,特别涉及一种模块加载方法、装置及电子设备。
【背景技术】
[0002]Windows XP系统是微软公司推出供个人电脑使用的操作系统。为了防止黑客对计算机的攻击,微软公司推出了一款安全工具EMET(Enhanced Mitigat1n ExperienceToolkit,增强减灾体验工具)。其基本工作原理是:
[0003]按照对进程的模块预先指定的地址和占用内存空间的大小,将进程的模块加载到内存中;在将进程的模块加载到内存之后,对加载到内存中的模块的地址和内存空间进行申请,强制系统对加载到内存中的模块的地址进行随机化处理,得到随机化后的目的地址;按照随机化后的目的地址和占用内存空间的大小,将进程的模块重新加载到内存中;将进程的模块原占用的地址及内存空间分配给上述申请。
[0004]但是应用EMET安全工具对模块进行加载,对ROP (Return-orientedprogramming,返回导向编程)攻击的防护性不佳,主要体现在应用EMET安全工具在将进程的模块按照预先指定的地址和占用内存空间的大小,加载到内存至将进程的模块原占用的地址及内存空间重新进行分配的过程中,黑客有可能利用ROP攻击技术从内存中获得进程的模块原占用的地址,进而通过该地址寻找适合用于攻击的指令片断,并将寻找到的各个指令片断拼接起来,进行攻击。

【发明内容】

[0005]本发明实施例的目的在于提供一种模块加载方法、装置及电子设备,以提高计算机对ROP攻击的防护。
[0006]为达到上述目的,本发明实施例公开了一种模块加载方法,包括:
[0007]检测是否有新进程启动;
[0008]如果检测到有新进程启动,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址;
[0009]按照所生成的新加载地址以及所述新进程的模块占用内存空间的大小,加载所述新进程的模块。
[0010]可选的,在所述根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址之前,还包括:
[0011]判断所述新进程是否为需要保护的进程;
[0012]所述根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址,包括:
[0013]在所述新进程为需要保护的进程的情况下,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址。
[0014]可选的,所述判断所述新进程是否为需要保护的进程,包括:
[0015]判断预先存储的进程配置信息表中是否记录有与所述新进程对应的信息;如果有,则将所述新进程确定为需要保护的进程。
[0016]可选的,在所述按照所生成的新加载地址以及所述新进程的模块占用内存空间的大小,加载所述新进程的模块之前,还包括:
[0017]清除模块绑定导入表中的数据,以禁用模块的绑定输入机制,使模块加载到所述新加载地址。
[0018]可选的,所述新进程的模块为主模块,且主模块中存在重定位表;或所述新进程的模块为系统模块;
[0019]所述根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址,包括:
[0020]随机生成地址,将随机生成的地址作为所述新进程的模块的新加载地址。
[0021]可选的,所述新进程的模块为主模块,且主模块中不存在重定位表;
[0022]所述根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址,包括:
[0023]将预先指定的加载地址,确定为所述新进程的模块的新加载地址。
[0024]可选的,所述新进程的模块为系统模块:所述方法还包括:
[0025]根据预先指定的加载地址和所述新进程的模块占用内存空间的大小,填充预先准备的跳转指令。
[0026]可选的,还包括:
[0027]记录所述新进程的所有模块的预先指定的加载地址;
[0028]捕获所述新进程出现的异常;
[0029]判断所记录的加载地址中是否存在所捕获到的异常对应的地址;
[0030]如果存在,则向用户提示有溢出攻击。
[0031]为达到上述目的,本发明实施例公开了一种模块加载装置,包括:检测单元、地址生成单元和加载单元,其中,
[0032]所述检测单元,用于检测是否有新进程启动;
[0033]所述地址生成单元,用于在所述检测单元检测到有新进程启动的情况下,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址;
[0034]所述加载单元,用于按照所述地址生成单元生成的新加载地址以及所述新进程的模块占用内存空间的大小,加载所述新进程的模块。
[0035]可选的,还包括:第一判断单元,
[0036]所述第一判断单元,用于判断所述新进程是否为需要保护的进程;
[0037]所述地址生成单元,具体用于:
[0038]在所述检测单元检测到有新进程启动、且所述第一判断单元判断结果为是的情况下,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址。
[0039]可选的,所述第一判断单元,具体用于:
[0040]判断预先存储的进程配置信息表中是否记录有与所述新进程对应的信息;如果有,则将所述新进程确定为需要保护的进程。
[0041]可选的,还包括:数据清除单元,
[0042]所述数据清除单元,用于清除模块绑定导入表中的数据,以禁用模块的绑定输入机制,使模块加载到所述新加载地址。
[0043]可选的,所述新进程的模块为主模块,且主模块中存在重定位表;或所述新进程的模块为系统模块;
[0044]所述地址生成单元,具体用于:
[0045]随机生成地址,将随机生成的地址作为所述新进程的模块的新加载地址。
[0046]可选的,所述新进程的模块为主模块,且主模块中不存在重定位表;
[0047]所述地址生成单元,具体用于:
[0048]将预先指定的加载地址,确定为所述新进程的模块的新加载地址。
[0049]可选的,所述新进程的模块为系统模块:
[0050]还包括:跳转指令填充单元,
[0051]所述跳转指令填充单元,用于根据预先指定的加载地址和所述新进程的模块占用内存空间的大小,填充预先准备的跳转指令。
[0052]可选的,还包括:记录单元、异常捕获单元、第二判断单元和提示单元,其中,
[0053]所述记录单元,用于记录所述新进程的所有模块的预先指定的加载地址;
[0054]所述异常捕获单元,用于捕获所述新进程出现的异常;
[0055]所述第二判断单元,用于判断所述记录单元记录的加载地址中是否存在所述异常捕获单元捕获到的异常对应的地址;
[0056]所述提示单元,用于在所述第二判断单元判断结果为是的情况下,向用户提示有溢出攻击。
[0057]为达到上述目的,本发明实施例公开了一种电子设备,包括:处理器、存储器、通信接口和总线;
[0058]所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通
?目;
[0059]所述存储器存储可执行程序代码;
[0060]所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本发明实施例所提供的任意一种模块加载方法。
[0061]由上述的技术方案可见,本发明实施例提供了一种模块加载方法及装置,检测是否有新进程启动;如果检测到有新进程启动,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1