Protection against attacks on software applications by obfuscating the call graph

Authors

  • Miguel Rodríguez Véliz Facultad de Ciencias Informáticas, Universidad Técnica de Manabí
  • Anaisa Hernández González Universidad Tecnológica de La Habana "José Antonio Echevarría", CUJAE
  • Roberto Sepúlveda Lima Universidad Tecnológica de la Habana “José Antonio Echeverría”
  • Yulier Núñez Musa Investigador independiente

Keywords:

Protección del código, Ofuscación del grafo de llamadas

Abstract

New security mechanisms have been developed to hinder attackers from attacking computer applications. Reverse engineering attacks expose the vulnerability of the source code. Although it is not possible to guarantee 100% security, obfuscation of the code is an option that makes it more difficult to access and understand it. Call graph obfuscation is the alternative presented in this work and has proven to be highly efficient in achieving significant levels of diversification and concealment. This work presents the results of the analysis of different sources where some techniques used in code obfuscation are exposed and a new proposal that uses call graph obfuscation is described.

References

Ahire, P., & Abraham, J. (2020). Mechanisms for Source Code Obfuscation in C: Novel Techniques and Implementation. International Conference on Emerging Smart Computing and Informatics (ESCI), (págs. 52-59). Pune. doi:https://doi.org/10.1109/ESCI48226.2020.9167661

Al-Hakimi, A. M., Sultan, A. B., Ghani, A. A., Ali, N. M., & Admodisastro, N. I. (2020). Hybrid Obfuscation Technique to Protect Source Code From Prohibited Software Reverse Engineering. IEEE Access, 8, 187326-187342. doi:https://doi.org/20.1109/ACCESS.2020.3028428

Bin Shamlan, A., Alaidaroos, A. S., Bin Merdhah, M. H., Bamatraf, M. A., & AA, Z. (2020). Experimentalevolution of the obfuscation techniques against reverse engineering. Proceedings of ICACI2020. Advances on smart and soft computing, (págs. 382-390). Spring Singapore.

Bin Shamlan, M., Bamatraf, M., & Zain, A. (2019). The Impact of Control Flow Obfuscation Technique on Software Protection Against Human Attacks. 2019 First International Conference of Intelligent Computing and Engineering (ICOICE). Hadhramout. doi:https://doi.org/10-1109/ICOIICE48418.2019.9035187

Céspedes Maestre, M. (2021). Detección de URLs maliciosos por mendio de técnicas de aprendizaje automático. Tesis de maestría, Universidad Nacional de Colombia. Obtenido de https://repositorio.unal.edu.co/handle/unal/79722

