61,638 research outputs found
SOLIDFX:An integrated reverse engineering environment for C++
Many C+ + extractors exist that produce syntax trees, call graphs, and metrics from C++ code, yet few offer integrated querying, navigation, and visualization of source- code-level facts to the end-user. We present an interactive reverse engineering environment which supports reverse- engineering tasks on C/C++ code, e.g. set up the extraction process, apply user-written queries on the extracted facts, and visualize query results, much like classical forward- engineering IDEs do. We illustrate our environment with several examples of reverse-engineering analyses
Near-Optimal Active Learning of Halfspaces via Query Synthesis in the Noisy Setting
In this paper, we consider the problem of actively learning a linear
classifier through query synthesis where the learner can construct artificial
queries in order to estimate the true decision boundaries. This problem has
recently gained a lot of interest in automated science and adversarial reverse
engineering for which only heuristic algorithms are known. In such
applications, queries can be constructed de novo to elicit information (e.g.,
automated science) or to evade detection with minimal cost (e.g., adversarial
reverse engineering). We develop a general framework, called dimension coupling
(DC), that 1) reduces a d-dimensional learning problem to d-1 low dimensional
sub-problems, 2) solves each sub-problem efficiently, 3) appropriately
aggregates the results and outputs a linear classifier, and 4) provides a
theoretical guarantee for all possible schemes of aggregation. The proposed
method is proved resilient to noise. We show that the DC framework avoids the
curse of dimensionality: its computational complexity scales linearly with the
dimension. Moreover, we show that the query complexity of DC is near optimal
(within a constant factor of the optimum algorithm). To further support our
theoretical analysis, we compare the performance of DC with the existing work.
We observe that DC consistently outperforms the prior arts in terms of query
complexity while often running orders of magnitude faster.Comment: Accepted by AAAI 201
Near-Optimal Evasion of Convex-Inducing Classifiers
Classifiers are often used to detect miscreant activities. We study how an
adversary can efficiently query a classifier to elicit information that allows
the adversary to evade detection at near-minimal cost. We generalize results of
Lowd and Meek (2005) to convex-inducing classifiers. We present algorithms that
construct undetected instances of near-minimal cost using only polynomially
many queries in the dimension of the space and without reverse engineering the
decision boundary.Comment: 8 pages; to appear at AISTATS'201
Designing a Software Maintenance System Using a Reverse Engineering Approach
The aim of the software maintenance is to maintain the software system in
accordance with advancement in software and hardware technology. There are four
activities to software maintenance, namely corrective maintenance, adaptive
maintenance, perfective maintenance, and preventive maintenance. Three approaches are
used in software maintenance, that is restructure, reverse engineering, and reenginering.
Reverse engineering is a process that is currently being used in software
maintenance to extract items of information on software products. This research aims to
produce a new reverse engineering logic-form tool, to help maintainers by giving them a
complete document about the software system. Currently, many tools are used in reverse
engineering, but not all can satisfy the problems faced by the users. The thesis describes the design and implementation of an automatic aid system
that uses a logic-form reverse engineering approach, with a new data structure called tree
module structure. This tool contains four modules, namely, lexical analyzer module,
syntax analyzer module, handling module, and interface or query module
Improving memory efficiency for processing large-scale models
International audienceScalability is a main obstacle for applying Model-Driven Engineering to reverse engineering, or to any other activity manipulating large models. Existing solutions to persist and query large models are currently ine cient and strongly linked to memory availability. In this paper, we propose a memory unload strategy for Neo4EMF, a persistence layer built on top of the Eclipse Modeling Framework and based on a Neo4j database backend. Our solution allows us to partially unload a model during the execution of a query by using a periodical dirty saving mechanism and transparent reloading. Our experiments show that this approach enables to query large models in a restricted amount of memory with an acceptable performance
Modular Moose: A new generation software reverse engineering environment
Advanced reverse engineering tools are required to cope with the complexity
of software systems and the specific requirements of numerous different tasks
(re-architecturing, migration, evolution). Consequently, reverse engineering
tools should adapt to a wide range of situations. Yet, because they require a
large infrastructure investment, being able to reuse these tools is key. Moose
is a reverse engineering environment answering these requirements. While Moose
started as a research project 20 years ago, it is also used in industrial
projects, exposing itself to all these difficulties. In this paper we present
ModMoose, the new version of Moose. ModMoose revolves around a new meta-model,
modular and extensible; a new toolset of generic tools (query module,
visualization engine, ...); and an open architecture supporting the
synchronization and interaction of tools per task. With ModMoose, tool
developers can develop specific meta-models by reusing existing elementary
concepts, and dedicated reverse engineering tools that can interact with the
existing ones
Reverse Engineering of Temporal Queries Mediated by LTL Ontologies
In reverse engineering of database queries, we aim to construct a query from
a given set of answers and non-answers; it can then be used to explore the data
further or as an explanation of the answers and non-answers. We investigate
this query-by-example problem for queries formulated in positive fragments of
linear temporal logic LTL over timestamped data, focusing on the design of
suitable query languages and the combined and data complexity of deciding
whether there exists a query in the given language that separates the given
answers from non-answers. We consider both plain LTL queries and those mediated
by LTL-ontologies.Comment: To be published in IJCAI 2023 proceeding
A user driven method for database reverse engineering
In this thesis we describe the UQoRE method which supports database reverse
engineering by using a data mining technique. Generally, Reverse Engineering
methods work by using information extracted from data dictionaries, database
extensions, application programs and expert users. The main differences
between all these methods rely on the assumptions made on the a-priori
knowledge available about the database (schema and constraints on attributes)
as well as the user competence. Most of them are based on the attribute name
consistency. This paper presents a method based on user queries. Queries are
stored in a “Query Base” and our system mines this new source of knowledge in
order to discover hidden links and similarity between database elements
MLCapsule: Guarded Offline Deployment of Machine Learning as a Service
With the widespread use of machine learning (ML) techniques, ML as a service
has become increasingly popular. In this setting, an ML model resides on a
server and users can query it with their data via an API. However, if the
user's input is sensitive, sending it to the server is undesirable and
sometimes even legally not possible. Equally, the service provider does not
want to share the model by sending it to the client for protecting its
intellectual property and pay-per-query business model.
In this paper, we propose MLCapsule, a guarded offline deployment of machine
learning as a service. MLCapsule executes the model locally on the user's side
and therefore the data never leaves the client. Meanwhile, MLCapsule offers the
service provider the same level of control and security of its model as the
commonly used server-side execution. In addition, MLCapsule is applicable to
offline applications that require local execution. Beyond protecting against
direct model access, we couple the secure offline deployment with defenses
against advanced attacks on machine learning models such as model stealing,
reverse engineering, and membership inference
- …