Assembly Function Recognition in Embedded Systems as an Optimization Problem

Many different aspects of software system development and verification rely on precise function identification in binary code. Recognition of the source Assembly functions in embedded systems is one of the fundamental challenges in binary program analysis. While numerous approaches assume that the f...

Full description

Bibliographic Details
Main Authors: Matan Avitan, Elena V. Ravve, Zeev Volkovich
Format: Article
Language:English
Published: MDPI AG 2024-02-01
Series:Mathematics
Subjects:
Online Access:https://www.mdpi.com/2227-7390/12/5/658
_version_ 1827319557542379520
author Matan Avitan
Elena V. Ravve
Zeev Volkovich
author_facet Matan Avitan
Elena V. Ravve
Zeev Volkovich
author_sort Matan Avitan
collection DOAJ
description Many different aspects of software system development and verification rely on precise function identification in binary code. Recognition of the source Assembly functions in embedded systems is one of the fundamental challenges in binary program analysis. While numerous approaches assume that the functions are given a priori, correct identification of the functions in binaries remains a great issue. This contribution addresses the problem of uncertainty in binary code in identification of functions, which were optimized during compilation. This paper investigates the difference between debug and optimized functions via modeling of these functions. To do so, we introduce an extensible model-centred hands-on approach for examining similarities between binary functions. The main idea is to model each function using a set of predetermined, experimentally discovered features, and then find a suitable weight vector that could give impact factor to each such a feature. After finding the weight vector, the introduced models of such desired functions can be identified in binary software packages. It means that we reduce the similarity identification problem of the models to a classical version of optimization problems with one optimization criterion. Using our implementation, we found that the proposed approach works smoothly for functions, which contain at least ten Assembly instructions. Our tool guarantees success at a very high level.
first_indexed 2024-04-25T00:23:58Z
format Article
id doaj.art-00104e5c96c542748dae77826c4c4a0d
institution Directory Open Access Journal
issn 2227-7390
language English
last_indexed 2024-04-25T00:23:58Z
publishDate 2024-02-01
publisher MDPI AG
record_format Article
series Mathematics
spelling doaj.art-00104e5c96c542748dae77826c4c4a0d2024-03-12T16:49:51ZengMDPI AGMathematics2227-73902024-02-0112565810.3390/math12050658Assembly Function Recognition in Embedded Systems as an Optimization ProblemMatan Avitan0Elena V. Ravve1Zeev Volkovich2Rafael, Advanced Defense Systems Ltd., Haifa 3102102, IsraelDepartment of Software Engineering, Braude College of Engineering, Karmiel 21982, IsraelDepartment of Software Engineering, Braude College of Engineering, Karmiel 21982, IsraelMany different aspects of software system development and verification rely on precise function identification in binary code. Recognition of the source Assembly functions in embedded systems is one of the fundamental challenges in binary program analysis. While numerous approaches assume that the functions are given a priori, correct identification of the functions in binaries remains a great issue. This contribution addresses the problem of uncertainty in binary code in identification of functions, which were optimized during compilation. This paper investigates the difference between debug and optimized functions via modeling of these functions. To do so, we introduce an extensible model-centred hands-on approach for examining similarities between binary functions. The main idea is to model each function using a set of predetermined, experimentally discovered features, and then find a suitable weight vector that could give impact factor to each such a feature. After finding the weight vector, the introduced models of such desired functions can be identified in binary software packages. It means that we reduce the similarity identification problem of the models to a classical version of optimization problems with one optimization criterion. Using our implementation, we found that the proposed approach works smoothly for functions, which contain at least ten Assembly instructions. Our tool guarantees success at a very high level.https://www.mdpi.com/2227-7390/12/5/658optimizationdebug compilationoptimizing compilationassembly functionfunction recognitionembedded systems
spellingShingle Matan Avitan
Elena V. Ravve
Zeev Volkovich
Assembly Function Recognition in Embedded Systems as an Optimization Problem
Mathematics
optimization
debug compilation
optimizing compilation
assembly function
function recognition
embedded systems
title Assembly Function Recognition in Embedded Systems as an Optimization Problem
title_full Assembly Function Recognition in Embedded Systems as an Optimization Problem
title_fullStr Assembly Function Recognition in Embedded Systems as an Optimization Problem
title_full_unstemmed Assembly Function Recognition in Embedded Systems as an Optimization Problem
title_short Assembly Function Recognition in Embedded Systems as an Optimization Problem
title_sort assembly function recognition in embedded systems as an optimization problem
topic optimization
debug compilation
optimizing compilation
assembly function
function recognition
embedded systems
url https://www.mdpi.com/2227-7390/12/5/658
work_keys_str_mv AT matanavitan assemblyfunctionrecognitioninembeddedsystemsasanoptimizationproblem
AT elenavravve assemblyfunctionrecognitioninembeddedsystemsasanoptimizationproblem
AT zeevvolkovich assemblyfunctionrecognitioninembeddedsystemsasanoptimizationproblem