WO2017107808A1 - 针对混淆脚本语言的定位方法和系统 - Google Patents

针对混淆脚本语言的定位方法和系统 Download PDF

Info

Publication number
WO2017107808A1
WO2017107808A1 PCT/CN2016/109649 CN2016109649W WO2017107808A1 WO 2017107808 A1 WO2017107808 A1 WO 2017107808A1 CN 2016109649 W CN2016109649 W CN 2016109649W WO 2017107808 A1 WO2017107808 A1 WO 2017107808A1
Authority
WO
WIPO (PCT)
Prior art keywords
element name
source code
replaced
code
replacement
Prior art date
Application number
PCT/CN2016/109649
Other languages
English (en)
French (fr)
Inventor
隋鹏飞
Original Assignee
阿里巴巴集团控股有限公司
隋鹏飞
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 阿里巴巴集团控股有限公司, 隋鹏飞 filed Critical 阿里巴巴集团控股有限公司
Publication of WO2017107808A1 publication Critical patent/WO2017107808A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Definitions

  • the present application relates to the field of Internet, and in particular, to a positioning method and system for a confused scripting language.
  • front-end code is visible to both the user and the browser. To protect the script code of an application, it is common to confuse all scripts before releasing the product to the user to prevent others with malicious purposes from easily reusing the front-end code.
  • script confusion increases the difficulty of troubleshooting and diagnosing problems while protecting the front-end code, because the variables and function names in the error information obtained by the developer are confusing variables/function names, and the error location is also confused and compressed. The location is so difficult for developers to locate problems in the source code through error messages, making it harder to analyze and solve problems.
  • embodiments of the present application have been made in order to provide a positioning method and system for a confusing scripting language that overcomes the above problems or at least partially solves the above problems.
  • the present application discloses a positioning method for a confused scripting language, including:
  • the application also discloses a positioning system for a confused scripting language, including:
  • a code parsing unit configured to parse the source code, and record a position of the element name in the source code in the source code
  • a code replacement and recording unit configured to replace the element name in the parsed source code, and record a correspondence between the element name before replacement and the corresponding replaced element name
  • a code generation and recording unit for generating executable code from the replaced source code, and recording a position of the replaced element name in the executable code
  • An error report obtaining unit configured to obtain an error report that the executable code generates an error in a client operation
  • the error locating unit is configured to determine, according to the replaced element name included in the error report and the position of the replaced element name, the corresponding element name before replacement and the position of the element name before the replacement.
  • the positioning method and system for the obfuscated scripting language proposed by the embodiment of the present application can locate the elements in the error information in the obfuscated code to find its position in the source code, thereby facilitating analysis and fixing errors.
  • FIG. 1 is a flowchart of a positioning method for a confusion scripting language according to a first embodiment of the present application.
  • FIG. 2 is a flow chart of a positioning method for a confusion scripting language according to a second embodiment of the present application.
  • FIG. 3 is a flowchart of a positioning method for a confusion scripting language according to a third embodiment of the present application.
  • FIG. 4 is a block diagram of a positioning system for a confused scripting language of a fourth embodiment of the present application.
  • the technical solution provided by the present application records the element names in the source code in the step of source code parsing.
  • the executable code runs an error
  • the element name and location in the source code can be located according to the replaced element name and location contained in the error report, so that the developer can locate and analyze the errors encountered in the execution.
  • the first embodiment of the present application proposes a positioning method for the confusion scripting language, as shown in FIG.
  • a flowchart of a positioning method for a confused scripting language is proposed in the first embodiment of the present application.
  • Step 101 parsing source code, and recording a location of an element name in the source code in the source code
  • the element name in the source code may include a local variable name, a global variable name, a constant name, a method name, a class name, and the like.
  • the position of the local variable name and the method name in the source code in the element may be performed. recording.
  • the parsing source code may be to parse the JavaScript source code into an abstract syntax tree by, for example, a code parser, and each node in the abstract syntax tree corresponds to each element in the JavaScript source code. . Therefore, in this step, the node corresponding to each local variable name and method name can be determined, and the position of the local variable name or method name in the source code (for example, the row number, the column number) is recorded in the local variable name. Or the data structure of the node corresponding to the method name.
  • the location of the element name in the source code may also be recorded in other storage locations of the server, such as a newly created document, and the location of the record may be associated with the node corresponding to the element name after parsing.
  • the storage location is not particularly limited.
  • Step 102 replacing an element name in the parsed source code, and recording a correspondence between the element name before the replacement in the source code and the corresponding replaced element name;
  • the element name in the parsed source code can be replaced with the shortest available name, and the element name before the replacement is recorded in the abstract syntax tree corresponding to the node of the replaced element name.
  • the data structure In the data structure.
  • the position of the element name in the source code and the replaced element name are stored. Since the replaced element name is associated with the node, in this step, the correspondence between the replaced element name stored in the corresponding node and the pre-replacement element name stored in the node can be established.
  • the replaced element name may also be recorded in other locations of the server, such as a newly created document, etc., however, the location of this record must also be associated with the node corresponding to the element name after parsing.
  • variable name of the current scope different variables can not be repeated, and the confused name cannot be a keyword; 2.
  • the sub-scope confused variable name cannot be used with the parent. Domain conflict; 3. Cannot confuse global variable names.
  • Step 103 Generate executable code from the replaced source code, and record a position of the replaced element name in the executable code;
  • the executable code file can be formed by sequentially traversing the abstract syntax tree, and inserting the pre-replacement element name and position stored in the data structure of the node and the replaced element name into the code file in order.
  • the position of the replaced element name in the executable code file will be obtained, and then the changed element name and its position before the replacement and the replaced element name and its position can be written into the element position comparison table.
  • the element position comparison table includes, for example:
  • Step 104 Obtain an error report that the executable code generates an error when the client runs.
  • the error report can be intercepted by installing the plugin in the browser.
  • the user accesses the server through the browser, the user can be prompted to install the plugin by, for example, popping up a dialog box.
  • the plugin can intercept the error and report it to the server.
  • Step 105 Determine, according to the replaced element name included in the error report and the location of the replaced element name, the corresponding element name before replacement and the position of the element name before the replacement.
  • the above error includes the replaced element name and its position, which can be found in the source code corresponding to the determined element name and location from the above-mentioned element position comparison table. Replace the position of the previous element name and element name, and display the position of the element name and element name before the replacement in the source code of the query to the developer, so that the developer can locate and analyze the problem.
  • the method further includes:
  • this step can be verified by installing authentication information, such as AccessKey, in the browser plugin.
  • authentication information such as AccessKey
  • step 105 can be performed, that is, obtaining the replaced element name included in the error report and the location of the replaced element name, and searching for the element name of the corresponding source code and the element of the source code.
  • the location finds and displays the element name of the corresponding source code from the server and the location of the element of the source code. To prevent malicious users from stealing the mapping table of element locations stored in the server.
  • the positioning method for the obfuscated script language proposed in the embodiment of the present application can locate the elements in the error information, find the position in the source code, and avoid the development of the code running error in the prior art. It is not convenient for people to locate the location in the code before the original parsing, which is convenient for developers to analyze and fix errors.
  • FIG. 2 is a flowchart of a method for locating a confusion scripting language according to a second embodiment of the present application. As shown in FIG. 2, the positioning method for the obfuscated script language in this embodiment includes the following steps:
  • Step 201 parsing source code, and recording a location of an element name in the source code in the source code
  • Step 202 replacing the element name in the parsed source code, and recording the element before replacement The correspondence between the name and the corresponding replaced element name;
  • Step 203 compressing the parsed source code and removing comments, spaces, and/or carriage returns.
  • comments, spaces, and/or carriage returns in the parsed source code can be removed to further reduce the readability of the code.
  • the parsed source code after compression (for example, the abstract syntax tree) can have only one line.
  • Step 203 may be performed before step 202, or may be performed simultaneously or after step 202, and is not particularly limited herein.
  • Step 204 Generate the executable code by using the replaced source code, and record a location of the replaced element name in the executable code;
  • This step may be the same as or similar to step 103 of the first embodiment described above, and details are not described herein again.
  • Step 205 Obtain an error report that the executable code generates an error in a client running.
  • Step 206 Determine, according to the replaced element name included in the error and the position of the replaced element name, the element name of the corresponding source code before replacement and the position of the element name before the replacement.
  • steps 205 and 206 may also be the same as or similar to the steps 104 and 105 in the previous embodiment, and details are not described herein again.
  • the positioning method for the obfuscated scripting language proposed by the above embodiment can locate the elements in the error information and find the position in the source code, thereby avoiding the developer's inability to easily locate the code in the prior art.
  • the problem of location in the code before the original parsing makes it easier for developers to analyze and fix errors.
  • FIG. 3 is a flow chart showing a positioning method for a confusion scripting language according to a third embodiment of the present application. As shown in FIG. 3, the positioning method for the obfuscated script language in this embodiment includes the following steps:
  • Step 301 parsing the source code, and recording the location of the element name in the source code in the source code;
  • Step 302 replacing the element name in the parsed source code, and recording the correspondence between the element name before replacement and the corresponding replaced element name;
  • step 303 the parsed source code is compressed to remove comments, spaces, and/or carriage returns.
  • step 303 is the same as or similar to step 203 in the second embodiment, and details are not described herein again.
  • step 303 may be performed before step 302, or may be performed simultaneously or after step 302, and is not particularly limited herein.
  • Step 304 Generate the executable code by using the replaced source code, and record the location of the replaced element name in the executable code;
  • step 103 it may be the same as or similar to step 103 of the first embodiment, and details are not described herein again.
  • Step 305 recording version information of the executable code
  • the version information of the executable code can be recorded in the element position comparison table.
  • the step of generating the version information can be implemented, for example, using the existing UUID software, but the present application is not particularly limited.
  • the element position comparison table includes, for example:
  • Step 306 Obtain an error report that the executable code generates an error in the running of the client;
  • Step 307 Determine, according to the replaced element name included in the error report and the location of the replaced element name, the element name of the corresponding source code and the location of the element of the source code.
  • This step may also be the same as or similar to steps 104 and 105 in the previous embodiment, and details are not described herein again.
  • the method further includes:
  • this step can be verified by installing authentication information, such as AccessKey, in the browser plugin. Only after the verification is passed, step 307 can be performed, that is, obtaining the replaced element name included in the error report and the position of the replaced element name, and searching for the element name of the corresponding source code and the element of the source code. position. In this way, malicious users can be prevented from stealing the correspondence table of the elements stored in the server.
  • authentication information such as AccessKey
  • the positioning method for the obfuscated script language proposed in the embodiment of the present application can locate the elements in the error information, find the position in the source code, and avoid the development of the code running error in the prior art. It is not convenient for people to locate the location in the code before the original parsing, which is convenient for developers to analyze and fix errors.
  • the positioning system 100 for the confusion scripting language proposed by the embodiment of the present application may include:
  • a code parsing unit 11 configured to parse the source code and record a position of the element name in the source code in the source code;
  • a code replacement and recording unit 12 configured to replace an element name in the parsed source code, and record a correspondence between the element name before replacement and the corresponding replaced element name;
  • a code generation and recording unit 13 for generating executable code of the replaced source code, and recording a position of the replaced element name in the executable code
  • the error report obtaining unit 14 is configured to obtain an error report that the executable code generates an error in the running of the client;
  • the error locating unit 15 is configured to determine, according to the replaced element name included in the error report and the position of the replaced element name, the corresponding element name before replacement and the position of the element name before the replacement.
  • the element name may include: a local variable name and a method name.
  • the code parsing unit 11 is specifically configured to parse the source code into an abstract syntax tree and position the element name in the source code in the source code. Recorded within the data structure of the node corresponding to the element in the abstract syntax tree.
  • the code replacement and recording unit 12 is specifically configured to:
  • the replaced element name is recorded in a data structure of a node in the abstract syntax tree corresponding to the element name before the replacement.
  • the code generation and recording unit 13 is specifically configured to:
  • system further includes:
  • a code compression unit for compressing the parsed source code, removing comments, spaces, and/or carriage returns.
  • system further includes:
  • a code version information recording unit for recording version information of the executable code.
  • the code generation and recording unit 13 is specifically configured to:
  • the location of the element name includes a row number and a column number where the element is located
  • the element location comparison table includes:
  • the positioning system further includes:
  • a verification unit configured to verify whether the behavior reported to the server is valid.
  • the positioning system for the confusion scripting language proposed by the above embodiment can locate the elements in the error information and find the position in the source code, thereby avoiding the developer's inability to easily locate the code in the prior art.
  • the problem of location in the code before the original parsing makes it easier for developers to analyze and fix errors.
  • the ratio is described because it is substantially similar to the method embodiment. It is relatively simple, and the relevant parts can be referred to the description of the method embodiment.
  • embodiments of the embodiments of the present application can be provided as a method, apparatus, or computer program product. Therefore, the embodiments of the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Moreover, embodiments of the present application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • the computer device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
  • RAM random access memory
  • ROM read only memory
  • Memory is an example of a computer readable medium.
  • Computer readable media including both permanent and non-persistent, removable and non-removable media may be implemented by any method or technology for signal storage.
  • the signals can be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory. (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD) or other optical storage,
  • PRAM phase change memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • RAM random access memory
  • ROM read only memory
  • EEPROM electrically erasable programmable read only memory
  • flash memory or other memory technology
  • compact disk read only memory CD-ROM
  • DVD digital versatile disk
  • a magnetic tape cartridge, magnetic tape storage or other magnetic storage device or any other non-transporting medium can be used to store signals that can be accessed by a computing device.
  • computer readable media does not include non-persistent computer readable media, such as modulated data signals and carrier waves.
  • Embodiments of the present application are described with reference to flowcharts and/or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of the present application. It will be understood that each flow and/or block of the flowchart illustrations. Or a combination of processes and/or blocks in a block diagram.
  • These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor or other programmable data processing terminal device to produce a machine such that instructions are executed by a processor of a computer or other programmable data processing terminal device Means are provided for implementing the functions specified in one or more of the flow or in one or more blocks of the flow chart.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing terminal device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the instruction device implements the functions specified in one or more blocks of the flowchart or in a flow or block of the flowchart.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种针对混淆脚本语言的定位方法及系统,所述方法包括:解析源代码,并记录所述源代码中的元素名在所述源代码中的位置(101,201,301);替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系(102,202,302);将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置(103,204,304);获取所述可执行代码在客户端运行中发生错误的错误报告(104,205,306);根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置(105,206,307)。该方法及系统能够对错误信息中的元素进行定位,为开发人员分析并修复代码错误提供了便利。

