一种改进的钩取技术的方法及装置制造方法及图纸

技术编号:16269651 阅读:161 留言:0更新日期:2017-09-22 21:20
本发明专利技术公开了一种改进的钩取技术的方法及装置。所述一种改进的钩取技术的方法,包括:当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容;根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址;在执行完所述注入程序后,计算出所述系统程序的第一入口地址;以所述第一入口地址为起始地址,运行所述系统程序。在多线程环境中,本发明专利技术可有效的避免对系统程序频繁的进行钩取操作和去钩取操作而带来的读写异常的情况,提高了钩取技术的鲁棒性和安全性。

【技术实现步骤摘要】
一种改进的钩取技术的方法及装置
本专利技术涉及钩取函数领域,特别涉及一种改进的钩取技术的方法及装置。
技术介绍
现有的钩取技术是通过修改系统程序的入口地址处的五个字节的内容,从而跳转至注入程序的入口地址,从而达到钩取的目的。在修改系统程序的入口地址处的五个字节的内容前,需要保存系统函数的入口地址的前五个字节的内容。当运行完成钩取函数之后,需要跳转至系统程序的入口地址,此时就需要利用保存过的系统函数的入口地址处的前五个字节的内容来恢复原系统函数。但是在多线程环境中,过于频繁的对系统程序的入口地址的前五个字节的内容进行修改操作和恢复操作,有可能会造成读写异常的情况发生,导致系统进程发生异常。如何解决上述问题,就成为了业界亟待解决的课题。
技术实现思路
本专利技术提供一种改进的钩取技术的方法及装置,用以在使用钩取技术时,避免发生读写异常的情况。根据本专利技术实施例的第一方面,提供一种改进的钩取技术的方法,包括:当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容;根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址;在执行完所述注入程序后,计算出所述系统程序的第一入口地址;以所述第一入口地址为起始地址,运行所述系统程序。本在一个实施例中,所述当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容,包括:当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容为短跳转指令,所述短跳转指令包括一个字节的短跳转关键字和一个字节的短跳转地址;所述短跳转地址指向所述系统程序入口地址之前的第五个字节的地址。在一个实施例中,所述根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址,包括:根据所述短跳转指令,跳转至所述系统程序入口地址之前的第五个字节的地址;修改所述系统程序入口地址之前连续的五个字节的内容为跳转指令,所述跳转指令包括一个字节的跳转关键字和四个字节的跳转地址;根据所述跳转指令,跳转至所述注入程序的入口地址。在一个实施例中,所述在执行完所述注入程序后,计算出所述系统程序的第一入口地址,包括:在执行完所述注入程序后,将所述系统程序的所述入口地址加上两个字节,得到新的地址;确认所述新的地址为所述系统程序的第一入口地址。在一个实施例中,所述以所述第一入口地址为起始地址,运行所述系统程序,包括:跳转至所述系统程序的第一入口地址;以所述第一入口地址为起始地址,运行所述系统程序。根据本专利技术实施例的第二方面,提供一种改进的钩取技术的装置,包括:修改模块,用于当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容;跳转模块,用于根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址;计算模块,用于在执行完所述注入程序后,计算出所述系统程序的第一入口地址;运行模块,用于以所述第一入口地址为起始地址,运行所述系统程序。在一个实施例中,所述修改模块,包括:第一修改子模块,用于当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容为短跳转指令,所述短跳转指令包括一个字节的短跳转关键字和一个字节的短跳转地址;指向子模块,用于所述短跳转地址指向所述系统程序入口地址之前的第五个字节的地址。在一个实施例中,所述跳转模块,包括:第一跳转子模块,用于根据所述短跳转指令,跳转至所述系统程序入口地址之前的第五个字节的地址;第二修改子模块,用于修改所述系统程序入口地址之前连续的五个字节的内容为跳转指令,所述跳转指令包括一个字节的跳转关键字和四个字节的跳转地址;第二跳转子模块,用于根据所述跳转指令,跳转至所述注入程序的入口地址。在一个实施例中,所述计算模块,包括:相加子模块,用于在执行完所述注入程序后,将所述系统程序的所述入口地址加上两个字节,得到新的地址;确认子模块,用于确认所述新的地址为所述系统程序的第一入口地址。在一个实施例中,所述运行模块,包括:第三跳转子模块,用于跳转至所述系统程序的第一入口地址;运行子模块,用于以所述第一入口地址为起始地址,运行所述系统程序。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术一示例性实施例示出的一种改进的钩取技术的方法的流程图;图2为本专利技术一示例性实施例示出的一种改进的钩取技术的方法的步骤S11的流程图;图3为本专利技术一示例性实施例示出的一种改进的钩取技术的方法的步骤S12的流程图;图4为本专利技术一示例性实施例示出的一种改进的钩取技术的方法的步骤S13的流程图;图5为本专利技术一示例性实施例示出的一种改进的钩取技术的方法的步骤S14流程图;图6a为本专利技术一示例性实施例示出的一种改进的钩取技术的方法的示意图;图6b为本专利技术另一示例性实施例示出的一种改进的钩取技术的方法的示意图;图7为本专利技术一示例性实施例示出的一种改进的钩取技术的装置的框图;图8为本专利技术一示例性实施例示出的一种改进的钩取技术的装置的修改模块71的框图;图9为本专利技术一示例性实施例示出的一种改进的钩取技术的装置的跳转模块72的框图;图10为本专利技术一示例性实施例示出的一种改进的钩取技术的装置的计算模块73的框图;图11为本专利技术一示例性实施例示出的一种改进的钩取技术的装置的修改模块74的框图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。现有的钩取技术是通过修改系统程序的入口地址处的五个字节的内容,跳转至注入程序的入口地址,从而达到钩取的目的。在修改系统程序的入口地址处的五个字节的内容前,需要保存系统函数的入口地址的前五个字节的内容。当运行完成钩取函数之后,需要跳转至系统程序的入口地址,此时就需要利用保存过的系统函数的入口地址处的前五个字节的内容来恢复原系统函数。但是在多线程环境中,过于频繁的对系统程序的入口地址的前五个字节的内容进行修改操作和恢复操作,有可能会造成读写异常的情况发生,导致系统进程发生异常。图1是根据一示例性实施例示出的一种改进的钩取技术的方法流程图,如图1所示,该一种改进的钩取技术的方法,包括以下步骤S11-S14:在步骤S11中,当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容;当监测到系统程序被钩取时,修改该系统程序以入口地址为起始的连续的两个字节的内容为短跳转指令,该短跳转指令包括一个字节的短跳转关键字和一个字节的短跳转地址;该短跳转地址指向该系统程序入口地址之前的第五个字节的地址。在步骤S12中,根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址;根据该短跳转指令,跳转至该系统程序入口地址之前的第五个字本文档来自技高网...
一种改进的钩取技术的方法及装置

