Protection against attacks on software applications by obfuscating the call graph
Keywords:
Protección del código, Ofuscación del grafo de llamadasAbstract
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
How to Cite
Issue
Section
License
Copyright (c) 2025 Miguel Rodríguez Véliz, Anaisa Hernández González, Roberto Sepúlveda Lima, Yulier Núñez Musa

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.






