With the rapid development of scripting language, javascript has been widely used in the application and web development industry. One of the main disadvantages of javascript for developers of commercial applications ...
详细信息
ISBN:
(纸本)9783038350194
With the rapid development of scripting language, javascript has been widely used in the application and web development industry. One of the main disadvantages of javascript for developers of commercial applications is the ease by which customers and competitors can study, analyze, and reuse the source code. Therefore, this paper proposes a technique of javascript code obfuscation based on control flow tansformations. The experimental results prove that, its effective protect javascript source code.
The malicious PDF documents posed a significant threat to network security in recent years. Extracting malicious indicators from PDF documents is a critical method for subsequent analysis and detection. However, curre...
详细信息
ISBN:
(纸本)9783031649530;9783031649547
The malicious PDF documents posed a significant threat to network security in recent years. Extracting malicious indicators from PDF documents is a critical method for subsequent analysis and detection. However, current static and dynamic extraction methods are easily interfered by evasion methods such as highly obfuscation and sandbox detection, etc. Therefore, we creatively apply optimized symbolic execution to PDF indicator extraction and propose PDFIET, a technique of PDF malicious indicators extraction consisting of three modules: code parsing, symbolic execution and indicator extraction. We design the code rewriting method to improve code coverage by enforcing branch transfers. We also use the concurrency strategy and two constraint-solving optimization methods to enhance the efficiency of symbolic execution. We use 1271 malicious samples to make several experiments. The success rate and the effectiveness of indicators is high. The code coverage and the system efficiency improve significantly after optimization. The evaluation supports the design of the approach.
Evolving software is particularly challenging when the code has been poorly written or uses confusing idioms and language constructs, which might increase maintenance efforts and impose a significant cognitive load on...
详细信息
Evolving software is particularly challenging when the code has been poorly written or uses confusing idioms and language constructs, which might increase maintenance efforts and impose a significant cognitive load on developers. Previous research has investigated possible sources of confusion in programs, including the impact of small code patterns (hereafter atoms of confusion) that contribute to misunderstanding the source code. Although researchers have explored atoms of confusion in code written in C, C++, and Java, different languages have different features, developer communities, and development cultures. This justifies the exploration of other languages to verify whether they also exhibit confusion-inducing patterns. In this paper we investigate the impact of atoms of confusion on understanding javascript code-a dynamically typed language whose popularity is growing in the most diverse application domains. We present the results of a mixed-methods research comprising a mining software repositories (MSR) study, two experiments, and a set of interviews with practitioners. Our MSR effort shows that atom candidates are frequent and used intensively in 72 popular open -source javascript projects: four atom candidates appear in 90% of them and two of them occur more than once for every 100 lines of code. This helps motivate the other three studies. The results of both experiments suggest that two code patterns that have been previously observed to confuse C programmers also confuse javascript programmers: the comma operator and assignments being used as values. In addition, some code patterns, such as omitted curly braces and change of literal encoding, have caused confusion in participants in one of the experiments. We discover that some javascript-specific elements, such as automatic semicolon insertion and object destructuring, also have the potential to cause confusion. For all these cases effect sizes were either medium or high. The interviews we conducted i
The Florida Department of Health funds beach water sampling for 34 of Florida's coastal counties. Mote Marine Laboratory, in conjunction with the Gulf of Mexico Coastal Ocean Observing System (GCOOS) developed an ...
详细信息
ISBN:
(纸本)9781479949182
The Florida Department of Health funds beach water sampling for 34 of Florida's coastal counties. Mote Marine Laboratory, in conjunction with the Gulf of Mexico Coastal Ocean Observing System (GCOOS) developed an automated data harvester that used web scraping technology to capture the reported data from each monitored county and store the data in a MySQL database. The database was queried nightly and the results were used to build XML files that were ingested by GCOOS and published through the GCOOS Data Portal. In early 2013 the Florida Department of Health outsourced their web site to a commercial service provider. The new Healthy Beaches web site used a mash-up of Google Maps and javascript code and no longer returned a standard HTML document. The conversion from traditional web page to dynamic mash-up rendered our data harvester inoperable. Our entire data pipeline had to be completely rebuilt.
Pivot is a new javascript isolation framework for web applications. Pivot uses iframes as its low-level isolation containers, but it uses code rewriting to implement synchronous cross-domain interfaces atop the asynch...
详细信息
ISBN:
(纸本)9781479946860
Pivot is a new javascript isolation framework for web applications. Pivot uses iframes as its low-level isolation containers, but it uses code rewriting to implement synchronous cross-domain interfaces atop the asynchronous cross frame postMessage() primitive. Pivot layers a distributed scheduling abstraction across the frames, essentially treating each frame as a thread which can invoke RPCs that are serviced by external threads. By rewriting javascript call sites, Pivot can detect RPC invocations;Pivot exchanges RPC requests and responses via postMessage(), and it pauses and restarts frames using a novel rewriting technique that translates each frame's javascript code into a restartable generator function. By leveraging both iframes and rewriting, Pivot does not need to rewrite all code, providing an order of-magnitude performance improvement over rewriting-only solutions. Compared to iframe-only approaches, Pivot provides synchronous RPC semantics, which developers typically prefer over asynchronous RPCs. Pivot also allows developers to use the full, unrestricted javascript language, including powerful statements like eval().
暂无评论