Cheng, X., Lin, Y., Gao, D., & Jia, C. (2019). DynOpVm: VM-Based Software Obfuscation with Dynamic Opcode Mapping. Applied Cryptography and Network Security (ACNS 2019, 11464, págs. 155-174. Cham. doi:https://doi.org/10.1007/978-3-030-21568-2_8

Collberg, C., Thomborson, C., & Low, D. (1997). Taxonomy off obfuscation transformations. Reporte técnico #148, Auckland University. Obtenido de https://research.sapace.aunckland.ac.nz/handle/2292/3491

Compton, R., Frank, E., Patros, P., & Koay, A. (2020). Embedding Java Classes with code2vec: Improvements from Variable Obfuscation. Proceedings of the 17th International Conference on Mining Software Repositories (MSR '20). Association for Computing Machinery, (págs. 243-253). New York. doi:https://doi.org/10.1145/3379597.3387445

Ebad, S., Daren, A., & Abawagy, J. (2021). Measuring software obfuscation quality -a systematic literature review. IEEE Access, 9, 99024-99038.

Fell, A., Pham, H. T., & Lam, S. (2019). TAD: Time Side-Channel Attack Defense of Obfuscated Source Code. 24th Asia and South Pacific Design Automation Conference (ASP-DAC), (págs. 1-6). Tokyo. doi:https://doi.org/10.1145/3287624.3287694

Gatica, J., Beron, M., Riesco, D., Pereira, M. J., Henriques, P., & Novais, P. (2023). Protección de activos de software. XXV Workkshop de Investigación en Ciencias de la Computación, (págs. 699-703). Junín. Obtenido de https://sedici.unlp.ed.ar/hadle/10915/164036

Hashemzade, B., & Abdolrazzagh-Nezhad, M. (2019). CSE: A Novel Dynamic Obfuscation Based on Control Flow, Signals and Encryptio . Journal of Computing and Security,, 6, 53-63. doi:https://doi.org/10.22108/jcs.2020.115402.1017

Khan, R. A., Khan, S. U., Khan, H. U., & Ilyas, M. (2022). Systematic literature review on security risks and its practices in secure software development. ieee Access, 10, 5456-5481.

Kumar, A., & Sharma, S. (2019). Design and Implementation of Obfuscating Tool for Software Code Protection. Advances in Interdisciplinary Engineering, (págs. 665–676). Singapore. doi:https://doi.org/10.1007/978-981-13-6577-5_64

Li, Y., Xiong, X., & Zhao, Y. (2021). Code Obfuscation Based on Inline Split of Control Flow Graph. 2021 IEEE International Conference on Artificial Intelligence and Computer Applications (ICAICA), (págs. 632-638). Dalian. doi:https://doi.org/10.1109/ICAICAS2286.2021.9498241

Lv, D., Zhao, L., & Chen, B. (2022). Research Based on LLVM Code Obfuscation Technology. International Conference on Industrial IoT, Big Data and Supply Chain (IIoTBDSC), (págs. 163-167). Beijing. doi:https://doi.org/10.1109/IIoTBDSC57192.2022.00039

Mahoney, W., McDonald, J., Grispos, G., & Mandal, S. (2023). Improvements on Hiding x86-64 Instructions by Interleaving. Proceedings of the 18th International Conference on Cyber Warfare and Security, (págs. 246-255). Maryland. doi:https://doi.org/10.34190/iccws.18.1.987

Morrison, P., Moye, D., Pandita, R., & Laurie, W. (2018). Mapping the Field of Software Life Cycle Security Metrics. Information and Software Technology, 102, 146-159. Obtenido de https://www.researchgate.net/profile/Dr-Rafiq-Khan/publication/341129438_The_State_of_the_Art_on_Secure_Software_Engineering_A_Systematic_Mapping_Study/links/5eb1197292851cb267741f4c/The-State-of-the-Art-on-Secure-Software-Engineering-A-Systematic-Mapping-Study.pdf

Ming Lu, K. (2019). Control flow obfuscation via CPS transformation. Proceedings of the 2019 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM 2019). Association for Computing Machinery, (págs. 54–60). New York. doi:https://doi.org/10.1145/3294032.3294083

Montejano Masa, J. P., Berón, M., Montejano, G. A., & Riesco, D. E. (2023). Métodos, técnicas y herramientas para la protección de sistemas de software. XXV Workkshop de Investigación en Ciencias de la Computación, (págs. 719-723). Junín. Obtenido de https://sedici.unlp.ed.ar/hadle/10915/164036

Moreno, A. (2023). Técnicas de evasión de antivirus y EDR. Tesis de grado, Escuela Técnica Superior de Ingeniería de sistemas de la Universidad Politécnica de Madrid, Madrid. Obtenido de https://oa.upm.es/id/eprint/75850

Quiroz Zambrano, S., & Macías Valencia, D. (2017). Seguridad en informática. consideraciones. Dominio de las Ciencias, 23(5), 676-688. doi:http://dx.doi.org/10.23857/dom-cien.pocaip.2017.3.5.ago.676-688

Roa Buendía, J. (2013). Seguridad informática. Madrid, España: McGraw Hill Education.

Rodríguez Véliz, J., Núñez Musa, Y., & Sepúlveda Lima, R. (2020). Call graph obfuscation and diversification: An approach. IET Information Security, 14(2), 241-252. doi:jttps://doi.org/10.1049/iet-ifs.2019.0216

Rodríguez Véliz, J., Núñez Musa, Y., & Sepúlveda Lima, R. (2023). Study of Code Obfuscation Techniques for the Security of Software Components. Intelligent Systems and Applications in Engineering, 11(10), 913-922. Obtenido de https://ijisae.org/index.php/IJISAE/article/view/3385

Rodríguez Véliz, J. (2025). Modelo para la privacidad de software basada en la diversificación y ofuscación del grafo de llamadas. Tesis de doctorado, Facultad de Ingeniería Informática, Universidad Tecnológica de La Habana.

Stallings, William  Brown, Lawrie (2022) Computer security: Principles and practice (5th edition). Pearson Education. Obtenido de https://studylib.net/doc/27914471/computer-security-principles-and-practice-5th-edition---w.

Tambunan, S., & Rokhman, N. (2023). C Source code Obfuscation using Hash Function and Encryption Algorithm. . Indonesian Journal of Computing and Cybernetics Systems (IJCCS), 17, págs. 227-236. doi:https://doi.org/10.22146/ijccs.86118

Wang, L., Li, Y., Zhang, H., Han, Q., & Chen, L. (2021). An Efficient Control-flow based Obfuscator for Micropython Bytecode. 2021 7th International Symposium on System and Software Reliability (ISSSR), (págs. 54-63). Chongqing. doi:https://doi.org/10.1109/ISSSR53171.2021.00028

Wang, Z., Shan, Y., Yang, Z., Wang, R., & Song, S. (2020). Semantic Redirection Obfuscation: A Control flow Obfuscation Based on Android Runtime. 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom),, (págs. 1756-1763). doi:https://doi.org/10.1109/TrustCom50675.2020.00241

Whitman, Michael.  Mattord, Herbert (2022). Principles of Information Security (7th edition). Cengage Learning.

Xu, H., Zhou, Y., Ming, J., & Lyu, M. (2020). Layered obfuscation: a taxonomy of software obfuscation tecniques for layered security. Cibersegurity, 3, 1-18. Obtenido de https://link.springer.com/article/10.1186/542400-020-00049-3

Yang, X., Zhang, L., Ma, C., Liu, Z., & Peng, P. (2019). Android Control Flow Obfuscation Based on Dynamic Entry Points Modification. 22nd International Conference on Control Systems and Computer Science (CSCS), (págs. 296-303). Bucharest. doi:https://doi.org/10.1109/CSCS.2019.00054

Yi, J., Chen, L., Zhang, H., Li, Y., & Zhao, H. (2020). A Security Model and Implementation of Embedded Software Based on Code Obfuscation. En 2020 (Ed.), 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), (págs. 1606-1613). Guangzhou. doi:https://doi.org/10.1109/TrustCom50675.2020.00222

Published

2025-12-31

How to Cite

Rodríguez Véliz, M. ., Hernández González, A., Sepúlveda Lima, R., & Núñez Musa, Y. (2025). Protection against attacks on software applications by obfuscating the call graph. Revista Cubana De Transformación Digital, 6, e267 1–15. Retrieved from https://rctd.uic.cu/rctd/article/view/267

Issue

Section

Originial paper