Description

针对混淆脚本语言的定位方法和系统 技术领域
本申请涉及互联网领域,尤其涉及一种针对混淆脚本语言的定位方法和系统。
背景技术
在Web应用中,前端代码对用户和浏览器来说都是可见的。为了保护应用的脚本代码,在将产品发布给用户之前通常要对所有的脚本进行混淆,以防止具有恶意目的的其他人轻易的复用该前端代码。
以现有的JavaScript脚本语言为例,目前JavaScript脚本语言混淆的基本方法如下:
1、将所有的注释去掉,然后将所有的回车去掉,最后把多余的空格也去掉,从而将整个文件压缩为一行。
2、对所有局部变量和方法进行重命名,把所有的局部变量名和方法名都变成由1-3个字符组合的,达到进一步压缩和混淆的目的。
但是,脚本混淆在保护前端代码的同时,也增加了排查和诊断问题的难度,因为开发人员得到的错误信息中的变量和函数名是混淆后的变量/函数名称,报错位置也是混淆和压缩后的位置,以至于开发人员很难通过错误信息在源代码中定位问题,更难以分析和解决问题。
继续以上述的JavaScript脚本语言为例,当机器执行混淆后的代码之后,如果报错,则需要开发人员进行调试。因此需要通过代码美化工具进行适度的还原,使得混淆后的代码在结构上看起来更清楚一些,但因为变量名/方法名的替换过程是不可逆的,因此不可能对代码进行完全还原,更不可能找到出错信息对应的源代码中的位置,因此,开发人员仍无法根据机器报出的错误信息轻易地正确定位该错误在源文件中的位置,从而影响了分析并修复错误的效率。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的针对混淆脚本语言的定位方法和系统。
为解决上述问题,本申请公开一种针对混淆脚本语言的定位方法,包括:
解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
获取所述可执行代码在客户端运行中发生错误的错误报告;
根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
本申请还公开一种针对混淆脚本语言的定位系统,包括:
代码解析单元,用于解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
代码替换和记录单元,用于替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
代码生成和记录单元,用于将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
错误报告获取单元,用于获取所述可执行代码在客户端运行中发生错误的错误报告;以及
错误定位单元,用于根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
本申请实施例至少具有以下优点:
本申请实施例提出的针对混淆脚本语言的定位方法和系统,可以对混淆后代码中的错误信息中的元素进行定位,查找其在源代码中的位置,从而便于分析并修复错误。
附图说明
图1是本申请第一实施例的针对混淆脚本语言的定位方法的流程图。
图2是本申请第二实施例的针对混淆脚本语言的定位方法的流程图。
图3是本申请第三实施例的针对混淆脚本语言的定位方法的流程图。
图4是本申请第四实施例的针对混淆脚本语言的定位系统的方框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心思想之一在于,由于现有技术在混淆脚本语言之后难以将执行时的错误定位到源代码,本申请提供的技术方案在源代码解析的步骤中记录源代码中的元素名在源代码中的位置,并记录替换前后元素名的对应关系,并在生成可执行代码的步骤中记录替换后元素名在可执行代码中的位置。当可执行代码在运行中发生错误,可以根据错误报告中包含的替换后元素名及位置定位到源代码中的元素名和位置,方便开发人员定位和分析执行中遇到的错误。
第一实施例
本申请第一实施例提出一种针对混淆脚本语言的定位方法,如图1所 示为本申请第一实施例提出一种针对混淆脚本语言的定位方法的流程图。
步骤101,解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
源代码中的元素名可以包括局部变量名、全局变量名、常量名、方法名、类名等,在本实施例步骤101中,可以对元素中局部变量名和方法名在源代码中的位置进行记录。
以现有的JavaScript脚本语言为例进行说明,解析源代码可以是通过例如代码解析器将JavaScript源代码解析为抽象语法树,抽象语法树中的每一节点与JavaScript源代码中的每一元素对应。因此,在这一步骤中可以确定与每一个局部变量名和方法名对应的节点,并将该局部变量名或方法名在源代码中的位置(例如行号、列号)记录在该局部变量名或方法名对应的节点的数据结构中。
作为另一实施例,该元素名在源代码中的位置也可以记录在服务器的其他存储位置,例如新建的文档等,这一记录的位置只要能够关联到解析后该元素名对应的节点即可,并不特别限定其存储位置。
步骤102,替换所述解析后源代码中的元素名,并记录所述源代码中替换前的元素名与对应的替换后元素名的对应关系;
在这一步骤中,以JavaScript脚本语言为例,可以用最短的可用名替换解析后源代码中的元素名,同时将替换前的元素名记录在抽象语法树中对应于替换后元素名的节点的数据结构中。
此时,在抽象语法树的对应于JavaScript源文件的每一个元素名的节点的数据结构中,存储有该元素名在源代码中的位置以及替换后的元素名。由于替换后的元素名与节点相关联,这一步骤中能够建立存储在对应节点的替换后元素名与存储在该节点中的替换前元素名的对应关系。
另外,作为另一种实施例,替换后的元素名也可以被记录在服务器的其他位置,例如新建的文档等,然而这一记录的位置也必须能够关联到解析后该元素名对应的节点。
在这一步骤中,通常遵循如下替换规则:1.当前作用域不同变量混淆后的变量名不能重复,同时混淆后的名字不能是关键字;2.子作用域混淆的变量名不能与父作用域冲突;3.不能混淆全局变量名。
通过上述替换之后,所述抽象语法树的元素名被混淆,让恶意的使用者无法轻易复用上述源代码。
步骤103,将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
在这一步骤中,可以通过遍历抽象语法树的方式,将其节点的数据结构中存储的替换前元素名及位置、以及替换后元素名按顺序写入代码文件,形成可执行代码文件。在此过程中将会获得替换后元素名在可执行代码文件中的位置,之后可以将替换前的变元素名及其位置与替换后元素名及其位置写入元素位置对照表。
在本申请的另一优选的实施例中,元素位置对照表例如包括:
文件名,新元素名称,新元素行号,新元素列号,旧元素名称,旧元素行号,旧元素列号。
步骤104,获取所述可执行代码在客户端运行中发生错误的错误报告;
在这一步骤中,如果可执行代码在被机器执行过程中发生错误,可以通过在浏览器中安装插件,拦截该错误报告。当使用者通过浏览器访问服务器时,可以通过例如弹出对话框的方式提示使用者安装插件。当插件安装完成之后,如对应的网页运行中发生错误,该插件可以拦截错误,并上报至服务器。
步骤105,根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
在这一步骤中,上述错误中包含了替换后元素名及其位置,可以从上述的元素位置对照表中查找确定替换后元素名和位置对应的源代码中的 替换前的元素名和元素名的位置,并将查询得到的源代码中的替换前的元素名和元素名的位置显示给开发人员,便于开发员人定位并进行问题分析。
优选地,在步骤104的获取所述可执行代码在客户端运行中发生错误的错误报告之后,以及步骤105的根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置的步骤之前,所述方法还包括:
验证所述上报至服务器的行为是否有效。
在这一步骤中,这一步骤可以通过在浏览器插件中安装验证信息,例如AccessKey,进行验证。只有验证通过,才能进行步骤105,即获取所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,查找确定所对应的源代码的元素名以及所述源代码的元素的位置,从服务器中查找并显示对应的源代码的元素名以及所述源代码的元素的位置。以避免恶意的使用者窃取服务器中存储的元素位置对应表。
综上所述,本申请实施例提出的针对混淆脚本语言的定位方法,能够对错误信息中的元素进行定位,查找其在源代码中的位置,避免了现有技术中代码运行发生错误后开发人员无法轻易定位到原始解析前的代码中的位置的问题,为开发人员分析并修复错误提供了便利。
第二实施例
图2所示为本申请第二实施例提出一种针对混淆脚本语言的定位方法的流程图。如图2所示,该实施例中针对混淆脚本语言的定位方法包括如下步骤:
步骤201,解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
步骤202,替换所述解析后源代码中的元素名,并记录替换前的元素 名与对应的替换后元素名的对应关系;
上述两个步骤与上一实施例中的步骤101和步骤102相同或相似,在此不再赘述。
步骤203,压缩所述解析后的源代码,并去除注释、空格和/或回车符。
在这一步骤中,为了进一步混淆解析后的源代码,可以将解析后的源代码中的注释、空格和/或回车符去掉,进一步降低代码的可读性。压缩之后的解析后源代码(例如抽象语法树)可以只有一行。
步骤203可以先于步骤202执行,也可以同时或后于步骤202执行,在此并不特别限定。
步骤204,将替换后的所述源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
这一步骤可以与上述第一实施例的步骤103相同或相似,在此不再赘述。
值得注意的是,在一本申请的一实施例中,若压缩后的抽象语法树中回车符已被删除,所有的新元素可能位于同一行中,因此,可以显示新元素行号为1,或者元素位置对照表中可以不包括新元素行号。
步骤205,获取所述可执行代码在客户端运行中发生错误的错误报告;
步骤206,根据所述错误中包含的替换后元素名以及所述替换后元素名的位置,确定对应的替换前的源代码的元素名以及所述替换前的元素名的位置。
上述步骤205和206也可以与上一实施例中步骤104和105相同或相似,在此不再赘述。
通过上述实施例提出的针对混淆脚本语言的定位方法,能够对错误信息中的元素进行定位,查找其在源代码中的位置,避免了现有技术中代码运行发生错误后开发人员无法轻易定位到原始解析前的代码中的位置的问题,为开发人员分析并修复错误提供了便利。
第三实施例
图3所示为本申请第三实施例提出一种针对混淆脚本语言的定位方法的流程图。如图3所示,该实施例中针对混淆脚本语言的定位方法包括如下步骤:
步骤301,解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
步骤302,替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
上述两个步骤与上一实施例中的步骤101和步骤102相同或相似,在此不再赘述。
步骤303,压缩所述解析后的源代码,去除注释、空格和/或回车符。
这一步骤与第二实施例中的步骤203相同或相似,在此不再赘述。同样地,步骤303可以先于步骤302执行,也可以同时或后于步骤302执行,在此并不特别限定。
步骤304,将替换后的所述源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
在这一步骤中,可与第一实施例步骤103相同或相似,在此不再赘述。
步骤305,记录可执行代码的版本信息;
在这一步骤中,可以将该可执行代码的版本信息记录在元素位置对照表中。生成版本信息的步骤例如可以使用现有的UUID软件来实现,然而本申请并不特别限制。
在这一实施例中,元素位置对照表例如包括:
文件名、版本号、新元素名称、新元素行号、新元素列号、旧元素名称、旧元素行号、旧元素列号。
值得注意的是,在本申请一实施例中,若压缩后的抽象语法树中回车符可能已被删除,因此所有新元素可能位于同一行中,因此,可以显示新元素行号为1,或者元素位置对照表中不包括新元素行号。
步骤306,获取所述可执行代码在客户端运行中发生错误的错误报告;以及
步骤307,根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的源代码的元素名以及所述源代码的元素的位置。
这一步骤也可以与上一实施例中步骤104和105相同或相似,在此不再赘述。
优选地,在步骤306的获取所述可执行代码在客户端运行中发生错误的错误报告之后,以及步骤307的根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置的步骤之前,所述方法还包括:
验证所述上报至服务器的行为是否有效。
在这一步骤中,这一步骤可以通过在浏览器插件中安装验证信息,例如AccessKey,进行验证。只有验证通过,才能进行步骤307,即获取所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,查找确定所对应的源代码的元素名以及所述源代码的元素的位置。如此可避免恶意的使用者窃取服务器中存储的元素位置对应表。
综上所述,本申请实施例提出的针对混淆脚本语言的定位方法,能够对错误信息中的元素进行定位,查找其在源代码中的位置,避免了现有技术中代码运行发生错误后开发人员无法轻易定位到原始解析前的代码中的位置的问题,为开发人员分析并修复错误提供了便利。
第四实施例
图4所示为本申请第四实施例的针对混淆脚本语言的定位系统的方框图。如图4所示,本申请实施例提出的对混淆脚本语言的定位系统100可以包括:
代码解析单元11,用于解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
代码替换和记录单元12,用于替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
代码生成和记录单元13,用于将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
错误报告获取单元14,用于获取所述可执行代码在客户端运行中发生错误的错误报告;以及
错误定位单元15,用于根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
在本申请的另一优选的实施例中,所述元素名可以包括:局部变量名和方法名。
在本申请的另一优选的实施例中,所述代码解析单元11具体用于将所述源代码解析为抽象语法树,并将所述源代码中的元素名在所述源代码中的位置记录在所述抽象语法树中对应于所述元素的节点的数据结构内。
在本申请的另一优选的实施例中,所述代码替换和记录单元12具体用于:
替换所述解析后源代码中的元素名;以及
将所述替换后元素名记录在所述抽象语法树中对应于所述替换前的元素名的节点的数据结构内。
在本申请的另一优选的实施例中,所述代码生成和记录单元13具体用于:
将替换后的源代码生成可执行代码;以及
在元素位置对照表中记录所述替换后元素名在所述可执行代码中的位置,同时将所述替换后元素名对应的替换前的元素名以及所述替换前的元素名的位置写入所述元素位置对照表。
在本申请的另一优选的实施例中,所述系统还包括:
代码压缩单元,用于压缩所述解析后的源代码,去除注释、空格和/或回车符。
在本申请的另一优选的实施例中,所述系统还包括:
代码版本信息记录单元,用于记录可执行代码的版本信息。
在本申请的另一优选的实施例中,所述代码生成和记录单元13具体用于:
在元素位置对照表中记录所述替换后元素名在所述可执行代码中的位置,同时将所述替换后元素名对应的替换前的元素名、所述替换前的元素名的位置、所述可执行代码的版本信息写入所述元素位置对照表。
在本申请的另一优选的实施例中,所述元素名的位置包括所述元素所在的行号和列号,所述元素位置对照表包括:
文件名、版本号、替换后元素名、替换后元素行号、替换后元素列号、源代码中元素名、源代码中元素行号以及源代码中元素列号。
在本申请的另一优选的实施例中,所述定位系统还包括:
验证单元,用于验证所述上报至服务器的行为是否有效。
通过上述实施例提出的针对混淆脚本语言的定位系统,能够对错误信息中的元素进行定位,查找其在源代码中的位置,避免了现有技术中代码运行发生错误后开发人员无法轻易定位到原始解析前的代码中的位置的问题,为开发人员分析并修复错误提供了便利。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比 较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信号存储。信号可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信号。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/ 或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种针对混淆脚本语言的定位方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (20)

  1. 一种针对混淆脚本语言的定位方法,其特征在于,包括:
    解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
    替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
    将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
    获取所述可执行代码在客户端运行中发生错误的错误报告;
    根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
  2. 如权利要求1所述的针对混淆脚本语言的定位方法,其特征在于,所述元素名包括:局部变量名和方法名。
  3. 如权利要求1所述的针对混淆脚本语言的定位方法,其特征在于,所述解析源代码具体包括:
    将所述源代码解析为抽象语法树;
    所述记录所述源代码中的元素名在所述源代码中的位置具体包括:
    将所述源代码中的元素名在所述源代码中的位置记录在所述抽象语法树中对应于所述元素名的节点的数据结构内。
  4. 如权利要求3所述的针对混淆脚本语言的定位方法,其特征在于,所述替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系的步骤具体为:
    替换所述解析后源代码中的元素名;以及
    将所述替换后元素名记录在所述抽象语法树中对应于所述替换前的元素名的节点的数据结构内。
  5. 如权利要求1所述的针对混淆脚本语言的定位方法,其特征在于,
    所述将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置的步骤具体为:
    将替换后的源代码生成可执行代码;
    在元素位置对照表中记录所述替换后元素名在所述可执行代码中的位置,同时将所述替换后元素名对应的替换前的元素名以及所述替换前的元素名的位置写入所述元素位置对照表。
  6. 如权利要求1所述的针对混淆脚本语言的定位方法,其特征在于,在所述将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置之前,所述方法还包括:
    压缩所述解析后的源代码,并去除注释、空格和/或回车符。
  7. 如权利要求1所述的针对混淆脚本语言的定位方法,其特征在于,在所述获取所述可执行代码在客户端运行中发生错误的错误报告之前,所述方法还包括:
    记录可执行代码的版本信息。
  8. 如权利要求7所述的针对混淆脚本语言的定位方法,其特征在于,
    所述将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置的步骤具体为:
    在元素位置对照表中记录所述替换后元素名在所述可执行代码中的位置,同时将所述替换后元素名对应的替换前的元素名、所述替换前的元素名的位置、所述可执行代码的版本信息写入所述元素位置对照表。
  9. 如权利要求8所述的针对混淆脚本语言的定位方法,其特征在于,所述元素名的位置包括所述元素名所在的行号和列号,所述元素位置对照表包括:
    文件名、版本号、替换后元素名、替换后元素行号、替换后元素列号、 源代码中元素名、源代码中元素行号以及源代码中元素列号。
  10. 如权利要求1所述的针对混淆脚本语言的定位方法,其特征在于,所述根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置的步骤之前,所述方法还包括:
    验证所述上报至服务器的行为是否有效。
  11. 一种针对混淆脚本语言的定位系统,其特征在于,包括:
    代码解析单元,用于解析源代码,并记录所述源代码中的元素名在所述源代码中的位置;
    代码替换和记录单元,用于替换所述解析后源代码中的元素名,并记录替换前的元素名与对应的替换后元素名的对应关系;
    代码生成和记录单元,用于将替换后的源代码生成可执行代码,并记录所述替换后元素名在所述可执行代码中的位置;
    错误报告获取单元,用于获取所述可执行代码在客户端运行中发生错误的错误报告;以及
    错误定位单元,用于根据所述错误报告中包含的替换后元素名以及所述替换后元素名的位置,确定所对应的替换前的元素名以及所述替换前的元素名的位置。
  12. 如权利要求11所述的针对混淆脚本语言的定位系统,其特征在于,所述元素名包括:局部变量名和方法名。
  13. 如权利要求11所述的针对混淆脚本语言的定位系统,其特征在于,
    所述代码解析单元具体用于:
    将所述源代码解析为抽象语法树,并将所述源代码中的元素名在所述源代码中的位置记录在所述抽象语法树中对应于所述元素名的节点的数据结构内。
  14. 如权利要求13所述的针对混淆脚本语言的定位系统,其特征在于,所述代码替换和记录单元具体用于:
    替换所述解析后源代码中的元素名;以及
    将所述替换后元素名记录在所述抽象语法树中对应于所述替换前的元素名的节点的数据结构内。
  15. 如权利要求11所述的针对混淆脚本语言的定位系统,其特征在于,
    所述代码生成和记录单元具体用于:
    将替换后的源代码生成可执行代码;以及
    在元素位置对照表中记录所述替换后元素名在所述可执行代码中的位置,同时将所述替换后元素名对应的替换前的元素名以及所述替换前的元素名的位置写入所述元素位置对照表。
  16. 如权利要求11所述的针对混淆脚本语言的定位系统,所述系统还包括:
    代码压缩单元,用于压缩所述解析后的源代码,并去除注释、空格和/或回车符。
  17. 如权利要求11所述的针对混淆脚本语言的定位系统,所述系统还包括:
    代码版本信息记录单元,用于记录可执行代码的版本信息。
  18. 如权利要求17所述的针对混淆脚本语言的定位系统,其特征在于,
    所述代码生成和记录单元具体用于:
    在元素位置对照表中记录所述替换后元素名在所述可执行代码中的位置,同时将所述替换后元素名对应的替换前的元素名、所述替换前的元素名的位置、所述可执行代码的版本信息写入所述元素位置对照表。
  19. 如权利要求18所述的针对混淆脚本语言的定位系统,其特征在于, 所述元素名的位置包括所述元素名所在的行号和列号,所述元素位置对照表包括:
    文件名、版本号、替换后元素名、替换后元素行号、替换后元素列号、源代码中元素名、源代码中元素行号以及源代码中元素列号。
  20. 如权利要求11所述的针对混淆脚本语言的定位系统,其特征在于,所述系统还包括:
    验证单元,用于验证所述上报至服务器的行为是否有效。
