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...
Main Authors: | , , |
---|---|
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 |