一种程序处理方法及相关设备技术

技术编号:23084723 阅读:39 留言:0更新日期:2020-01-11 01:01
本发明专利技术实施例公开了一种程序处理方法及相关设备,用于提高在进行hook操作时,不被安全程序检测到的几率。本发明专利技术实施例方法包括:编写无作用汇编指令,该无作用汇编指令为不影响程序的执行功能的指令;根据该无作用汇编指令编写跳转代码和跳转桩代码,该跳转代码包括第一跳转代码和第二跳转代码;备份该待hook原始代码,将该待hook原始代码修改为该第一跳转代码;当执行到该待hook原始代码时,根据该第一跳转代码从该待hook原始代码跳转到该跳转桩代码,并暂停该程序中所有的线程;执行完成该跳转桩代码后,根据该第二跳转代码从该跳转桩代码跳转到备份的该待hook原始代码;恢复该程序中所有的线程,以继续执行该待hook原始代码。

A program processing method and related equipment

【技术实现步骤摘要】
一种程序处理方法及相关设备
本专利技术涉及控制
,尤其涉及一种程序处理方法及相关设备。
技术介绍
目前,对于基于Windows平台开发的一些软件来说,其功能也越来越丰富。同时,基于Windows平台的强大支撑,可以开发一些特殊功能的软件,如监控某个程序的所有读写文件,监控键盘输入,监控网络流量等等。然而对于Windows平台来说,很多功能都需要通过hook的方式来实现,例如监控一个程序打开的所有文件,则可以通过hook该打开文件的应用程序编程接口(applicationprogramminginterface,API)函数,从而可以得到该打开文件的所有文件名。目前来说,hook的方式有很多种,而通过inlinehook则可以实现的功能更多,所谓inlinehook,指通过修改代码,来增加jump指令修改执行流程跳转到hook功能逻辑中。然而,对于游戏程序或者其他安全程序来说,为了阻止hook,通常都会对程序是否有进行hook来检测。因此,如何绕过游戏程序或者安全程序的检测以提高hook的成功率,是一个值得探究的问题。...

【技术保护点】
1.一种程序处理方法,其特征在于,包括:/n编写无作用汇编指令,所述无作用汇编指令为不影响程序的执行功能的指令;/n根据所述无作用汇编指令编写跳转代码和跳转桩代码,所述跳转代码包括第一跳转代码和第二跳转代码,所述第一跳转代码用于从所述程序中待挂钩hook原始代码跳转到所述跳转桩代码,所述第二跳转代码用于从所述跳转桩代码跳转到所述待hook原始代码,所述跳转桩代码包括需插入的inlinehook逻辑代码,所述跳转桩代码用于保存所述程序中待hook原始代码的执行环境;/n备份所述待hook原始代码,将所述待hook原始代码修改为所述第一跳转代码;/n当执行到所述待hook原始代码时,根据所述第一跳...

【技术特征摘要】
1.一种程序处理方法,其特征在于,包括:
编写无作用汇编指令,所述无作用汇编指令为不影响程序的执行功能的指令;
根据所述无作用汇编指令编写跳转代码和跳转桩代码,所述跳转代码包括第一跳转代码和第二跳转代码,所述第一跳转代码用于从所述程序中待挂钩hook原始代码跳转到所述跳转桩代码,所述第二跳转代码用于从所述跳转桩代码跳转到所述待hook原始代码,所述跳转桩代码包括需插入的inlinehook逻辑代码,所述跳转桩代码用于保存所述程序中待hook原始代码的执行环境;
备份所述待hook原始代码,将所述待hook原始代码修改为所述第一跳转代码;
当执行到所述待hook原始代码时,根据所述第一跳转代码从所述待hook原始代码跳转到所述跳转桩代码,并暂停所述程序中所有的线程;
执行完成所述跳转桩代码后,根据所述第二跳转代码从所述跳转桩代码跳转到备份的所述待hook原始代码;
恢复所述程序中所有的线程,以继续执行所述待hook原始代码。


2.根据权利要求1所述的方法,其特征在于,所述根据所述无作用汇编指令编写跳转代码和跳转桩代码包括:
根据所述跳转桩的内存地址和所述待hook原始代码的内存地址计算跳转的偏移地址;
根据所述跳转的偏移地址和所述无作用汇编指令编写所述跳转代码;
根据所述inlinehook逻辑代码和所述inlinehook逻辑代码的内存地址生成初始跳转桩代码;
调用系统的API函数byTrpJmpPadCode存储所述初始跳转桩代码;
将所述无作用汇编指令插入所述初始跳转桩代码,以得到所述跳转桩代码。


3.根据权利要求1所述的方法,其特征在于,所述将所述待hook原始代码修改为所述第一跳转代码包括:
调用系统API函数VirtualProtectEx将所述待hook原始代码的内存属性从只读可执行修改为可写可执行;
通过系统API函数WriteProcessMemory将所述待hook原始代码修改为所述第一跳转代码。


4.根据权利要求1至3中任一项所述的方法,其特征在于,所述暂停所述程序中所有的线程包括:
调用系统API函数CreatToolhelp32Snapshot获取所述程序的进程线程快照信息,所述进程线程快照信息包括进程快照句柄;
根据所述进程快照句柄获取所述进程线程快照中的第一个线程;
通过dowhile循环从所述第一个线程遍历完所述程序中所有的进程,以暂停所述所有的进程。


5.一种程序处理设备,其特征在于,包括:
编写单元,用于编写无作用汇编指令,所述无作用汇编指令为不影响程序的执行功能的指令;
所述编写单元还用于根据所述无作...

【专利技术属性】
技术研发人员:周志刚张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北;42

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

1