swf文件中外部链接的去除方法技术

技术编号:8241481 阅读:893 留言:0更新日期:2013-01-24 22:24
本发明专利技术提供一种swf文件中外部链接的去除方法,包括:读取源swf文件;对所述源swf文件进行解析,定位到常量池;对常量池进行解析,获取所述常量池中存储的各个字符串;判断各个所述字符串中是否存在外部链接字符串,如果判断结果为是,则执改变所述常量池中存储的与所述外部链接字符串对应的字符串的值,使其失效,得到不包含外部链接的swf文件。在不需要整个swf文件的全部源代码的情况下,通过修改原外部链接使其失效,从而方便的去除swf文件中的外部链接,增强了用户使用swf文件的用户体验。

【技术实现步骤摘要】

本专利技术属于计算机应用
,具体涉及一种SWf文件中外部链接的去除方法。
技术介绍
Flash游戏是近年来新兴起的一种游戏形式,由于其具有游戏简单、操作方便、绿色、无需安装和文件体积小等优点而渐渐被广大网友喜爱。目前,发布到各个网站的Flash游戏通常包含有各类广告的外部链接,玩家在进行游戏时,在游戏画面的某个位置常常显示某个外部链接,其中,外部链接的触发形式包括点击图片触发或点击按钮触发;例如游戏画面的右上角显示有一个产品的广告图片,玩家在游戏过程中,当无心点击到该广告图片时,页面即会自动跳转到该广告图片对应的一个广告网站。因此,一方面,当游戏画面的局部显示外部链接时,会降低整个游戏画面的观赏度,同时,也存在防碍玩家进行游戏操作;另一方面,在玩家进行游戏的过程中,由于无心点击外部链接而导致页面跳转时,会严重降低玩家的游戏体验,降低玩家进行游戏的娱乐性。因此,现有技术中迫切需要一种方便去除Flash游戏中外部链接的方法。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种,在不需要整个SWf文件的全部源代码的情况下,就可以方便的去除SWf文件中的外部链接,从而增强了用户使用SWf文件的用户体验。本专利技术采用的技术方案如下本专利技术提供一种,包括以下步骤SI,读取源swf文件;S2,对所述源swf文件进行解析,定位到所述源swf文件中的DoABC标签;S3,对所述DoABC标签进行解析,定位到所述DoABC标签中的ABOTata数据体;S4,对所述ABOTata数据体进行解析,定位到所述ABOTata数据体中的常量池;S5,对所述常量池进行解析,获取所述常量池中存储的各个字符串;S6,判断各个所述字符串中是否存在外部链接字符串,如果判断结果为是,则执行S7 ;如果判断结果为否,则得到所述源swf文件中不存在外部链接的结论,并结束流程;S7,改变所述常量池中存储的与所述外部链接字符串对应的字符串的值,使其失效,得到不包含外部链接的swf文件。优选的,S2具体为对所述源swf文件进行解析,获取所述源swf文件中文件头的长度值以及位于所述DoABC标签之前的各个标签的长度值;对所述文件头的长度值以及位于所述DoABC标签之前的各个标签的长度值进行求和计算,获得所述DoABC标签的位置值;根据所述DoABC标签的位置值直接定位到所述DoABC标签。优选的,S3具体为对所述DoABC标签进行解析,得到所述DoABC标签的结构;所述DoABC标签的结构包括标签文件头、DoABC属性标志、标签名称和ABCData数据体;获取所述标签文件头的长度值、所述DoABC属性标志的长度值和所述标签名称的长度值;对所述标签文件头的长度值、所述DoABC属性标志的长度值和所述标签名称的长度值进行求和计算,获得所述ABCData数据体的位置值;根据所述ABOTata数据体的位置值直接定位到所述ABOTata数据体。·优选的,S4具体为对所述ABOTata数据体进行解析,获取所述ABOTata数据体中位于所述常量池之前的数据长度值;根据所述数据长度值直接定位到所述ABCData数据体中的常量池。优选的,S6中,所述外部链接字符串为navigateTo URL字符串。优选的,S7之后,还包括S8,存储所述不包含外部链接的swf文件。本专利技术的有益效果如下本专利技术提供的,在不需要整个swf文件的全部源代码的情况下,通过修改原外部链接使其失效,从而方便的去除SWf文件中的外部链接,增强了用户使用SWf文件的用户体验。附图说明图I为本专利技术提供的的流程示意图。具体实施例方式以下结合附图对本专利技术提供的进行详细介绍如图I所示,本专利技术提供的,包括以下步骤SI,读取源swf文件;S2,对所述源swf文件进行解析,定位到所述源swf文件中的DoABC标签,其中,DoABC全称为Do ActionScript Byte Code,是处理ActionScript3字节码的标签,用于保存ABQ)ata(ActionScript Byte Code Data)和描述ABCData属性和名称的标签,具有区别作用。在一个swf文件中可能存在多个DoABC标签,调用者可以通过DoABC的名称来决定调用哪个标签。现有swf文件的文件结构如表I所示表I :现有swf文件的文件结构表权利要求1.一种,其特征在于,包括以下步骤 SI,读取源swf文件; S2,对所述源swf文件进行解析,定位到所述源swf文件中的DoABC标签; S3,对所述DoABC标签进行解析,定位到所述DoABC标签中的ABOTata数据体; S4,对所述ABOTata数据体进行解析,定位到所述ABOTata数据体中的常量池; S5,对所述常量池进行解析,获取所述常量池中存储的各个字符串; S6,判断各个所述字符串中是否存在外部链接字符串,如果判断结果为是,则执行S7 ;如果判断结果为否,则得到所述源swf文件中不存在外部链接的结论,并结束流程; S7,改变所述常量池中存储的与所述外部链接字符串对应的字符串的值,使其失效,得 到不包含外部链接的swf文件。2.根据权利要求I所述的,其特征在于,S2具体为 对所述源swf文件进行解析,获取所述源swf文件中文件头的长度值以及位于所述DoABC标签之前的各个标签的长度值; 对所述文件头的长度值以及位于所述DoABC标签之前的各个标签的长度值进行求和计算,获得所述DoABC标签的位置值; 根据所述DoABC标签的位置值直接定位到所述DoABC标签。3.根据权利要求I所述的,其特征在于,S3具体为 对所述DoABC标签进行解析,得到所述DoABC标签的结构;所述DoABC标签的结构包括标签文件头、DoABC属性标志、标签名称和ABCData数据体; 获取所述标签文件头的长度值、所述DoABC属性标志的长度值和所述标签名称的长度值; 对所述标签文件头的长度值、所述DoABC属性标志的长度值和所述标签名称的长度值进行求和计算,获得所述ABCData数据体的位置值; 根据所述ABCData数据体的位置值直接定位到所述ABCData数据体。4.根据权利要求I所述的,其特征在于,S4具体为 对所述ABCData数据体进行解析,获取所述ABCData数据体中位于所述常量池之前的数据长度值; 根据所述数据长度值直接定位到所述ABCData数据体中的常量池。5.根据权利要求I所述的,其特征在于, S6中,所述外部链接字符串为navigateTo URL字符串。6.根据权利要求I所述的,其特征在于,S7之后,还包括 S8,存储所述不包含外部链接的swf文件。全文摘要本专利技术提供一种,包括读取源swf文件;对所述源swf文件进行解析,定位到常量池;对常量池进行解析,获取所述常量池中存储的各个字符串;判断各个所述字符串中是否存在外部链接字符串,如果判断结果为是,则执改变所述常量池中存储的与所述外部链接字符串对应的字符串的值,使其失效,得到不包含外部链接的swf文件。在不需要整个swf文件的全部源代码的情况下,通过修改原外部链接使其失效,从而方便的去除swf文件中的外部链接,增强了用户使用swf文件的用户体验。文档编号G06F9/44GK1028本文档来自技高网...

【技术保护点】
一种swf文件中外部链接的去除方法,其特征在于,包括以下步骤:S1,读取源swf文件;S2,对所述源swf文件进行解析,定位到所述源swf文件中的DoABC标签;S3,对所述DoABC标签进行解析,定位到所述DoABC标签中的ABCData数据体;S4,对所述ABCData数据体进行解析,定位到所述ABCData数据体中的常量池;S5,对所述常量池进行解析,获取所述常量池中存储的各个字符串;S6,判断各个所述字符串中是否存在外部链接字符串,如果判断结果为是,则执行S7;如果判断结果为否,则得到所述源swf文件中不存在外部链接的结论,并结束流程;S7,改变所述常量池中存储的与所述外部链接字符串对应的字符串的值,使其失效,得到不包含外部链接的swf文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:张魁
申请(专利权)人:四三九九网络股份有限公司
类型:发明
国别省市:

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

1