Source code obfuscation with genetic algorithms using LLVM code optimizations
Abstract With the advent of the cloud computing model allowing a shared access to massive computing facilities, a surging demand emerges for the protection of the intellectual property tied to the programs executed on these uncontrolled systems. If novel paradigm as confidential computing aims at pr...
        Saved in:
      
    
          | Published in | Logic journal of the IGPL Vol. 33; no. 5 | 
|---|---|
| Main Authors | , , , , | 
| Format | Journal Article | 
| Language | English | 
| Published | 
            Oxford University Press
    
        01.10.2025
     | 
| Subjects | |
| Online Access | Get full text | 
| ISSN | 1367-0751 1368-9894 1368-9894  | 
| DOI | 10.1093/jigpal/jzae069 | 
Cover
| Abstract | Abstract
With the advent of the cloud computing model allowing a shared access to massive computing facilities, a surging demand emerges for the protection of the intellectual property tied to the programs executed on these uncontrolled systems. If novel paradigm as confidential computing aims at protecting the data manipulated during the execution, obfuscating techniques (in particular at the source code level) remain a popular solution to conceal the purpose of a program or its logic without altering its functionality, thus preventing reverse-engineering on the program even with the help of computing resources. The many advantages of code obfuscation, together with its low cost, makes it a popular technique. This paper proposes a novel methodology for source code obfuscation that can be used together with other traditional obfuscation techniques, making the code more robust against reverse engineering attacks. Three program complexity metrics are used to define three different single-objective combinatorial optimization versions of the problem, which are solved and analysed. Additionally, three multi-objective problems are defined, those considering each of the selected metrics together with the program execution time, in order to avoid strong obfuscations penalizing the performance. The goal of the defined problems is to find sequences of LLVM optimizations that lead to highly obfuscated versions of the original code. These transformations are applied to the back-end pseudo-assembly code (i.e., LLVM Intermediate Representation), thus avoiding any further optimizations by the compiler. Classical genetic algorithms (GAs) are used to solve the studied problems, namely a basic cellular GA for the single-objective problems and the popular NSGA-II for the multi-objective ones. The promising results show the potential of the proposed technique. | 
    
|---|---|
| AbstractList | Abstract
With the advent of the cloud computing model allowing a shared access to massive computing facilities, a surging demand emerges for the protection of the intellectual property tied to the programs executed on these uncontrolled systems. If novel paradigm as confidential computing aims at protecting the data manipulated during the execution, obfuscating techniques (in particular at the source code level) remain a popular solution to conceal the purpose of a program or its logic without altering its functionality, thus preventing reverse-engineering on the program even with the help of computing resources. The many advantages of code obfuscation, together with its low cost, makes it a popular technique. This paper proposes a novel methodology for source code obfuscation that can be used together with other traditional obfuscation techniques, making the code more robust against reverse engineering attacks. Three program complexity metrics are used to define three different single-objective combinatorial optimization versions of the problem, which are solved and analysed. Additionally, three multi-objective problems are defined, those considering each of the selected metrics together with the program execution time, in order to avoid strong obfuscations penalizing the performance. The goal of the defined problems is to find sequences of LLVM optimizations that lead to highly obfuscated versions of the original code. These transformations are applied to the back-end pseudo-assembly code (i.e., LLVM Intermediate Representation), thus avoiding any further optimizations by the compiler. Classical genetic algorithms (GAs) are used to solve the studied problems, namely a basic cellular GA for the single-objective problems and the popular NSGA-II for the multi-objective ones. The promising results show the potential of the proposed technique. | 
    
| Author | Varrette, Sébastien Aragón-Jurado, José Miguel de la Torre, Juan Carlos Jareño, Javier Dorronsoro, Bernabé  | 
    
| Author_xml | – sequence: 1 givenname: Juan Carlos surname: de la Torre fullname: de la Torre, Juan Carlos – sequence: 2 givenname: Javier surname: Jareño fullname: Jareño, Javier – sequence: 3 givenname: José Miguel surname: Aragón-Jurado fullname: Aragón-Jurado, José Miguel – sequence: 4 givenname: Sébastien surname: Varrette fullname: Varrette, Sébastien – sequence: 5 givenname: Bernabé surname: Dorronsoro fullname: Dorronsoro, Bernabé  | 
    
| BookMark | eNqFkDtPwzAURi1UJNrCyuyVIcTOw48RVUCRUjHwWCPHdoKjxI7iRFX76wlNdqZ79ek7V1dnA1bWWQ3APUaPGPE4rE3ViSasz0Ijwq_AGseEBZzxZHXZaYBoim_AxvsaIZSwKF2Dw4cbe6mhdEpDV5Sjl2IwzsKjGX5gpa0ejISiqVw_Ba2Hoze2gln2fViYbjCtOV8gfwuuS9F4fbfMLfh6ef7c7YPs_fVt95QFMsbpECiqiChlyYicPicRIgUjSqC0kEXMhVBIM4zpFGkmJaFUlayUEWGJJqmOeLwF4Xx3tJ04HUXT5F1vWtGfcozyPxv5bCNfbEzEw0y4sfuv-wtuRGer | 
    
