Software Obfuscation with Analytical Hierarchy Process and Petri Nets

Document Type : Original Article

Authors

1 Graduated from Iran University of Science and Technology, Tehran

2 iust

Abstract

Obfuscation in the general sense is a technique that makes it more difficult to read and analyze the code of a program, which is done for the purpose of software security. For reverse engineering, a control flow graph is commonly used. As a result, this graph of the control flow must be obfuscated in some way. In this paper, the control flow graph using multi-threaded petri nets with a hierarchical selector is obscured. The main discussion is about dividing the code into sections so that the program runs in separate threads. These threads should be managed by the thread manager so that there is no problem in executing them. The more complex the petri net used to model the program, the more difficult it is to reverse engineering. The slightest change in the execution process by using stopping points affects the selection of the hierarchical selector, and as a result, the program does not go through its main process.

Keywords


  • [1] Collberg, C.S., "Watermarking, tamper-proofing, and obfuscation - tools for software protection ", In IEEE Transactions on Software Engineering, Vol. 1, pp. 2, 2017.##
  • [2] Webbit K., "Keygen Injectionos", CodeBreakers-Journal, Vol. 1, pp. 2, 2019.##
  • [3] Barak, B., "On the (im)possibility of obfuscating programs", In Proceedings of the 21st Annual International Cryptology Conference, Vol. 21, pp. 39, 2001.##
  • [4] Linn, C., “Obfuscation of executable code to Improve resistance to static disassembly”, Computer and Comm unications Security (CCS), pages 290-299, Washington, 2020.##
  • [5] Anastasiu, D.C., “Fast cosine similarity search with prefix L-2 norm bounds”, Data Engineering (ICDE), 2019 IEEE 30th International Conference on, pages 784-795, Chicago, April 4 2019.##
  • [6] Desel, Jorg, "The concepts of Petri nets", Software & Systems Modeling, August 2018.##
  • [7] Parsa, Saeed, Salehi, Hamidreza, Alaian, Mohammad Hadi, “Blur the code to prevent symbolic execution”, Electronic and Cyber Defense, 6 (1), 1-16, 2018, (In Persian).##
  • [8] Rajba Pawel, Mazurczyk, Wojciech, “Data Hiding Using Code Obfuscation”, The 16th International Conference on Availability, Reliability and Security, 2021.##
  • [9] Schloegel, Moritz, Blazytko, Tim, Contag, Moritz, Aschermann, Cornelius, Basler, Julius, Holz, Thorsten, Abbasi, Ali, “Loki: Hardening Code Obfuscation Against Automated Attacks”, Cryptography and Security (cs.CR), 2021.##
  • Madou M., "Hybrid static-dynamic attacks against software protection mechanisms”, In Proceedings of the 5th ACM workshop on Digital rights management, pages 75-82, New York, 2015.##
  • Uzam, Murat, "On a deadlock prevention policy for a class of Petri nets S3PMR", The International Journal of Advanced Manufacturing Technology, Vol. 73, pages 315-319, July 2014.##
  • Dunaev, D., “Obfuscation for protecting software from analysis and modification”, In Proceedings of the Automation and Applied Computer Science Workshop 2011 (AACS'11), pages 290-296, Colorado, 2017.##
  • Rogge-Solti, Andreas, "Prediction of Remaining Service Execution Time Using Stochastic Petri Nets with Arbitrary Firing Delays ", Springer, 2018.##
  • Tiwari, Umesh, "Cyclomatic complexity metric for component based software", ACM SIGSOFT Software Engineering, Vol. 39, pages 1-6, January 2014.##
  • Breitinger, Frank, "Similarity Hashing Based on Levenshtein Distances", Springer New York, Vol. 433, pages 133-147, 2018.##
  • Aalst, Wil M. P. van der, "Strategies for Modeling Complex Processes Using Colored Petri Nets", Transactions on Petri Nets and Other Models of Concurrency VII, Vol. 7480, pages 6-55, 2018.##
  • Gomes, Pedro de Carvalho, "Sound Control Flow Graph Extraction from Incomplete Java Bytecode Programs", Springer Berlin Heidelberg, Vol. 8411, pages 215-229, 2019.##
  • Parsa, Saeed; Khanjani, Mohammad; “Software obfuscation by multi-threaded petri nets”, Annual National Conference of the Iranian Computer Association, 2015,http://fa.seminars.sid.ir/ViewPaper.aspx?ID=49569, (In Persian).##