发明内容
本发明的目的在于克服现有技术中的缺点与不足,提供一种广告监管方法。
本发明是采用以下的技术方案实现的:一种广告监管方法,包括如下步骤:
步骤一:扫描系统所有的应用程序,判断这些应用程序是否携带广告,若携带广告,则进入步骤二,若否,则结束;
步骤二:搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置;
步骤三:接管系统当前网络函数,获得广告的流量信息及网络链接地址信息;
步骤四:提示是否进行拦截,若选择拦截,则进入步骤五,若选择不拦截,则显示广告;
步骤五:拦截并禁止显示广告。
进一步,还包括步骤六:在日志中记录广告消耗的电量、流量及网络链接地址。
进一步,步骤六之前还包括步骤:提示是否禁止网络,若选择是,则关闭网络链接,若选择否,则进入步骤六。
进一步,还包括步骤七:实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置;该步骤七可设置在步骤二之后,或设置在步骤三之后,当步骤五或步骤六完成后,再返回该步骤七;或该步骤七设置在步骤六之后,执行完后返回步骤四。
相对于现有技术,本发明的广告监管方法能够扫描或实时监控应用程序是否携带的广告,并可根据用户选择拦截禁止显示广告,净化了应用程序的界面,并释放了系统的内存空间,提高了运行效率。
另外,本发明还提供了一种广告监管装置,其包括:
扫描模块,扫描系统所有的应用程序,判断这些应用程序是否携带广告;
第一定位模块,搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置;
网络管理模块,其接管系统当前网络函数,获得广告的流量信息及网络链接地址信息;
提示模块,其提示是否进行拦截;
拦截执行模块,其拦截并禁止显示广告。
进一步,还包括日志模块,其记录广告消耗的电量、流量及网络链接地址。
以及还包括广告电量计算模块,以计算广告消耗的电量。
以及还包括第二监控定位模块,其实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置。
相对于现有技术,本发明的广告监管装置能够扫描或实时监控应用程序是否携带的广告,并可根据用户选择拦截禁止显示广告,净化了应用程序的界面,并释放了系统的内存空间,提高了运行效率。
为了能更清晰的理解本发明,以下将结合附图说明阐述本发明的具体实施方式。
具体实施方式
实施例1
请参阅图1,其是本发明实施例1的广告监管方法的流程图。该广告监管方法包括步骤:
步骤S11:扫描系统所有的应用程序,判断这些应用程序是否携带广告。若携带广告,则进入步骤S12,若否,则结束。
具体地,判断应用程序是否携带广告的方法为:首先扫描应用程序,获得应用程序特征码,将扫描所得的应用程序特征码与一特征库的广告特征码进行比对,若该应用程序特征码中存在该特征库的一广告特征码,则判断该应用程序携带广告。进一步,该特征库的广告特征码为SDK(广告软件开发包)特征码,包括广告函数特征码、广告厂商信息特征码等。该特征库设置在本地客户端或者云端服务器上。
步骤S12:搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置。
步骤S13:接管系统当前网络函数,获得广告的流量信息及网络链接地址信息。
具体地,接管系统当前网络函数是通过hook方法获取网络函数。通过替换网络函数库接口,实现对其网络函数进行接管。以手机安卓系统为例,通过替换安卓操作系统LIBRARIES层的Libc接口,对其网络函数进行接管。
网络函数包含连接函数(connect)和读/写函数(read/write)。其中,读/写函数(read/write)包含有发出和返回的数据包的数据信息,其返回的数据包的数值为流量。连接函数(connect)和读/写函数(read/write)包含有请求联网的网址或IP地址,可提取出网络链接地址。因此,获得广告的网络链接地址信息及广告流量信息的具体步骤为:
步骤S131:从网络函数中的连接函数中分析出IP地址、端口及连接信息;
步骤S132:同时,从网络函数中的读/写函数中解析出Http协议、网址和连接信息;
步骤S133:其根据IP地址、端口及连接信息获取模块和Http协议、网址和连接信息获取模块的连接信息,将IP地址、端口及Http协议和网址关联出IP端口网址,从而获得所有联网的链接地址;
步骤S134:将获得的所有的联网的链接地址与一广告链接地址库进行比对,获得与广告链接地址库匹配的链接地址即为广告的网络链接地址。
步骤S135:统计并记录由广告产生的流量。由于网络函数中的读/写函数(read/write)的返回数据包中记录有流量值,则可直接统计并记录广告链接地址的数据包产生的流量值。
步骤S14:在显示界面提示是否进行拦截?若选择拦截,则进入步骤S15,若选择不拦截,则显示广告,并进入步骤S18。
步骤S15:拦截广告,禁止显示广告。
具体地,由于广告的显示需要通过内存的一显示函数指令实现,因此,拦截广告的具体方式是:进入到操作系统的应用层,根据函数信息特征(如函数名)判断是否为广告显示函数,然后接管该广告显示函数,并修改内存以对该广告显示函数进行修改,从而关闭广告禁止其显示。
步骤S16:在显示界面提示是否禁止网络。若选择是,则进入步骤S17以关闭网络链接。若选择否,则进入步骤S18。
步骤S17:关闭网络链接,以禁止应用程序通过互联网下载广告。
其中,由于在步骤S13中已接管当前网络函数,因此,仅需要修改该当前的网络函数即可实现网络链接的关闭。
步骤S18:在日志中记录广告消耗的电量、流量及网络链接地址。
其中,广告耗电量的获取方法包括步骤:
步骤a:调取系统的总耗电量。手机系统自身已具有电量统计的功能,还具有单个应用程序耗电量的功能。因此,可直接调用系统的电量统计值。
步骤b:获得应用程序的广告耗电比。具体地,在本地客户端或云端设置一广告耗电比数据库。该广告耗电比数据库记录有应用程序带广告运行时的单位时间耗电量、和应用程序去广告后运行时的单位时间耗电量,二者的差值与应用程序带广告运行时的单位时间耗电量的比值即获得应用程序的广告耗电比。
步骤c:统计广告的耗电量。将步骤a所获得的系统的总耗电量,乘以每个应用程序的广告耗电比,获得单个应用程序的广告耗电量。将每个应用程序的广告耗电量叠加,获得所有广告的耗电量。
该流量及网络链接地址则是在步骤S12中获得。
步骤S19:实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置,然后返回步骤S14,对当前正在开启的应用程序的广告进行管理。
请参阅图2,其是本发明的广告监管装置的模块示意图。该广告监管装置包括扫描模块11、第一定位模块12、网络管理模块13、、特征库14、提示模块15、拦截执行模块16、日志模块17和第二监控定位模块18。其中,该特征库14内收集存放广告特征码。
该扫描模块11扫描系统所有的应用程序,判断这些应用程序是否携带广告。
具体地,该扫描模块11扫描系统所有的应用程序,获得这些应用程序的特征码,然后将扫描所得的应用程序特征码与特征库14的广告特征码进行比对,若该应用程序特征码中存在该特征库14的一广告特征码,则判断该应用程序携带广告。进一步,该特征库14的广告特征码为SDK(广告软件开发包)特征码,包括广告函数特征码、广告厂商信息特征码等。该特征库设置在本地客户端或者云端服务器上。
该第一定位模块12搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置。
该网络管理模块13接管系统当前网络函数,获得广告的流量信息及网络链接地址信息。
具体地,接管系统当前网络函数是通过hook方法获取网络函数。该网络管理模块12通过替换网络函数库接口,实现对其网络函数进行接管。以手机安卓系统为例,通过替换安卓操作系统LIBRARIES层的Libc接口,对其网络函数进行接管。
网络函数包含连接函数(connect)和读/写函数(read/write)。其中,读/写函数(read/write)包含有发出和返回的数据包的数据信息,其返回的数据包的数值为流量。连接函数(connect)和读/写函数(read/write)包含有请求联网的网址或IP地址,可提取出网络链接地址。
因此,还包括IP地址、端口及连接信息获取模块、Http协议、网址和连接信息获取模块、关联模块、比对模块、流量统计模块,以及一广告链接地址库,以获得广告的网络链接地址信息及广告流量信息。
该IP地址、端口及连接信息获取模块从网络函数中的连接函数(connect)中分析出IP地址、端口及连接信息(socket)。
该Http协议、网址和连接信息获取模块同时从网络函数中的读/写函数(read/write)中解析出Http协议、网址(URL)和连接信息(socket)。
该关联模块根据该IP地址、端口及连接信息获取模块和该Http协议、网址和连接信息获取模块获得的的连接信息,将IP地址、端口及Http协议和网址关联出IP端口网址,从而获得所有联网的链接地址。
该比对模块将获得的所有的联网的链接地址与广告链接地址库进行比对,获得与广告链接地址库匹配的链接地址。
该流量统计模块统计并记录由广告产生的流量。由于网络函数中的读/写函数(read/write)的返回数据包中记录有流量值,则可直接根据比对模块的比对结果统计并记录广告链接地址的数据包产生的流量值。
该提示模块15根据扫描模块11和第一定位模块12获得的广告信息,提示用户是否对该广告信息进行拦截。若用户选择不拦截,则显示广告,同时,日志模块17记录下该广告的广告消耗的电量、流量及网络链接地址。若用户选择拦截,则该拦截执行模块16对该广告进行拦截。
进一步,该提示模块15还进一步提示是否禁止网络,以禁止应用程序通过互联网下载广告。若用户选择禁止,则该网络管理模块13关闭网络链接。
进一步,还包括一广告电量计算模块19,其计算获得广告消耗的电量。
具体地,该广告电量计算模块19包括系统电量调取模块、广告耗电比获取模块、统计模块和广告耗电数据库。
该系统电量调取模块调取系统的总耗电量。手机系统自身已具有电量统计的功能,还具有单个应用程序耗电量的功能。因此,可直接调用系统的电量统计值。
该广告耗电比获取模块获得广告占应用程序的耗电比。具体地,该广告耗电比数据库设置在本地客户端或云端。该广告耗电比数据库记录有应用程序带广告运行时的单位时间耗电量、和应用程序去广告后运行时的单位时间耗电量,该广告耗电比获取模块计算将上述二者的差值与应用程序带广告运行时的单位时间耗电量的比值即获得应用程序的广告耗电比。
统计模块统计广告的耗电量。将系统电量调取模块获得的系统的总耗电量,乘以广告耗电比获取模块获得的每个应用程序的广告耗电比,获得单个应用程序的广告耗电量。将每个应用程序的广告耗电量叠加,获得所有广告的耗电量。
最后,日志模块17记录下广告消耗的电量、流量及网络链接地址。
该第二监控定位模块18实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置,然后将监控信息发送至提示模块15,提示用户是否对广告进行拦截,及对当前正在开启的应用程序的广告进行管理。
相对于现有技术,本发明的广告监管方法及其装置能够扫描或实时监控应用程序是否携带的广告,并可根据用户选择拦截禁止显示广告,净化了应用程序的界面,并释放了系统的内存空间,提高了运行效率。尤其适用于手机操作系统。
实施例2
请参阅图3,其是本发明实施例2的广告监管方法的流程图。该广告监管方法包括如下步骤:
步骤S21:扫描系统所有的应用程序,判断这些应用程序是否携带广告。若携带广告,则进入步骤S22,若否,则结束。
具体地,判断应用程序是否携带广告的方法为:首先扫描应用程序,获得应用程序特征码,将扫描所得的应用程序特征码与一特征库的广告特征码进行比对,若该应用程序特征码中存在该特征库的一广告特征码,则判断该应用程序携带广告。进一步,该特征库的广告特征码为SDK(广告软件开发包)特征码,包括广告函数特征码、广告厂商信息特征码等。该特征库设置在本地客户端或者云端服务器上。
步骤S22:搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置。
步骤S23:实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置。
步骤S24:接管系统当前网络函数,获得广告的流量信息及网络链接地址信息。
具体地,接管系统当前网络函数是通过hook方法获取网络函数。通过替换网络函数库接口,实现对其网络函数进行接管。以手机安卓系统为例,通过替换安卓操作系统LIBRARIES层的Libc接口,对其网络函数进行接管。
网络函数包含连接函数(connect)和读/写函数(read/write)。其中,读/写函数(read/write)包含有发出和返回的数据包的数据信息,其返回的数据包的数值为流量。连接函数(connect)和读/写函数(read/write)包含有请求联网的网址或IP地址,可提取出网络链接地址。因此,获得广告的网络链接地址信息及广告流量信息的具体步骤为:
步骤S241:从网络函数中的连接函数中分析出IP地址、端口及连接信息;
步骤S242:同时,从网络函数中的读/写函数中解析出Http协议、网址和连接信息;
步骤S243:其根据IP地址、端口及连接信息获取模块和Http协议、网址和连接信息获取模块的连接信息,将IP地址、端口及Http协议和网址关联出IP端口网址,从而获得所有联网的链接地址;
步骤S244:将获得的所有的联网的链接地址与一广告链接地址库进行比对,获得与广告链接地址库匹配的链接地址即为广告的网络链接地址。
步骤S245:统计并记录由广告产生的流量。由于网络函数中的读/写函数(read/write)的返回数据包中记录有流量值,则可直接统计并记录广告链接地址的数据包产生的流量值。
步骤S25:在显示界面提示是否进行拦截?若选择拦截,则进入步骤S26,若选择不拦截,则显示广告,并进入步骤S29。
步骤S26:拦截广告,禁止显示广告。
具体地,由于广告的显示需要通过内存的一显示函数指令实现,因此,拦截广告的具体方式是:进入到操作系统的应用层,根据函数信息特征(如函数名)判断是否为广告显示函数,然后接管该广告显示函数,并修改内存以对该广告显示函数进行修改,从而关闭广告禁止其显示。
步骤S27:在显示界面提示是否禁止网络。若选择是,则进入步骤S28以关闭网络链接。若选择否,则进入步骤S29。
步骤S28:关闭网络链接,以禁止应用程序通过互联网下载广告。
其中,由于在步骤S24中已接管当前网络函数,因此,仅需要修改该当前的网络函数即可实现网络链接的关闭。
步骤S29:在日志中记录广告消耗的电量、流量及网络链接地址。然后返回步骤S23,继续对当前正在开启的应用程序进行广告显示的监控。
其中,广告耗电量的获取方法包括步骤:
步骤a:调取系统的总耗电量。手机系统自身已具有电量统计的功能,还具有单个应用程序耗电量的功能。因此,可直接调用系统的电量统计值。
步骤b:获得应用程序的广告耗电比。具体地,在本地客户端或云端设置一广告耗电比数据库。该广告耗电比数据库记录有应用程序带广告运行时的单位时间耗电量、和应用程序去广告后运行时的单位时间耗电量,二者的差值与应用程序带广告运行时的单位时间耗电量的比值即获得应用程序的广告耗电比。
步骤c:统计广告的耗电量。将步骤a所获得的系统的总耗电量,乘以每个应用程序的广告耗电比,获得单个应用程序的广告耗电量。将每个应用程序的广告耗电量叠加,获得所有广告的耗电量。
该流量及网络链接地址则是在步骤S24中获得。
在本实施例中2的广告监管装置与实施例1的大致相同,其区别仅在于各模块之间工作流程的顺序区别。当第一定位模块12搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置之后,该第二监控定位模块18实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置。在由第一定位模块12和第二监控定位模块18对正在运行的和正在开启的应用程序的广告进行定位后,再由网络管理模块13接管系统当前网络函数,获得广告的流量信息及网络链接地址信息。之后通过提示模块15提示用户是否对这些广告信息进行拦截,然后通过拦截执行模块16对该广告进行拦截,以及通过日志模块17记录下广告消耗的电量、流量及网络链接地址。
实施例3
本发明实施例3的广告监管方法与实施例2的大致相同,其区别仅在于:该步骤S23和步骤S24的工作流程可调换顺序,即在步骤S22:搜索当前正在运行中的应用程序的内存,定位其所有广告可能显示的位置之后,执行步骤S24:接管系统当前网络函数,获得广告的流量信息及网络链接地址信息,然后再执行步骤S23:实时监控当前正在开启的应用程序,搜索其内存,定位其所有广告可能显示的位置。其它步骤与实施例2的相同,在此不再赘述。
本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。