【技术保护点】
一种改进的钩取技术的方法,其特征在于,包括:当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容;根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址;在执行完所述注入程序后,计算出所述系统程序的第一入口地址;以所述第一入口地址为起始地址,运行所述系统程序。

【技术特征摘要】
1.一种改进的钩取技术的方法,其特征在于,包括:当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容;根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址;在执行完所述注入程序后,计算出所述系统程序的第一入口地址;以所述第一入口地址为起始地址,运行所述系统程序。2.如权利要求1所述的方法,其特征在于,所述当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容,包括:当监测到系统程序被钩取时,修改所述系统程序以入口地址为起始的连续的两个字节的内容为短跳转指令,所述短跳转指令包括一个字节的短跳转关键字和一个字节的短跳转地址;所述短跳转地址指向所述系统程序入口地址之前的第五个字节的地址。3.如权利要求2所述的方法,其特征在于,所述根据修改后的所述系统程序以入口地址为起始的连续的两个字节的内容,跳转至注入程序的入口地址,包括:根据所述短跳转指令,跳转至所述系统程序入口地址之前的第五个字节的地址;修改所述系统程序入口地址之前连续的五个字节的内容为跳转指令,所述跳转指令包括一个字节的跳转关键字和四个字节的跳转地址;根据所述跳转指令,跳转至所述注入程序的入口地址。4.如权利要求1所述的方法,其特征在于,所述在执行完所述注入程序后,计算出所述系统程序的第一入口地址,包括:在执行完所述注入程序后,将所述系统程序的所述入口地址加上两个字节,得到新的地址;确认所述新的地址为所述系统程序的第一入口地址。5.如权利要求4所述的方法,其特征在于,所述以所述第一入口地址为起始地址,运行所述系统程序,包括:跳转至所述系统程序的第一入口地址;以所述第一入口地址为起始地址,运行所述系...

【专利技术属性】
技术研发人员:胡东方
申请(专利权)人:无锡天脉聚源传媒科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1