| CitedBy_id | crossref_primary_10_1016_j_iot_2025_101521 | 
    
| ContentType | Journal Article | 
    
| Copyright | The Author(s) 2024. Published by Oxford University Press. 2024 | 
    
| Copyright_xml | – notice: The Author(s) 2024. Published by Oxford University Press. 2024 | 
    
| DBID | TOX ADTOC UNPAY  | 
    
| DOI | 10.1093/jigpal/jzae069 | 
    
| DatabaseName | Oxford Journals Open Access Collection Unpaywall for CDI: Periodical Content Unpaywall  | 
    
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: TOX name: Oxford Journals Open Access Collection url: https://academic.oup.com/journals/ sourceTypes: Publisher – sequence: 2 dbid: UNPAY name: Unpaywall url: https://proxy.k.utb.cz/login?url=https://unpaywall.org/ sourceTypes: Open Access Repository  | 
    
| DeliveryMethod | fulltext_linktorsrc | 
    
| Discipline | Languages & Literatures Mathematics Philosophy  | 
    
| EISSN | 1368-9894 | 
    
| ExternalDocumentID | 10.1093/jigpal/jzae069 | 
    
| GroupedDBID | .2P .4S .DC .I3 0R~ 1TH 29L 4.4 482 48X 5GY 5VS 5WA 70D 8VB AAIJN AAJKP AAJQQ AAMVS AAOGV AAPQZ AAPXW AARHZ AAUAY AAUQX AAVAP AAWDT ABAZT ABDFA ABDTM ABEJV ABEUO ABGNP ABIME ABIXL ABJNI ABNGD ABNKS ABPQP ABPTD ABQLI ABVGC ABVLG ABWST ABXVV ABZBJ ACFRR ACGFO ACGFS ACUFI ACUKT ACUTJ ACUXJ ACYTK ADEYI ADEZT ADGZP ADHKW ADHZD ADIPN ADNBA ADOCK ADQBN ADRDM ADRTK ADVEK ADYJX ADYVW ADZXQ AECKG AEGPL AEGXH AEJOX AEKKA AEKSI AEMDU AENEX AENZO AEPUE AETBJ AEWNT AFFZL AFIYH AFOFC AGINJ AGKEF AGQPQ AGQXC AGSYK AHGBF AHQJS AHXPO AIAGR AIJHB AJBYB AJEEA AJEUX AJNCP AKVCP ALMA_UNASSIGNED_HOLDINGS ALTZX ALUQC ALXQX ANAKG ANFBD APIBT APWMN AQDSO ARCSS ATGXG ATTQO AXUDD AZFZN AZVOD BAYMD BCRHZ BEFXN BEYMZ BFFAM BGNUA BHONS BKEBE BPEOZ BQUQU BTQHN CAG CDBKE COF CS3 CZ4 DAKXR DILTD DU5 D~K EBS EBU EDO EE~ EJD ELUNK F9B FEDTE FLIZI FLUFQ FOEOM FQBLK GAUVT GJXCC H13 H5~ HAR HVGLF HW0 HZ~ IOX JAVBF JXSIZ K1G KAQDR KBUDW KOP KSI KSN M-Z N9A NGC NMDNZ NOMLY NVLIB O0~ O9- OCL ODMLO OJQWA OJZSN OWPYF O~Y P2P PAFKI PB- PEELM PQQKQ Q1. Q5Y QWB R44 RD5 RNI ROL ROX RUSNO RW1 RXO RZF RZO TCN TH9 TJP TOX TUS X7H YAYTL YKOAZ YXANX ZKX ZL0 ~91 ADTOC UNPAY  | 
    
| ID | FETCH-LOGICAL-c315t-d7d6afcf86c1096206b86da05bcb39aad0e81176dae8cc677df8fc2684e65e293 | 
    
| IEDL.DBID | UNPAY | 
    
| ISSN | 1367-0751 1368-9894  | 
    
| IngestDate | Sun Sep 07 11:05:18 EDT 2025 Mon Sep 29 07:20:33 EDT 2025  | 
    
| IsDoiOpenAccess | true | 
    
| IsOpenAccess | true | 
    
| IsPeerReviewed | true | 
    
| IsScholarly | true | 
    
| Issue | 5 | 
    
| Keywords | intermediate representation source code obfuscation genetic algorithms multi-objective optimization LLVM  | 
    
| Language | English | 
    
| License | This is an Open Access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted reuse, distribution, and reproduction in any medium, provided the original work is properly cited. cc-by  | 
    
| LinkModel | DirectLink | 
    
| MergedId | FETCHMERGED-LOGICAL-c315t-d7d6afcf86c1096206b86da05bcb39aad0e81176dae8cc677df8fc2684e65e293 | 
    
| OpenAccessLink | https://proxy.k.utb.cz/login?url=https://doi.org/10.1093/jigpal/jzae069 | 
    
