一种并发访问USB设备的方法及系统技术方案

技术编号:33200035 阅读:12 留言:0更新日期:2022-04-24 00:35
本发明专利技术公开了一种并发访问USB设备的方法及系统,属于计算机应用技术领域。本发明专利技术方法,包括:向系统中原USB打开设备的目标函数注入代码,通过所述注入的代码将原USB打开设备的目标函数初始的若干条指令替换为一个无条件的跳转指令;当系统执行USB打开设备的目标函数时,通过所述跳转指令将控制流程跳转至旁路函数;通过所述旁路函数控制系统USB设备的并发访问。本发明专利技术无需多台机器,在单台机器就可以支持多个USB设备的访问,降低了成本和资源消耗。消耗。消耗。

【技术实现步骤摘要】
一种并发访问USB设备的方法及系统


[0001]本专利技术涉及计算机应用
,并且更具体地,涉及一种并发访问USB设备的方法及系统。

技术介绍

[0002]市面上存在部分USB设备,当多个相同类型的设备同时加载于WINDOWS系统时,仅支持随机访问其中的单个设备,而不支持指定访问特定的单个设备实例,无法应用在高并发的场景之下。

技术实现思路

[0003]针对上述问题,本专利技术提出了一种并发访问USB设备的方法,包括:
[0004]向系统中原USB打开设备的目标函数注入代码,通过所述注入的代码将原USB打开设备的目标函数初始的若干条指令替换为一个无条件的跳转指令;
[0005]当系统执行USB打开设备的目标函数时,通过所述跳转指令将控制流程跳转至旁路函数;
[0006]通过所述旁路函数控制系统USB设备的并发访问。
[0007]可选的,向系统中原USB打开设备的目标函数注入代码的过程是动态加载的。
[0008]可选的,目标函数初始的若干条指令被替换后,被替换掉的指令保存至蹦床函数中,所述蹦床函数包括:目标函数移除的指令和无条件跳转到目标函数的剩余部分的指令。
[0009]可选的,目标函数在被执行时,控制流程跳转至旁路函数中,旁路函数将控制流程跳转至源函数或蹦床函数。
[0010]可选的,目标函数是通过重写进程中的二进制映像的方式,注入的代码,对每一个目标函数,重写两个函数,一个是对应的子目标函数,另一个是蹦床函数。
[0011]可选的,蹦床函数是动态分配的,在目标函数注入代码前,蹦床函数仅含有单个跳转到目标函数的指令。
[0012]本专利技术还提出了一种并发访问USB设备的系统,包括:
[0013]注入代码单元,向系统中原USB打开设备的目标函数注入代码,通过所述注入的代码将原USB打开设备的目标函数初始的若干条指令替换为一个无条件的跳转指令;
[0014]跳转单元,当系统执行USB打开设备的目标函数时,通过所述跳转指令将控制流程跳转至旁路函数;
[0015]访问单元,通过所述旁路函数控制系统USB设备的并发访问。
[0016]可选的,向系统中原USB打开设备的目标函数注入代码的过程是动态加载的。
[0017]可选的,目标函数初始的若干条指令被替换后,被替换掉的指令保存至蹦床函数中,所述蹦床函数包括:目标函数移除的指令和无条件跳转到目标函数的剩余部分的指令。
[0018]可选的,目标函数在被执行时,控制流程跳转至旁路函数中,旁路函数将控制流程跳转至源函数或蹦床函数。
[0019]可选的,目标函数是通过重写进程中的二进制映像的方式,注入的代码,对每一个目标函数,重写两个函数,一个是对应的子目标函数,另一个是蹦床函数。
[0020]可选的,蹦床函数是动态分配的,在目标函数注入代码前,蹦床函数仅含有单个跳转到目标函数的指令。
[0021]本专利技术无需多台机器,在单台机器就可以支持多个USB设备的访问,降低了成本和资源消耗。
附图说明
[0022]图1为本专利技术方法的流程图;
[0023]图2为本专利技术系统的结构图。
具体实施方式
[0024]现在参考附图介绍本专利技术的示例性实施方式,然而,本专利技术可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本专利技术,并且向所属
的技术人员充分传达本专利技术的范围。对于表示在附图中的示例性实施方式中的术语并不是对本专利技术的限定。在附图中,相同的单元/元件使用相同的附图标记。
[0025]除非另有说明,此处使用的术语(包括科技术语)对所属
的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
[0026]本专利技术提出了一种并发访问USB设备的方法,如图1所示,包括:
[0027]向系统中原USB打开设备的目标函数注入代码,通过所述注入的代码将原USB打开设备的目标函数初始的若干条指令替换为一个无条件的跳转指令;
[0028]当系统执行USB打开设备的目标函数时,通过所述跳转指令将控制流程跳转至旁路函数;
[0029]通过所述旁路函数控制系统USB设备的并发访问。
[0030]其中,向系统中原USB打开设备的目标函数注入代码的过程是动态加载的。
[0031]其中,目标函数初始的若干条指令被替换后,被替换掉的指令保存至蹦床函数中,所述蹦床函数包括:目标函数移除的指令和无条件跳转到目标函数的剩余部分的指令。
[0032]其中,目标函数在被执行时,控制流程跳转至旁路函数中,旁路函数将控制流程跳转至源函数或蹦床函数。
[0033]其中,目标函数是通过重写进程中的二进制映像的方式,注入的代码,对每一个目标函数,重写两个函数,一个是对应的子目标函数,另一个是蹦床函数。
[0034]其中,蹦床函数是动态分配的,在目标函数注入代码前,蹦床函数仅含有单个跳转到目标函数的指令。
[0035]其中,注入的代码是动态加载的,注入的代码将原“打开设备”目标函数的初始若干条指令替换为一个无条件的跳转指令,由此跳转到我们自定义的旁路函数。目标函数的指令被保存在“蹦床函数”中。“蹦床函数”由目标函数所移除的指令和无条件跳转到目标函数的剩余部分的指令所组成。
[0036]当执行到目标函数时,控制流程跳转到我们自定义的“旁路函数”中。首先会执行注入的预处理工作。“旁路函数”可以将流程跳转到源函数或是跳转到“蹦床函数”,当再次调用目标函数时是无注入的。当目标函数执行完成,控制流程返回到旁路函数。旁路函数执行注入的后处理并将控制流返回给源函数。
[0037]注入目标函数是通过重写进程中的二进制映像完成的。对每一个目标函数,实际上需要重写两个函数,一个是对应的目标函数,另一个是其所匹配的蹦床函数。蹦床函数是动态分配的。在注入前,蹦床函数仅含有单个跳转到目标函数的指令。在注入之后,蹦床函数包含目标函数的初始若干指令和跳转到其剩余部分的指令。
[0038]本专利技术还提出了一种并发访问USB设备的系统200,如图2所示,包括:
[0039]注入代码单元201,向系统中原USB打开设备的目标函数注入代码,通过所述注入的代码将原USB打开设备的目标函数初始的若干条指令替换为一个无条件的跳转指令;
[0040]跳转单元202,当系统执行USB打开设备的目标函数时,通过所述跳转指令将控制流程跳转至旁路函数;
[0041]访问单元203,通过所述旁路函数控制系统USB设备的并发访问。
[0042]其中,向系统中原USB打开设备的目标函数注入代码的过程是动态加载的。
[0043]其中,目标函数初始的若干条指令被替换后,被替换掉的指令保存至蹦床函数中,所述蹦床函数包括:目标函数移除的指令和无条件跳本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种并发访问USB设备的方法,所述方法包括:向系统中原USB打开设备的目标函数注入代码,通过所述注入的代码将原USB打开设备的目标函数初始的若干条指令替换为一个无条件的跳转指令;当系统执行USB打开设备的目标函数时,通过所述跳转指令将控制流程跳转至旁路函数;通过所述旁路函数控制系统USB设备的并发访问。2.根据权利要求1所述的方法,所述向系统中原USB打开设备的目标函数注入代码的过程是动态加载的。3.根据权利要求1所述的方法,所述目标函数初始的若干条指令被替换后,被替换掉的指令保存至蹦床函数中,所述蹦床函数包括:目标函数移除的指令和无条件跳转到目标函数的剩余部分的指令。4.根据权利要求3所述的方法,所述目标函数在被执行时,控制流程跳转至旁路函数中,旁路函数将控制流程跳转至源函数或蹦床函数。5.根据权利要求1所述的方法,所述目标函数是通过重写进程中的二进制映像的方式,注入的代码,对每一个目标函数,重写两个函数,一个是对应的子目标函数,另一个是蹦床函数。6.根据权利要求5所述的方法,所述蹦床函数是动态分配的,在目标函数注入代码前,蹦床函数仅含有单个跳转到目标函数的指令。7.一种并发访问USB设备的...

【专利技术属性】
技术研发人员:赵辉杜丽丽
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:

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

1