一种拦截Win32应用程序界面的方法,其中包括,替代函数初始化步骤,为新定义函数分配存储器空间;搜寻步骤,用以取得待处理的原始函数中的JMP指令所指定的跳转地址;地址替代步骤,自搜寻步骤所取得的跳转地址开始,找出原始函数中的所有空操作指令并将其省略,再以指令JMP代替原始函数中的第一个函数指令,其中,用以替代该原始函数的新定义函数的地址则填入指令JMP所指定的跳转地址中;功能扩展步骤,读取存放新定义函数的注册库的内容。(*该技术在2021年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及一种拦截应用程序界面的方法,且特别涉及一种拦截WIN32应用程序界面的方法。由於在呼叫每一个模块的时候,会先跳到此模块所在的地址,之后才进入到系统进入点(system entry)。因此公知技术在要替换视窗系统中的应用程序(AP,Application Program)的时候,一般是对每一个模块(module)中的每一个应用程序进入点加以修改,以达成以自己定义的函数取代系统原定函数的目的。然而,由于公知技术是针对一个一个的模块来进行应用程序进入点的修改程序,因此当同时存在多个模块需要进行应用程序进入点的修改时,就必须逐一地对每一个模块中的每一个应用程序进入点做修改。而这种修改每一个模块的方法,不但运行速度缓慢,且作用的范围小,存在更容易会出现遗漏的可能。本专利技术的目的是提供一种通过直接取代Win32应用程序界面所指定的应用程序来达成修改所使用的应用程序的。为了实现本专利技术的目的,本专利技术提出了一种,包括一替代函数初始化步骤,以下列分步骤进行(a)为一新定义函数分配存储器空间,并分析该新定义函数;(b)当该新定义函数为空,则结束,而当该新定义函数不为空,则在该新定义函数的起始处填写JMP指令及一汇编码做为JMP指令之一跳转地址,其中,该汇编码为该新定义函数所将取代之一原始函数的地址;(c)将该新定义函数除JMP指令及该汇编码外的部分清空;一搜寻步骤,以下列分步骤进行(a)取得待处理的该原始函数;(b)依序读取该原始函数当前的一指令;(c)当该指令为空时,则结束以该搜寻步骤处理该原始函数的程序;(d)当该指令非为JMP时,则移至下一个指令并将一操作数下移一单位,再自步骤(b)往下进行;(e)当该指令为JMP时,则取该指令所跳转的该跳转地址做为待处理的该原始函数的一真实地址,并结束以该搜寻步骤处理该原始函数的程序;一地址替代步骤,以下列分步骤进行(a)自该原始函数的该真实地址开始,在该原始函数的范围内依序对该原始函数中的一函数指令进行分析;(b)当该函数指令为空操作则省略该函数指令,而当该函数指令不为空操作,则继续分析下一个该函数指令;(c)以指令JMP代替该原始函数中的第一个该函数指令,并将用以替代该原始函数的该新定义函数的地址填入指令JMP的该跳转地址中;以及一功能扩展步骤,以下列分步骤进行(a)读取存放该新定义函数之一注册库的内容;(b)依序读取该注册库内的任一该新定义函数,以使该新定义函数可在由该地址替代步骤所得到的该跳转地址上运作;(c)当该注册库的内容完全读取完毕时则结束执行该功能扩展步骤。本专利技术还提出了另一种,包括设计一替代函数初始化步骤,该替代函数初始化步骤为一新定义函数分配存储器空间,并分析该新定义函数;设计一搜寻步骤,该搜寻步骤用以取得待处理的一原始函数中的JMP指令所指定的一跳转地址;设计一地址替代步骤,该地址替代步骤自该搜寻步骤所取得的该跳转地址开始,找出该原始函数中的所有空操作指令以将空操作指令省略,再以指令JMP代替该原始函数中的第一个函数指令,并将用以替代该原始函数的该新定义函数的地址填入指令JMP所指定的该跳转地址中;以及设计一功能扩展步骤,该功能扩展步骤读取存放该新定义函数的一注册库的内容,并依序读取该注册库内的任一该新定义函数。本专利技术提出的一种设计了一个替代函数初始化模块,一个搜寻模块,一个地址替代模块以及一个功能扩展模块,以完成拦截Win32应用程序界面及改变所使用的应用程序等目的。其中,替代函数初始化模块为一个新定义函数分配存储器空间,并分析此新定义函数。搜寻模块则用以取得待处理的原始函数中的JMP指令所指定的跳转地址。而地址替代模块则自搜寻模块所取得的跳转地址开始,找出原始函数中的所有空操作指令以将空操作指令省略,再以指令JMP代替原始函数中的第一个函数指令,并将用以替代此原始函数的新定义函数的地址填入指令JMP所指定的跳转地址中。最后,功能扩展模块读取存放新定义函数的注册库的内容,并依序读取此注册库内的任一个新定义函数。其中,替代函数初始化模块分析新定义函数系使用下列方法。当此新定义函数为空时则结束。而当此新定义函数不为空时,则在此新定义函数的起始处填写JMP指令以及一个汇编码以做为JMP指令的跳转地址。此汇编码则为此新定义函数所将取代的原始函数的地址。最後再将此新定义函数除此JMP指令及汇编码之外的部分清空并结束以此替代函数初始化模块分析新定义函数的操作。此外,在搜寻模块中取得跳转地址的方法则首先取得待处理的原始函数,之后则依序读取此原始函数当前的指令。当此指令为空时,则结束以搜寻模块处理原始函数的程序,而当此指令不为空时,再分析此指令是否为JMP指令。当此指令非为JMP时,则以前述的方法来检查下一个指令。而当此指令为JMP时,则取此指令所跳转的跳转地址做为待处理的原始函数的真实地址,并结束以该搜寻模块处理该原始函数的程序。综上所述,本专利技术通过直接取代Win32应用程序界面所指定的应用程序来达成修改所使用的应用程序的目的。如此不但运作速度加快,也免去了必须对每一模块逐一进行修改的麻烦,因此也不会有遗漏产生。为让本专利技术的上述和其他目的、特征、和优点能更明显易懂,下文特举优选实施例,并结合附图,作详细说明如下附图的简单说明附图说明图1显示的是根据本专利技术之一优选实施例的系统方块图;图2显示的是根据本专利技术的替代函数初始化模块之一优选实施例的执行步骤流程图;图3显示的是根据本专利技术的搜寻模块之一优选实施例的执行步骤流程图;图4显示的是根据本专利技术的地址替代模块之一优选实施例的执行步骤流程图;以及图5显示的是根据本专利技术的功能扩展模块之一优选实施例的执行步骤流程图。重要元件标号100本专利技术的系统方块图105、110、115子功能200替代函数初始化模块205-225替代函数初始化模块的优选实施例的执行步骤300搜寻模块305-335搜寻模块的优选实施例的执行步骤400地址替代模块405-430地址替代模块的优选实施例的执行步骤500功能扩展模块505-525功能扩展模块的优选实施例的执行步骤优选实施例请参照图1,图1显示的是依照本专利技术一优选实施例的一种系统方块图。在本专利技术的系统方块图100中,包括分别将在以后详细说明的替代函数初始化模块200、搜寻模块300、地址替代模块400、功能扩展模块500、以及通过执行这些模块而替换所得的子功能105、110和120。请参照第2图,图2显示的是根据本专利技术的替代函数初始化模块200之一优选实施例的执行步骤流程图。在替代函数初始化模块200中,首先为自定义的新函数分配存储器空间(步骤205)。之后则检查此新函数是否为空函数(步骤210)。当此新函数为空函数的时候,就结束此替代函数初始化模块200的执行。而当此新函数不为空的时候,步骤215就在此新函数的开始处填写JMP(跳转)指令,并在步骤220中将此新函数所将要替代的原函述的地址做为汇编码以填入指令JMP后,以使此汇编码成为此JMP指令所指定的跳转地址。接下来请参照第3图,图3显示的是根据本专利技术的搜寻模块300之一优选实施例的执行步骤流程图。在搜寻模块300中,首先在步骤305中取得待处理的原始函数(Win32应用程序界面(API,Application Prog本文档来自技高网...
【技术保护点】
一种拦截Win32应用程序界面的方法,包括: 一替代函数初始化步骤,以下列分步骤进行: (a)为一新定义函数分配存储器空间,并分析该新定义函数; (b)当该新定义函数为空,则结束,而当该新定义函数不为空,则在该新定义函数的起始处填写JMP指令及一汇编码做为JMP指令之一跳转地址,其中,该汇编码为该新定义函数所将取代之一原始函数的地址; (c)将该新定义函数除JMP指令及该汇编码外的部分清空; 一搜寻步骤,以下列分步骤进行: (a)取得待处理的该原始函数; (b)依序读取该原始函数当前的一指令; (c)当该指令为空时,则结束以该搜寻步骤处理该原始函数的程序; (d)当该指令非为JMP时,则移至下一个指令并将一操作数下移一单位,再自步骤(b)往下进行; (e)当该指令为JMP时,则取该指令所跳转的该跳转地址做为待处理的该原始函数的一真实地址,并结束以该搜寻步骤处理该原始函数的程序; 一地址替代步骤,以下列分步骤进行: (a)自该原始函数的该真实地址开始,在该原始函数的范围内依序对该原始函数中的一函数指令进行分析; (b)当该函数指令为空操作则省略该函数指令,而当该函数指令不为空操作,则继续分析下一个该函数指令; (c)以指令JMP代替该原始函数中的第一个该函数指令,并将用以替代该原始函数的该新定义函数的地址填入指令JMP的该跳转地址中;以及 一功能扩展步骤,以下列分步骤进行: (a)读取存放该新定义函数之一注册库的内容; (b)依序读取该注册库内的任一该新定义函数,以使该新定义函数可在由该地址替代步骤所得到的该跳转地址上运作; (c)当该注册库的内容完全读取完毕时则结束执行该功能扩展步骤。...
【技术特征摘要】
【专利技术属性】
技术研发人员:陈玄同,林光信,
申请(专利权)人:英业达股份有限公司,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。