[发明专利]针对混淆脚本语言的定位方法和系统在审
申请号: | 201510966901.0 | 申请日: | 2015-12-21 |
公开(公告)号: | CN106897211A | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | 隋鹏飞 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 混淆 脚本语言 定位 方法 系统 | ||
技术领域
本申请涉及互联网领域,尤其涉及一种针对混淆脚本语言的定位方法和系统。
背景技术
在Web应用中,前端代码对用户和浏览器来说都是可见的。为了保护应用的脚本代码,在将产品发布给用户之前通常要对所有的脚本进行混淆,以防止具有恶意目的的其他人轻易的复用该前端代码。
以现有的JavaScript脚本语言为例,目前JavaScript脚本语言混淆的基本方法如下:
1、将所有的注释去掉,然后将所有的回车去掉,最后把多余的空格也去掉,从而将整个文件压缩为一行。
2、对所有局部变量和方法进行重命名,把所有的局部变量名和方法名都变成由1-3个字符组合的,达到进一步压缩和混淆的目的。
但是,脚本混淆在保护前端代码的同时,也增加了排查和诊断问题的难度,因为开发人员得到的错误信息中的变量和函数名是混淆后的变量/函数名称,报错位置也是混淆和压缩后的位置,以至于开发人员很难通过错误信息在源代码中定位问题,更难以分析和解决问题。
继续以上述的JavaScript脚本语言为例,当机器执行混淆后的代码之后,如果报错,则需要开发人员进行调试。因此需要通过代码美化工具进行适度的还原,使得混淆后的代码在结构上看起来更清楚一些,但因为变量名/方法名的替换过程是不可逆的,因此不可能对代码进行完全还原,更不可能找到出错信息对应的源代码中的位置,因此,开发人员仍无法根据机器报出的错误信息轻易地正确定位该错误在源文件中的位置,从而影响了分析并修复错误的效率。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的针对混淆脚本语言的定位方法和系统。
为解决上述问题,本申请公开一种针对混淆脚本语言的定位方法,包括:
解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
获取所述可执行代码在客户端运行中发生错误的错误报告;
根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
本申请还公开一种针对混淆脚本语言的定位系统,包括:
代码解析单元,用于解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
代码替换和记录单元,用于替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
代码生成和记录单元,用于将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
错误报告获取单元,用于获取所述可执行代码在客户端运行中发生错误的错误报告;以及
错误定位单元,用于根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
本申请实施例至少具有以下优点:
本申请实施例提出的针对混淆脚本语言的定位方法和系统,可以对混淆后代码中的错误信息中的元素进行定位,查找其在源代码中的位置,从而便于分析并修复错误。
附图说明
图1是本申请第一实施例的针对混淆脚本语言的定位方法的流程图。
图2是本申请第二实施例的针对混淆脚本语言的定位方法的流程图。
图3是本申请第三实施例的针对混淆脚本语言的定位方法的流程图。
图4是本申请第四实施例的针对混淆脚本语言的定位系统的方框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心思想之一在于,由于现有技术在混淆脚本语言之后难以将执行时的错误定位到源代码,本申请提供的技术方案在源代码解析的步骤中记录源代码中的元素名在源代码中的位置,并记录替换前后元素名的对应关系,并在生成可执行代码的步骤中记录替换后元素名在可执行代码中的位置。当可执行代码在运行中发生错误,可以根据错误报告中包含的替换后元素名及位置定位到源代码中的元素名和位置,方便开发人员定位和分析执行中遇到的错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510966901.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种储水箱及其机械式可调液位装置
- 下一篇:可拆卸的暗装大便阀