61,638 research outputs found

    SOLIDFX:An integrated reverse engineering environment for C++

    Get PDF
    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

    Full text link
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Full text link
    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
    corecore