As computing evolves and libraries are produced for developers to create efficient software at a faster rate, the security of a modern program is an area of great concern because complex software breeds vulnerabilitie...
详细信息
As computing evolves and libraries are produced for developers to create efficient software at a faster rate, the security of a modern program is an area of great concern because complex software breeds vulnerabilities. Due to the criticality of computer systems security, cybersecurity education must maintain pace with the rapidly evolving technology industry. An example of growth in cybersecurity education can be seen in *** – a publicly available resource composed of modules that teach computer systems security. In reaction to the demand for the expansion of cybersecurity education, the *** developers designed a new set of modules for a course at Arizona State University and offered the same modules for public use. One of these modules, the “babyfile” module, was intended to focus on the exploitation of FILE structures in the cprogramminglanguage. FILE structures allow for fast and efficient file operations. Unfortunately, FILE structures have severe vulnerabilities which can be exploited to attain elevated privileges for reading data, writing data, and executing instructions. By researching the applications of FILE structure vulnerabilities, the babyfile module was designed with twenty challenges that teach *** users how to exploit programs by misusing FILE structures. These challenges are sorted by increasing difficulty and the intended solutions utilize all the vulnerabilities discussed in this paper. In addition to introducing users to exploits against FILE structures, babyfile also showcases a novel attack against the virtual function table, which is located at the end of a FILE structure.
In the paper, the model and prototype of the Ac stabilizer have been developed based on the AVR ATmega328P microcontroller. The block diagram of the device, the electroniccircuit and the algorithms of the system oper...
详细信息
ISBN:
(纸本)9798350334319
In the paper, the model and prototype of the Ac stabilizer have been developed based on the AVR ATmega328P microcontroller. The block diagram of the device, the electroniccircuit and the algorithms of the system operation have been developed. In particular, the algorithm includes software in c in the Arduino IDE. The Ac voltage stabilizer is designed using the modular principle, which makes it possible to quickly upgrade. The Ac voltage stabilizer makes it possible to maintain the supply voltage on the load within acceptable limits with significant deviations, has the ability to adjust the voltage range of the network to operate the stabilizer, manual adjustment potentiometers.
This paper introduces an optimal scheduling framework for the Earth observation tasks of multiple agile satellites based on nonlinear modeling of attitude change time for the task transition. An attitude control modul...
详细信息
This paper introduces an optimal scheduling framework for the Earth observation tasks of multiple agile satellites based on nonlinear modeling of attitude change time for the task transition. An attitude control module using a quaternion feedback constructs the database storing the time to complete the attitude change maneuver for a given initial and final attitude pair. A mixed-integer linear programming (MILP) formulation for optimal satellite task scheduling based on the generated transition time database is developed. The database can accurately estimate the task transition time and ensure the feasibility of the obtained solution. A P-MILP heuristic, which can prune out unnecessary constraints of the original MILP formulation and obtain near-optimal solutions for large problem instances, is proposed. A comprehensive case study on the task scheduling to operate agile satellites validates the proposed framework and heuristic.
Any cS educator has to explain sooner or later a portion of code or a structured text to learners. The codecast tool http://*** has been specially designed by cS educators and developed initially for MOOcs to replace ...
详细信息
ISBN:
(纸本)9781450351034
Any cS educator has to explain sooner or later a portion of code or a structured text to learners. The codecast tool http://*** has been specially designed by cS educators and developed initially for MOOcs to replace non-interactive screencasts. This workshop is a hands-on lab to codecast: an open-source innovative tool to create in-browser interactive coding tutorials. codecast supports syntax highlighting for over 110 languages and as of 2017 can compile/interpret and execute a subset of the c and Arduino languages. In this workshop, participants will explore how, using our codecast tool, a cS educator can explain the creation of a computer program while their audio as well as their interactions with the code editor and interpreter are being recorded for interactive playback. Workshop participants will furthermore experience how different aspects of the coding process like testing, running, debugging and optimizing can be illustrated with the help of several data, memory and algorithm visualization modules. Participants will create recordings and experience (like learners) how they can be played back interactively by taking control over and modify the coding process at any time. codecast enables the learner to interact directly with the code and experiment with different ideas while listening to the instructor's explanation. The learner can make changes to the code, test it with different inputs, run the code step-by-step to better understand its behavior and visualize other parts of the algorithm or the data. Workshop participants will also integrate their creations in their online curricula.
Finite-rate chemistry combustion simulations require the computationally expensive direct integration of the chemical source term. In order to reduce the calculation time of such simulations, an efficient artificial n...
详细信息
ISBN:
(数字)9781624106118
ISBN:
(纸本)9781624106118
Finite-rate chemistry combustion simulations require the computationally expensive direct integration of the chemical source term. In order to reduce the calculation time of such simulations, an efficient artificial neural network approach is developed. The artificial neural network consists of a classification methodology to subdivide the thermochemical state space into smaller clusters and a subsequent multi-layer perceptron for each of the clusters. Due to the subdivision approach, the multi-layer perceptron size can be kept small, which guarantees a computationally efficient artificial neural network. For the classification two different approaches are investigated, namely a self-organizing map and a k-means binary decision tree. Both methods are tested with respect to their clustering quality and their performance. chemical reactors are used to generate training and validation data. The multi-layer perceptron prediction includes all species of the original chemical mechanism. A priori comparison with direct integration proved the ability of both methods to give accurate results even for minor species. A posteriori calculations of ignition delay are conducted over an initial temperature range of 1100 to 1700 K and an equivalence ratio range of phi = 0.7 to phi = 1.4. While species concentrations and temperature profiles are reproduced well for most of the initial conditions, the prediction quality of the artificial neural networks decreases for a few calculations starting at low temperatures. Performance benchmarks confirmed that the artificial neural network approaches are superior to direct source term integration in terms of computational costs. The benchmarks also revealed that the k-means binary decision tree-based approach is three times faster than the self-organizing map approach.
Given the central role that ccontinues to play in systems software, and the difficulty of writing safe and correct ccode, it remains a grand challenge to develop effective formal methods for verifying c programs. In...
详细信息
ISBN:
(纸本)9781450383912
Given the central role that ccontinues to play in systems software, and the difficulty of writing safe and correct ccode, it remains a grand challenge to develop effective formal methods for verifying c programs. In this paper, we propose a new approach to this problem: a type system we call Refinedc, which combines ownership types (for modular reasoning about shared state and concurrency) with refinement types (for encoding precise invariants on c data types and Hoare-style specifications for c functions). Refinedc is both automated (requiring minimal user intervention) and foundational (producing a proof of program correctness in coq), while at the same time handling a range of low-level programming idioms such as pointer arithmetic. In particular, following the approach of RustBelt, the soundness of the Refinedc type system is justified semantically by interpretation into the coq-based Iris framework for higherorder concurrent separation logic. However, the typing rules of Refinedc are also designed to be encodable in a new "separation logicprogrammingz language we call Lithium. By restricting to a carefully chosen (yet expressive) fragment of separation logic, Lithium supports predictable, automatic, goal-directed proof search without backtracking. We demonstrate the effectiveness of Refinedc on a range of representative examples of ccode.
We present a static analysis of endian portability for c programs. Our analysis can infer that a given program, or two syntactically close versions thereof, compute the same outputs when run with the same inputs on pl...
详细信息
ISBN:
(数字)9783030888060
ISBN:
(纸本)9783030888060;9783030888053
We present a static analysis of endian portability for c programs. Our analysis can infer that a given program, or two syntactically close versions thereof, compute the same outputs when run with the same inputs on platforms with different byte-orders, a.k.a. endiannesses. We target low-level c programs that abuse c pointers and unions, hence rely on implementation-specific behaviors undefined in the c standard. Our method is based on abstract interpretation, and parametric in the choice of a numerical abstract domain. We first present a novel concrete collecting semantics, relating the behaviors of two versions of a program, running on platforms with different endiannesses. We propose a joint memory abstraction, able to infer equivalence relations between little- and big-endian memories. We introduce a novel symbolic predicate domain to infer relations between individual bytes of the variables in the two programs, which has near-linear cost, and the right amount of relationality to express (bitwise) arithmetic properties relevant to endian portability. We implemented a prototype static analyzer, able to scale to large real-world industrial software, with zero false alarms.
In modern industrial applications there is a great need for reliable regulators that satisfy many different system requirements. This paper addresses the problem of using Dc electrical motors to drive both linear and ...
详细信息
In modern industrial applications there is a great need for reliable regulators that satisfy many different system requirements. This paper addresses the problem of using Dc electrical motors to drive both linear and non-linear mechanical loads using a PID regulator. A graphical interface has also been developed, to present the results and confirm the system's reliability.
The Big code and Mining Software Repositories research lines analyze large amounts of source code to improve software engineering practices. Massive codebases are used to train machine learning models aimed at improvi...
详细信息
The Big code and Mining Software Repositories research lines analyze large amounts of source code to improve software engineering practices. Massive codebases are used to train machine learning models aimed at improving the software development process. One example is decompilation, where ccode and its compiled binaries can be used to train machine learning models to improve decompilation. However, obtaining massive codebases of portable ccode is not an easy task, since most applications use particular libraries, operating systems, or language extensions. In this paper, we present cnerator, a Python application that provides the stochastic generation of large amounts of standard ccode. It is highly configurable, allowing the user to specify the probability distributions of each languageconstruct, properties of the generated code, and post-processing modifications of the output programs. cnerator has been successfully used to generate code that, utilized to train machine learning models, has improved the performance of existing decompilers. It has also been used in the implementation of an infrastructure for the automatic extraction of code patterns. (c) 2021 The Author(s). Published by Elsevier B.V.
Nowadays, computer Science (cS) students must cope with continuous challenges related to programming skill acquisition. In some occasions, they have to deal with the internals of memory management (pointers, pointer a...
详细信息
Nowadays, computer Science (cS) students must cope with continuous challenges related to programming skill acquisition. In some occasions, they have to deal with the internals of memory management (pointers, pointer arithmetic, and heap management) facing a vision of programming from the low abstraction level offered by c. Even using c++ and references, not all scenarios where objects or collections of objects need to be managed can be covered. Based on the difficulties identified when dealing with such low-level abstractions, the c-Sim application, aimed at learning these concepts in an easy way, has been developed. To support the tool, the cprogramminglanguage was selected. It allows showing concepts, remaining as close as possible both to the hardware and the operating system. To validate c-Sim, pre and posttests were filled in by a group of 60 first-year cS students, who employed the tool to learn about memory management. Grades of students using c-Sim were also obtained and compared with those that did not use the tool the former academic year. As main outcomes, 82.26% of students indicated that they had improved programming and memory management knowledge, and 83.64% pointed out that the use of this type of tools improves the understanding and quality of the practice lessons. Furthermore, the marks of students have significantly increased. Finally, c-Sim was designed from the ground up as a learning aid and can be useful for lecturers, who can complement their lessons using interactive demonstrations. Students can also employ it to experiment and learn autonomously.
暂无评论