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

文档序号:9453376阅读:来源:国知局
例提供的模块加载方法的第三种流程示意图,本发明图3所示实施例在图1所示实施例的基础上增加S105:清除模块绑定导入表中的数据,以禁用模块的绑定输入机制,使模块加载到所述新加载地址。
[0099]应用本发明图3所示实施例,清除了模块绑定导入表中的数据,避免了将模块加载到预先指定的加载地址的问题的出现。
[0100]图4为本发明实施例提供的模块加载方法的第四种流程示意图,本发明图4所示实施例在图1所示实施例的基础上增加以下四个步骤;
[0101]S106:记录所述新进程的所有模块的预先指定的加载地址;
[0102]S107:捕获所述新进程出现的异常;
[0103]S108:判断所记录的加载地址中是否存在所捕获到的异常对应的地址;如果是,执行S109 ;
[0104]S109:向用户提示有溢出攻击。
[0105]示例性的,下面以某一浏览器的一个进程X为例进行说明。
[0106]假设该进程X包含三个模块,分别为模块a、模块b和模块C。预先指定的模块a的加载地址为:00030000H,预先指定的模块b的加载地址为:00040000H,预先指定的模块c的加载地址为:00050000H ;
[0107]具体的,可以利用Hook技术在进程X中添加用于记录模块的预先指定的加载地址及捕获进程异常的函数的程序段;遍历当前进程内的所有模块,并对各个模块预先指定的加载地址进行记录;当进程X的模块按照生成的新加载地址加载后,开始对进程出现的异常进行捕获;
[0108]假设捕获到的异常对应的地址为0005425!%判断记录的加载地址中是否存在0005425!?,判断结果为否,则不向用户提示有溢出攻击;
[0109]假设捕获到的异常对应的地址为00040000H,判断记录的加载地址中是否存在00040000H,判断结果为是,则向用户提示有溢出攻击。
[0110]需要说明的是,上述以某一浏览器的进程X为例进行说明,仅为本发明的一具体实例,并不构成对本发明的限定。
[0111]应用本发明图4所示实施例,可以使用户获知是否有黑客对系统进行攻击,进而用户可以对系统做出进一步的防护。
[0112]与上述的方法实施例相对应,本发明实施例还提供一种模块加载装置
[0113]图5为本发明实施例提供的模块加载装置的第一种结构示意图,可以包括:检测单元201、地址生成单元202和加载单元203,其中,
[0114]检测单元201,用于检测是否有新进程启动;
[0115]地址生成单元202,用于在检测单元201检测到有新进程启动的情况下,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址;
[0116]在实际应用中,所述新进程的模块可以为主模块,且主模块中存在重定位表;所述新进程的模块还可以为系统模块;本发明实施例所示的地址生成单元202,具体可以用于:
[0117]在检测单元201检测到有新进程启动的情况下,在对所述新进程的模块按照预先指定的加载地址进行加载之前,随机生成地址,将随机生成的地址作为所述新进程的模块的新加载地址。
[0118]在实际应用中,所述新进程的模块可以为主模块,且主模块中不存在重定位表;本发明实施例所示的地址生成单元202,具体可以用于:
[0119]在检测单元201检测到有新进程启动的情况下,在对所述新进程的模块按照预先指定的加载地址进行加载之前,将预先指定的加载地址,确定为所述新进程的模块的新加载地址。
[0120]加载单元203,用于按照地址生成单元202生成的新加载地址以及所述新进程的模块占用内存空间的大小,加载所述新进程的模块。
[0121]在所述新进程的模块为系统模块的情况下,还可以包括:跳转指令填充单元(图中未示出),
[0122]跳转指令填充单元,用于根据预先指定的加载地址和所述新进程的模块占用内存空间的大小,填充预先准备的跳转指令。
[0123]应用本发明图5所示实施例,在对新进程的模块按照预先指定的加载地址进行加载之前,就生成了新进程的模块的新加载地址,将新进程的模块按照生成的新加载地址进行加载。即使黑客获得了模块的新加载地址,也很难通过新加载地址获得模块的预先指定的加载地址,进而不能通过预先指定的加载地址寻找适合用于攻击的指令片断进行攻击,提高了计算机对ROP攻击的防护,提高了计算机的安全性。
[0124]图6为本发明实施例提供的模块加载装置的第二种结构示意图,本发明图6所示实施例在图5所示实施例的基础上增加:第一判断单元204,其中,
[0125]第一判断单元204,用于判断所述新进程是否为需要保护的进程;
[0126]本发明实施例所示的第一判断单元204,具体可以用于:
[0127]判断预先存储的进程配置信息表中是否记录有与所述新进程对应的信息;如果有,则将所述新进程确定为需要保护的进程。
[0128]本发明实施例所示的地址生成单元202,具体可以用于:
[0129]在所述检测单元201检测到有新进程启动、且所述第一判断单元204判断结果为是的情况下,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址。
[0130]应用本发明图6所示实施例,只对需要保护的进程的模块的地址进行随机化处理,避免了对所有进程的模块随机化处理可能导致的兼容性问题的出现。
[0131]图7为本发明实施例提供的模块加载装置的第三种结构示意图,本发明图7所示实施例在图5所示实施例的基础上增加:数据清除单元205,其中,
[0132]数据清除单元205,用于清除模块绑定导入表中的数据,以禁用模块的绑定输入机制,使模块加载到所述新加载地址。
[0133]应用本发明图7所示实施例,清除了模块绑定导入表中的数据,避免了将模块加载到预先指定的加载地址的问题的出现。
[0134]图8为本发明实施例提供的模块加载装置的第四种结构示意图,本发明图8所示实施例在图5所示实施例的基础上增加:记录单元206、异常捕获单元207、第二判断单元208和提示单元209,其中,
[0135]记录单元206,用于记录所述新进程的所有模块的预先指定的加载地址;
[0136]异常捕获单元207,用于捕获所述新进程出现的异常;
[0137]第二判断单元208,用于判断记录单元206记录的加载地址中是否存在异常捕获单元207捕获到的异常对应的地址;
[0138]提示单元209,用于在第二判断单元208判断结果为是的情况下,向用户提示有溢出攻击O
[0139]在实际应用中,本发明实施例的记录单元206、异常捕获单元207、第二判断单元208和提示单元209也可以在图6所示实施例和图7所示实施例的基础上增加。
[0140]应用本发明图8所示实施例,可以使用户获知是否有黑客对系统进行攻击,进而用户可以对系统做出进一步的防护。
[0141]另外,本发明实施例还提供了一种电子设备,可以包括:
[0142]处理器、存储器、通信接口和总线;
[0143]所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通
?目;
[0144]所述存储器存储可执行程序代码;
[0145]所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本申请实施例所提供的模块加载方法;其中,本申请实施例所提供的模块加载方法,可以包括:
[0146]检测是否有新进程启动;
[0147]如果检测到有新进程启动,在对所述新进程的模块按照预先指定的加载地址进行加载之前,根据预先设置的地址生成规则,生成所述新进程的模块的新加载地址;
[0148]按照所生成的新加载地址以及
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1