Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 10,000 papers for “Machine code”

Retargetable machine-code decompilation in your web browser

Lukáš Ďurfina, Jakub Křoustek, Petr Zemek · 2013

Machine-code decompilation, belonging to the area of reverse engineering, has found its applications in many real-world areas. Analysis of malicious software, search for vulnerabilities, and source-code recovery are some of the most important uses. As there exists a diversity of different platforms on which software can be run, an existence of a generic decompiler would be highly appreciated. The present paper describes such a tool. In this paper, we provide a description of a retargetable decompiler that is being developed within the Lissom project. First, we give an introduction into the area of machine-code decompilation, including a brief discussion of existing tools. Then, we describe the concept and architecture of the decompiler. As it is available in the form of a web service, we also provide its description. Finally, we summarize our results, present a case study of using the tool for analysing malicious software, and conclude the paper by several remarks on future research.

Cited by 0

The CodRep Machine Learning on Source Code Competition

Zimin Chen, Martin Monperrus · arXiv (Cornell University) · 2018

CodRep is a machine learning competition on source code data. It is carefully designed so that anybody can enter the competition, whether professional researchers, students or independent scholars, without specific knowledge in machine learning or program analysis. In particular, it aims at being a common playground on which the machine learning and the software engineering research communities can interact. The competition has started on April 14th 2018 and has ended on October 14th 2018. The CodRep data is hosted at https://github.com/KTH/CodRep-competition/.

Cited by 8Open access

Sound Transpilation from Binary to Machine-Independent Code

Metere, Roberto, Lindner, Andreas, Guanciale, Roberto · arXiv (Cornell University) · 2018

In order to handle the complexity and heterogeneity of mod- ern instruction set architectures, analysis platforms share a common design, the adoption of hardware-independent intermediate representa- tions. The usage of these platforms to verify systems down to binary-level is appealing due to the high degree of automation they provide. How- ever, it introduces the need for trusting the correctness of the translation from binary code to intermediate language. Achieving a high degree of trust is challenging since this transpilation must handle (i) all the side effects of the instructions, (ii) multiple instruction encoding (e.g. ARM Thumb), and (iii) variable instruction length (e.g. Intel). We overcome these problems by formally modeling one of such intermediate languages in the interactive theorem prover HOL4 and by implementing a proof- producing transpiler. This tool translates ARMv8 programs to the in- termediate language and generates a HOL4 proof that demonstrates the correctness of the translation in the form of a simulation theorem. We also show how the transpiler theorems can be used to transfer properties verified on the intermediate language to the binary code.

Cited by 0Open access

Analysis of Machine Code Using Natural Language Processing

Naman Khurpia · 2021