PCT/CN2016/109649 2015-12-21 2016-12-13 针对混淆脚本语言的定位方法和系统 WO2017107808A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510966901.0A CN106897211A (zh) 2015-12-21 2015-12-21 针对混淆脚本语言的定位方法和系统
CN201510966901.0 2015-12-21

Publications (1)

Publication Number Publication Date
WO2017107808A1 true WO2017107808A1 (zh) 2017-06-29

Family

ID=59089150

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/109649 WO2017107808A1 (zh) 2015-12-21 2016-12-13 针对混淆脚本语言的定位方法和系统

Country Status (2)

Country Link
CN (1) CN106897211A (zh)
WO (1) WO2017107808A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182358B (zh) * 2017-12-28 2020-09-29 江苏通付盾信息安全技术有限公司 文件保护方法、装置、计算设备及计算机存储介质
CN108416194B (zh) * 2018-03-08 2020-10-23 北京顶象技术有限公司 符号混淆方法及装置
CN108710787B (zh) * 2018-03-26 2020-09-08 江苏通付盾信息安全技术有限公司 代码混淆方法及装置、计算设备、计算机存储介质
CN111090582A (zh) * 2019-11-22 2020-05-01 东软集团股份有限公司 错误代码定位方法、装置、存储介质及电子设备
CN114139084A (zh) * 2021-11-01 2022-03-04 上海绊糖信息科技有限公司 Web应用跨版本错误归类方法、系统、终端及介质
CN114661290A (zh) * 2022-02-25 2022-06-24 深圳前海微众银行股份有限公司 一种脚本错误的处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103221960A (zh) * 2012-12-10 2013-07-24 华为技术有限公司 恶意代码的检测方法及装置
CN104166822A (zh) * 2013-05-20 2014-11-26 阿里巴巴集团控股有限公司 一种数据保护的方法和装置
CN104298594A (zh) * 2014-09-25 2015-01-21 南京航空航天大学 一种源代码中值计算错误的自动检测和定位方法
CN104375940A (zh) * 2014-11-28 2015-02-25 浪潮电子信息产业股份有限公司 一种对javaScript文件的调试方法
CN105468511A (zh) * 2014-09-05 2016-04-06 阿里巴巴集团控股有限公司 网页脚本错误定位方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927164B (zh) * 2014-03-10 2017-06-06 珠海市君天电子科技有限公司 一种脚本混淆方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103221960A (zh) * 2012-12-10 2013-07-24 华为技术有限公司 恶意代码的检测方法及装置
CN104166822A (zh) * 2013-05-20 2014-11-26 阿里巴巴集团控股有限公司 一种数据保护的方法和装置
CN105468511A (zh) * 2014-09-05 2016-04-06 阿里巴巴集团控股有限公司 网页脚本错误定位方法及装置
CN104298594A (zh) * 2014-09-25 2015-01-21 南京航空航天大学 一种源代码中值计算错误的自动检测和定位方法
CN104375940A (zh) * 2014-11-28 2015-02-25 浪潮电子信息产业股份有限公司 一种对javaScript文件的调试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RUAN: "Detailed JavaScript Source Map", CSDN, 25 January 2013 (2013-01-25), XP055600081, Retrieved from the Internet <URL:www.csdn.net/article/2013-01-25/2813953-JavaScript-Source-Map> *

