函数的定位方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:29979891 阅读:25 留言:0更新日期:2021-09-08 10:11
本公开提供了一种函数的定位方法、装置、电子设备及可读存储介质,涉及计算机技术领域,尤其涉及逆向技术领域。具体实现方案为:在运行目标程序时,对目标程序中预指定的目标类的实例化对象进行监听;当监听到实例化对象调用函数时,确定实例化对象所对应的页面内容是否满足预设的内容过滤条件;若满足,则获取实例化对象的函数调用栈信息,函数调用栈信息用于确定实例化对象所调用的函数。基于本方案,能够通过设置内容过滤条件确定出页面中关键内容的实例化对象,并基于函数调用栈信息来确定关键函数,为从反编译的程序代码中的定位关键函数提供了基础,克服了现有技术中的不足。克服了现有技术中的不足。克服了现有技术中的不足。

【技术实现步骤摘要】
函数的定位方法、装置、电子设备及可读存储介质


[0001]本公开涉及计算机
,尤其涉及逆向
,具体而言,本 公开涉及一种函数的定位方法、装置、电子设备及可读存储介质。

技术介绍

[0002]目前,Android应用程序(application,APP)的逆向工作中,在逆 向得到反编译的程序代码之后,需要定位出反编译的程序代码中的关键函 数。
[0003]当逆向出的目标程序的代码量巨大,并且存在混淆时,会导致定位关 键函数时存在困难。

技术实现思路