| ParticipantIDs | unpaywall_primary_10_1093_jigpal_jzae069 oup_primary_10_1093_jigpal_jzae069  | 
    
| PublicationCentury | 2000 | 
    
| PublicationDate | 2025-10-01 | 
    
| PublicationDateYYYYMMDD | 2025-10-01 | 
    
| PublicationDate_xml | – month: 10 year: 2025 text: 2025-10-01 day: 01  | 
    
| PublicationDecade | 2020 | 
    
| PublicationTitle | Logic journal of the IGPL | 
    
| PublicationYear | 2025 | 
    
| Publisher | Oxford University Press | 
    
| Publisher_xml | – name: Oxford University Press | 
    
| SSID | ssj0004825 | 
    
| Score | 2.3705175 | 
    
| Snippet | Abstract
With the advent of the cloud computing model allowing a shared access to massive computing facilities, a surging demand emerges for the protection of... | 
    
| SourceID | unpaywall oup  | 
    
| SourceType | Open Access Repository Publisher  | 
    
| Title | Source code obfuscation with genetic algorithms using LLVM code optimizations | 
    
| URI | https://doi.org/10.1093/jigpal/jzae069 | 
    
| UnpaywallVersion | publishedVersion | 
    
| Volume | 33 | 
    
| hasFullText | 1 | 
    
| inHoldings | 1 | 
    
| isFullTextHit | |
| isPrint | |
| link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1bT8IwFD5RfBAfvOANb2mMMb4MxrZ23SMxKjGgJILBJ9IrEbkFRoz-els2iPKCj2u6pmvPurPvnO87AFfc9SmhpcAJbOAw0Ew7THLXiYwzroknOWOW4Fx7IpVm8NjCrTRB1nJh_sTvI7_Yfe-MWK_Y_WbKJdE6bBBsfO4MbDSf6uW3hFRlsTacEqzM20ujYKHOuDzAnMa2OR2M2Ncn6_V-fU3ud-BhPo8kieSjMI15QXwvSTSunugubKcOJSonFrAHa2qQg6NqCkNO0DWqLpSTJznYqi10Ws1Vtj6vZPC1D7WXGZCPLMsdDbmeThI4D1msFhlDs3xHxHqd4dg09CfI5sx3ULX6WkvvMcdPf87rPIDm_V3jtuKk1RYc4Zdw7MhQEqaFpkSYByKeSzglkrmYC-5HjElXWVKqaVJUCBKGUlMtrFiMIlgZr-EQMoPhQB0D0ixU2KOcmX-jQEaYYelFrnQD5VHBS6U8XJpdaI8SPY12Egf328kSttMlzMPNYpNWdD35f9dTyHq2gu8sHe8MMvF4qs6NWxHzC1hvPLcuUsv6AQt10C8 | 
    
| linkProvider | Unpaywall | 
    
| linkToUnpaywall | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1bT8IwFD5ReBAfvOANb2mMMb4MxrZ23SMxIjFASBSDT6RXInILlxj49bZsEPUFH9d0TdeedWffOd93AG6561NCi4ET2MBhoJl2mOSuExlnXBNPcsYswblWJ5Vm8NzCrSRB1nJhfsXvI7_Q_eiMWK_QXTDlkmgb0gQbnzsF6Wa9UXqPSVUWa8MJwcq8vTQK1uqMfwdY0dh2ZoMRm3-xXu_H16S8D0-recRJJJ_52ZTnxeKPROPmiR7AXuJQolJsAYewpQZZOK0mMOQE3aHqWjl5koXd2lqn1VxlGqtKBvMjqL0sgXxkWe5oyPVsEsN5yGK1yBia5Tsi1usMx6ahP0E2Z76DqtW3WnKPOX76K17nMTTLj68PFSeptuAIv4injgwlYVpoSoR5IOK5hFMimYu54H7EmHSVJaWaJkWFIGEoNdXCisUogpXxGk4gNRgO1BkgzUKFPcqZ-TcKZIQZll7kSjdQHhW8WMzBjdmF9ijW02jHcXC_HS9hO1nCHNyvN2lD1_P_d72AjGcr-C7T8S4hNR3P1JVxK6b8OrGpby9GzxM | 
    
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Source+code+obfuscation+with+genetic+algorithms+using+LLVM+code+optimizations&rft.jtitle=Logic+journal+of+the+IGPL&rft.au=de+la+Torre%2C+Juan+Carlos&rft.au=Jare%C3%B1o%2C+Javier&rft.au=Arag%C3%B3n-Jurado%2C+Jos%C3%A9+Miguel&rft.au=Varrette%2C+S%C3%A9bastien&rft.date=2025-10-01&rft.pub=Oxford+University+Press&rft.issn=1367-0751&rft.eissn=1368-9894&rft.volume=33&rft.issue=5&rft_id=info:doi/10.1093%2Fjigpal%2Fjzae069&rft.externalDocID=10.1093%2Fjigpal%2Fjzae069 | 
    
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1367-0751&client=summon | 
    
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1367-0751&client=summon | 
    
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1367-0751&client=summon |