In this paper we have created a Machine Learning Model for Machine Languages, this field of processing machine language and converting/ making meaningful iterations out of it comes under Natural Language Processing. Existing approaches on NLP were focused on human-to-human interactions i.e., English to French, German, Hindi. In this research we try to analyze lexical in machine code, break it down to smaller meaningful bits and make some inferences like the type of languages, number of loops, functionality, and time complexity of code, rewriting of code, converting code from one language to another. We have mainly focused on the recognition of the type of language by testing a small snippet of code. We have also focused on a bigger real-world problem which is conversion of code from one language to another with the same basic meaning and logic, just changing the syntax. We have deployed the machine learning model for public use, and open-sourced Flask API is deployed on the cloud for usage that accepts 3 types of machine languages and returns the type of syntax. We have created a simple Angular App for the demonstration and testing of the model which is hosted and is live online. link (https://nlpapp-8e2fd.web.app/)

Cited by 0

MCDASH: Refinement Based Property Verification for Machine Code

Akash Lal, Junghee Lim, Thomas Reps · Minds at UW (University of Wisconsin) · 2009

This paper presents MCDASH, a refinement-based model checker for
\nmachine code. While model checkers such as SLAM, BLAST, and DASH have
\neach made significant contributions in the field of
\nverification/flaw-detection, their use has been restricted to programs
\nfor which source code is available. This paper discusses several
\nchallenges that arise when working with machine code, and explains how
\nthey are addressed in MCDASH. Unlike previous model checkers, MCDASH
\ndoes not require the usual preprocessing steps of (a) building
\ncontrol-flow graphs, and (b) performing points-to analysis (or alias
\nanalysis); nor does MCDASH require type information to be supplied.
\nThe paper also describes how we extended MCDASH to check properties of
\nself-modifying code.
\n
\nMCDASH is built using language-independent meta-tools that generate
\nthe implementations of the required analysis components from
\ndescriptions of an instruction set's syntax and semantics. It has
\nbeen instantiated for Intel x86 and PowerPC.

Cited by 4Open access

Search Based Code Generation for Machine Learning Programs

Muhammad Zubair Malik, Muhammad Nawaz, Nimrah Mustafa et al. · arXiv (Cornell University) · 2018

Machine Learning (ML) has revamped every domain of life as it provides powerful tools to build complex systems that learn and improve from experience and data. Our key insight is that to solve a machine learning problem, data scientists do not invent a new algorithm each time, but evaluate a range of existing models with different configurations and select the best one. This task is laborious, error-prone, and drains a large chunk of project budget and time. In this paper we present a novel framework inspired by programming by Sketching and Partial Evaluation to minimize human intervention in developing ML solutions. We templatize machine learning algorithms to expose configuration choices as holes to be searched. We share code and computation between different algorithms, and only partially evaluate configuration space of algorithms based on information gained from initial algorithm evaluations. We also employ hierarchical and heuristic based pruning to reduce the search space. Our initial findings indicate that our approach can generate highly accurate ML models. Interviews with data scientists show that they feel our framework can eliminate sources of common errors and significantly reduce development time.

Cited by 0Open access

Code Smell Detection using Machine Learning Classification Algorithm

Law Teng Yi · International Journal of Research and Innovation in Social Science · 2024

Code smell indicates a poor implementation choice that affects software quality attributes (Pérez, 2013). Fowler (1999) also describes it as an internal code-level problem where the code becomes complex, the design broken, and eventually worsens software quality. Jose (2020) has reported that most applied existing approaches for code smells detection are search-based (30.1%), metric-based (24.1%), and symptom-based approaches (19.3%). However, these existing approaches can only apply to simpler detection; the greater the complexity of code smell, the lower the results for code smell detection (Mantyla M, 2004). Kessentini (2014) also has reported that detecting the problems of code smell is difficult and the performance is not effective using the existing approaches such as search-based, symptom-based, visualization-based, probabilistic, cooperative-based, manual, metrics-based, and rule-based. As a result, many of these approaches extend to the application of machine learning classifiers in software code smell detection. Fontana (2016) reported that a supervised machine learning strategy can be used to forecast the value of the dependent variable using machine learning classifiers to address the problem. In this project, we propose a machine learning supervised Gaussian processes algorithm for JAVA open-source code smell detection. The Gaussian process is a highly interpretable supervised machine learning algorithm used in regression testing to quantify prediction uncertainty. A code smell detection application prototype will be developed to implement the proposed work. The effectiveness of the proposed work in terms of detection accuracy will be evaluated further.

Cited by 1

State Machine Model-To-Code Transformation In C

Carlgren, Jonathan, Oskarsson, Per William · KTH Publication Database DiVA (KTH Royal Institute of Technology) · 2023

A state machine model can turn a complex behavioural system into a more accessible graphical model, and can improve the way people work with system design by making it easier to communicate and understand the system. The clear structure of a state machine model enables automatic generation of well structured, and consequently readable, and maintainable code. There are many known implementations and even plenty of commercial software available for working with state machines, and the goal of this project is to compare and discuss some of these implementations in the context of Ericsson's demands for run time, memory usage, scalability, readability, and maintainability. More specifically, the project focuses on the state machine models specified in the UML (the unified modeling language [15]), utilizing UML's associated markup language, XMI, to go from graphical model to generated C code. The resulting C code is primarily a code skeleton which only provides the basic behaviour of transitioning between states given a specific event, it is expected that the developers manually implement additional features themselves. The examined implementations are: Nested Switch, Array of Structs, Function Pointers, Basic State Pattern, State-Table Pattern, and Hierarchical State Pattern. Additionally, the project investigates how multiple state machines can communicate and work together as interacting state machines. And finally, to showcase how a state machine implementation can be maintainable, we develop an iterative code editor that can edit already operating and manually modified state machine implementations. The implementations are tested on a case study example provided by Ericsson, aimed to represent a sort of typical state machine design when it comes to number of states and events. The implementations are further tested with randomly generated state machines, to examine their scalability properties. In our opinion the results favour the Array of Structs and Basic State Pattern implementations and the choice depends on the optimisation used and the priority between run time and memory.

Cited by 0Open access

Machine Learning Based Embedded Code Multi-Label Classification

Yu Zhou, Suxia Cui, Yonghui Wang · IEEE Access · 2021

With the development of Internet of Things (IoT) technology, embedded based electronic devices have penetrated every corner of our daily lives. As the brain of IoT devices, embedded based micro controller unit (MCU) plays an irreplaceable role. The functions of the MCUs are becoming more and more powerful and complicated, which brings huge challenges to embedded programmers. Embedded code, which is highly related to the hardware resources, differs from other popular programming code. The hardware configuration may be a big challenge to the programmers, who may only be good at software development and algorithm design. Online code searching can be time consuming and cannot guarantee an optimal approach. To solve this problem, in this paper, an embedded code classifier, which is designed to help embedded programmers to search for the most efficient code with precise tags, is demonstrated. A high quality embedded code dataset is built. A tag correlated multi-label machine learning model is developed for the embedded code dataset. The experimental results show that the proposed code dataset structure is proved to be more efficient on embedded code classification. The proposed embedded classifier algorithm shows a promising result on embedded code dataset. And it outperforms the traditional machine learning text classification models.

Cited by 5Open access

Code Generation Using Machine Learning: A Systematic Review

Enrique Dehaerne, Bappaditya Dey, Sandip Halder et al. · IEEE Access · 2022

Recently, machine learning (ML) methods have been used to create powerful language models for a broad range of natural language processing tasks. An important subset of this field is that of generating code of programming languages for automatic software development. This review provides a broad and detailed overview of studies for code generation using ML. We selected 37 publications indexed in arXiv and IEEE Xplore databases that train ML models on programming language data to generate code. The three paradigms of code generation we identified in these studies are description-to-code, code-to-description, and code-to-code. The most popular applications that work in these paradigms were found to be code generation from natural language descriptions, documentation generation, and automatic program repair, respectively. The most frequently used ML models in these studies include recurrent neural networks, transformers, and convolutional neural networks. Other neural network architectures, as well as non-neural techniques, were also observed. In this review, we have summarized the applications, models, datasets, results, limitations, and future work of 37 publications. Additionally, we include discussions on topics general to the literature reviewed. This includes comparing different model types, comparing tokenizers, the volume and quality of data used, and methods for evaluating synthesized code. Furthermore, we provide three suggestions for future work for code generation using ML.

Cited by 79Open access

Code-expanded random access for machine-type communications

Nuno K. Pratas, Henning Thomsen, Čedomir Stefanović et al. · 2012

The random access methods used for support of machine-type communications (MTC) in current cellular standards are derivatives of traditional framed slotted ALOHA and therefore do not support high user loads efficiently. Motivated by the random access method employed in LTE, we propose a novel approach that is able to sustain a wide random access load range, while preserving the physical layer unchanged and incurring minor changes in the medium access control layer. The proposed scheme increases the amount of available contention resources, without resorting to the increase of system resources, such as contention sub-frames and preambles. This increase is accomplished by expanding the contention space to the code domain, through the creation of random access codewords. Specifically, in the proposed scheme, users perform random access by transmitting one or none of the available LTE orthogonal preambles in multiple random access sub-frames, thus creating access codewords that are used for contention. In this way, for the same number of random access sub-frames and orthogonal preambles, the amount of available contention resources is drastically increased, enabling the support of an increased number of MTC users. We present the framework and analysis of the proposed code-expanded random access method and show that our approach supports load regions that are beyond the reach of current systems.

Cited by 96

Towards Quantum Machine Learning for Malicious Code Analysis

Lopez, Jesus, Nowmi, Saeefa Rubaiyet, Cadena, Viviana et al. · ArXiv.org · 2025

Classical machine learning (CML) has been extensively studied for malware classification. With the emergence of quantum computing, quantum machine learning (QML) presents a paradigm-shifting opportunity to improve malware detection, though its application in this domain remains largely unexplored. In this study, we investigate two hybrid quantum-classical models -- a Quantum Multilayer Perceptron (QMLP) and a Quantum Convolutional Neural Network (QCNN), for malware classification. Both models utilize angle embedding to encode malware features into quantum states. QMLP captures complex patterns through full qubit measurement and data re-uploading, while QCNN achieves faster training via quantum convolution and pooling layers that reduce active qubits. We evaluate both models on five widely used malware datasets -- API-Graph, EMBER-Domain, EMBER-Class, AZ-Domain, and AZ-Class, across binary and multiclass classification tasks. Our results show high accuracy for binary classification -- 95-96% on API-Graph, 91-92% on AZ-Domain, and 77% on EMBER-Domain. In multiclass settings, accuracy ranges from 91.6-95.7% on API-Graph, 41.7-93.6% on AZ-Class, and 60.7-88.1% on EMBER-Class. Overall, QMLP outperforms QCNN in complex multiclass tasks, while QCNN offers improved training efficiency at the cost of reduced accuracy.

Cited by 0Open access

Strategies of Code-switching in Human-Machine Dialogs

Dean Geckt, Melinda Fricke, Shuly Wintner · ArXiv.org · 2025

Most people are multilingual, and most multilinguals code-switch, yet the characteristics of code-switched language are not fully understood. We developed a chatbot capable of completing a Map Task with human participants using code-switched Spanish and English. In two experiments, we prompted the bot to code-switch according to different strategies, examining (1) the feasibility of such experiments for investigating bilingual language use, and (2) whether participants would be sensitive to variations in discourse and grammatical patterns. Participants generally enjoyed code-switching with our bot as long as it produced predictable code-switching behavior; when code-switching was random or ungrammatical (as when producing unattested incongruent mixed-language noun phrases, such as `la fork'), participants enjoyed the task less and were less successful at completing it. These results underscore the potential downsides of deploying insufficiently developed multilingual language technology, while also illustrating the promise of such technology for conducting research on bilingual language use.

Cited by 0Open access

Relational Hoare Logic for Realistically Modelled Machine Code

Denis Mazzucato, Abdalrhman Mohamed, Juneyoung Lee et al. · ArXiv.org · 2025

Many security- and performance-critical domains, such as cryptography, rely on low-level verification to minimize the trusted computing surface and allow code to be written directly in assembly. However, verifying assembly code against a realistic machine model is a challenging task. Furthermore, certain security properties -- such as constant-time behavior -- require relational reasoning that goes beyond traditional correctness by linking multiple execution traces within a single specification. Yet, relational verification has been extensively explored at a higher level of abstraction. In this work, we introduce a Hoare-style logic that provides low-level, expressive relational verification. We demonstrate our approach on the s2n-bignum library, proving both constant-time discipline and equivalence between optimized and verification-friendly routines. Formalized in HOL Light, our results confirm the real-world applicability of relational verification in large assembly codebases.

Cited by 0Open access