[0004]本公开为了解决上述缺陷中的至少一项,提供了一种函数的定位方法、 装置、电子设备及可读存储介质。
[0005]根据本公开的第一方面,提供了一种函数的定位方法,该方法包括:
[0006]在运行目标程序时,对目标程序中预指定的目标类的实例化对象进行 监听;
[0007]当监听到实例化对象调用函数时,确定实例化对象所对应的页面内容 是否满足预设的内容过滤条件;
[0008]若满足,则获取实例化对象的函数调用栈信息,函数调用栈信息用于 确定实例化对象所调用的函数。
[0009]根据本公开的第二方面,提供了另一种函数的定位方法,该方法包括:
[0010]获取第一设备提供的目标程序中预指定的目标类的实例化对象的函 数调用栈信息,函数调用栈信息是第一设备在运行目标程序的过程中监听 到实例化对象调用函数,且实例化对象所对应的页面内容满足预设的内容 过滤条件时,向第二设备提供的;
[0011]基于函数调用栈信息确定实例化对象所调用的函数。
[0012]根据本公开的第三方面,提供了一种函数的定位装置,该装置包括:
[0013]监听模块,用于在运行目标程序时,对目标程序中预指定的目标类的 实例化对象进行监听;
[0014]过滤模块,用于在监听到实例化对象调用函数时,确定实例化对象所 对应的页面内容是否满足预设的内容过滤条件;
[0015]函数调用栈信息模块,用于在实例化对象所对应的页面内容满足预设 的内容过滤条件时,获取实例化对象的函数调用栈信息,函数调用栈信息 用于确定实例化对象所调用的函数。
[0016]根据本公开的第四方面,提供了另一种函数的定位装置,该装置包括:
[0017]函数调用栈信息获取模块,用于获取第一设备提供的目标程序中预指 定的目标类的实例化对象的函数调用栈信息,函数调用栈信息是第一设备 在运行目标程序的过程中监听到实例化对象调用函数,且实例化对象所对 应的页面内容满足预设的内容过滤条
件时,向第二设备提供的;
[0018]函数确定模块,用于基于函数调用栈信息确定实例化对象所调用的函 数。
[0019]根据本公开的第五方面,提供了一种电子设备,该电子设备包括:
[0020]至少一个处理器;以及
[0021]与上述至少一个处理器通信连接的存储器;其中,
[0022]存储器存储有可被上述至少一个处理器执行的指令,指令被上述至少 一个处理器执行,以使上述至少一个处理器能够执行上述函数的定位方法。
[0023]根据本公开的第六方面,提供了一种存储有计算机指令的非瞬时计算 机可读存储介质,其中,该计算机指令用于使计算机执行上述函数的定位 方法。
[0024]根据本公开的第七方面,提供了一种计算机程序产品,包括计算机程 序,该计算机程序在被处理器执行时实现上述函数的定位方法。
[0025]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键 或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下 的说明书而变得容易理解。
附图说明
[0026]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0027]图1是本公开实施例提供的一种函数的定位方法的流程示意图;
[0028]图2是本公开实施例提供的另一种函数的定位方法的流程示意图;
[0029]图3是根据本公开提供的一种函数的定位装置的结构示意图;
[0030]图4是根据本公开提供的另一种函数的定位装置的结构示意图;
[0031]图5是用来实现本公开实施例的函数的定位方法的电子设备的框图。
具体实施方式
[0032]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实 施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本 领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和 修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的 描述中省略了对公知功能和结构的描述。
[0033]图1示出了本公开实施例提供的一种函数的定位方法的流程示意图, 如图1中所示,该方法主要可以包括:
[0034]步骤S110:在运行目标程序时,对目标程序中预指定的目标类的实例 化对象进行监听;
[0035]步骤S120:当监听到实例化对象调用函数时,确定实例化对象所对应 的页面内容是否满足预设的内容过滤条件;
[0036]步骤S130:若满足,则获取实例化对象的函数调用栈信息,函数调用 栈信息用于确定实例化对象所调用的函数。
[0037]本公开实施例中,目标程序可以为逆向工作所针对的APP,目标类可 以为实现目标程序的页面中的一些关键内容(如文字、图片以及视频等) 时所需的类,实现这些关键内容所需的类一般为json、array、map、以及 string,可以将json、array、map、以及string类
作为目标类。
[0038]实例化对象即对目标类进行实例化所得到对象。在目标程序的运行时, 可以对实例化对象调用函数的行为进行监听。由于实例化对象可能众多, 并且其对应的页面内容可能不属于页面中的关键内容,因此可以根据预设 的内容过滤条件对实例化对象进行过滤,使得过滤出的实例化对象所对应 的页面内容为关键内容,可以认为过滤出的实例化对象所调用的函数即关 键函数。
[0039]本公开实施例中,函数调用栈信息中包括了实例化对象所调用的函数 的相关信息,可以对函数调用栈信息进行分析,确定出关键函数,从而为 从反编译的程序代码中的定位关键函数提供了基础,并且不会目标程序的 代码量巨大以及代码中存在混淆,影响对目标函数的定位。
[0040]本公开实施例提供的方法,通过在运行目标程序时,对目标程序中预 指定的目标类的实例化对象进行监听,并在监听到实例化对象调用函数时, 确定实例化对象所对应的页面内容是否满足预设的内容过滤条件,获取满 足所对应的页面内容是否满足预设的内容过滤条件的实例化对象的函数 调用栈信息,以便基于对函数调用栈信息的分析确定出实例化对象所调用 的函数。基于本方案,能够通过设置内容过滤条件确定出页面中关键内容 的实例化对象,并基于函数调用栈信息来确定关键函数,为从反编译的程 序代码中的定位关键函数提供了基础,克服了现有技术中的不足。
[0041]本公开的一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种函数的定位方法,应用于第一设备,所述方法包括:在运行目标程序时,对所述目标程序中预指定的目标类的实例化对象进行监听;当监听到所述实例化对象调用函数时,确定所述实例化对象所对应的页面内容是否满足预设的内容过滤条件;若满足,则获取所述实例化对象的函数调用栈信息,所述函数调用栈信息用于确定所述实例化对象所调用的函数。2.根据权利要求2所述的方法,其中,所述内容过滤条件包括以下至少一项:所述实例化对象所对应的页面内容属于预设的内容类型;所述实例化对象所对应的页面内容的数据长度不小于指定值;所述实例化对象所对应的页面内容中包含预设内容。3.根据权利要求1或2所述的方法,其中,获取所述实例化对象的函数调用栈信息,包括:将所述实例化对象的函数调用栈信息写入系统日志;从所述系统日志中提取所述函数调用栈信息。4.根据权利要求3所述的方法,其中,在将所述实例化对象的函数调用栈信息写入系统日志之前,所述方法还包括:获取所述目标程序当前显示页面的页面图像;将所述实例化对象的所对应的页面内容与所述页面图像进行匹配,得到匹配结果;基于所述匹配结果,向所述实例化对象的函数调用栈信息添加关键程度标识;所述将所述实例化对象的函数调用栈信息写入系统日志,包括:将所述添加有所述关键程度标识的所述函数调用栈信息写入系统日志。5.根据权利要求1

4中任一项所述的方法,所述方法还包括以下任一项:基于所述函数调用栈信息确定所述实例化对象所调用的函数;将所述函数调用栈信息提供给第二设备,以使所述第二设备基于所述函数调用栈信息确定所述实例化对象所调用的函数。6.一种函数的定位方法,应用于第二设备,包括:获取第一设备提供的目标程序中预指定的目标类的实例化对象的函数调用栈信息,所述函数调用栈信息是所述第一设备在运行目标程序的过程中监听到所述实例化对象调用函数,且所述实例化对象所对应的页面内容满足预设的内容过滤条件时,向所述第二设备提供的;基于所述函数调用栈信息确定所述实例化对象所调用的函数。7.根据权利要求6所述的方法,其中,所述获取第一设备提供的目标程序中预指定的目标类...

【专利技术属性】
技术研发人员:田聪汤玉民
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1