1
فارغ التحصیل کارشناسی ارشد دانشگاه علم و صنعت ایران، تهران
2
دانشیار، دانشکده مهندسی کامپیوتر، دانشگاه علم و صنعت ایران، تهران، ایران
چکیده
مبهمسازی در مفهوم کلی، تکنیکی است که باعث میشود تا درک و تحلیل کدهای یک برنامه سختتر شود که باهدف امنیت نرمافزار موردنظر صورت میگیرد. برای مهندسی معکوس بهطورمعمول از گراف جریان کنترلی استفاده میشود. درنتیجه میبایست این گراف جریان کنترلی را به طریقی مبهم نمود. در این مقاله گراف جریان کنترلی با استفاده از شبکههای پتری چند نخی همراه با انتخابکننده سلسله مراتبی مبهم میشود. بحث اصلی بر سر تقسیم کدها به قسمتهایی میباشد بهطوریکه برنامه در نخهای جداگانه اجرا شود. این نخها میبایست توسط مدیر نخ، مدیریت شوند تا در اجرای آنها مشکلی پیش نیاید. هر چه شبکه پتری که برای مدلسازی برنامه استفاده میشود پیچیدهتر باشد، مهندسی معکوس آن نیز دشوارتر میشود. کوچکترین تغییر در روند اجرایی با استفاده از نقاط توقف در انتخاب انتخابکننده سلسله مراتبی تاثیر می گذارد و در نتیجه باعث میشود برنامه روند اصلی خود را طی نکند.
[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.##
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).##