Also Published As

Publication number Publication date
CN106897211A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
WO2017107808A1 (zh) 针对混淆脚本语言的定位方法和系统
US8930884B2 (en) Efficient extraction of software dependencies from program code
CN107122296B (zh) 用于测试接口的数据断言的方法及设备
US9348736B2 (en) System, method, and computer readable medium for universal software testing
US8156473B2 (en) Model oriented debugging
US8832125B2 (en) Extensible event-driven log analysis framework
JP2019053729A (ja) スマートコントラクトのテスト方法及びテスト装置
US10268568B2 (en) System and method for data element tracing
US9588872B2 (en) Discovery of code paths
US9417991B2 (en) Translation verification testing
CN107092535B (zh) 用于测试接口的数据存储的方法及设备
US9146841B2 (en) Proxy server assisted product testing
US20090193397A1 (en) Method and apparatus for facilitating diagnostic logging for software components
US10713237B2 (en) Automatically correcting invalid scripts in web applications
Nayrolles et al. A bug reproduction approach based on directed model checking and crash traces
CN105468511A (zh) 网页脚本错误定位方法及装置
CN108595656B (zh) 一种数据的处理方法及系统
CN111435327B (zh) 一种日志记录的处理方法、装置及系统
CN108304186B (zh) 一种基于合成配置文件执行多项操作的方法与设备
US10509659B1 (en) Input processing logic to produce outputs for downstream systems using configurations
US11372638B2 (en) Automated dependency detection and response
CN113986739A (zh) 用于网站内存泄露的监测方法、装置、存储介质及处理器
CN112069519A (zh) 一种输出信息文件加密记录的方法及设备
CN107766216A (zh) 一种用于获取应用执行信息的方法与设备
An Ran Studying and leveraging user-provided logs in bug reports for debugging assistance

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16877619

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16877619

Country of ref document: EP

Kind code of ref document: A1