Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3026724.3026726acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicinsConference Proceedingsconference-collections
research-article

Binary Protection using Dynamic Fine-grained Code Hiding and Obfuscation

Published: 28 December 2016 Publication History

Abstract

Anti-reverse engineering is one of the core technologies of software intellectual property protection, prevailing techniques of which are static and dynamic obfuscation. Static obfuscation can only prevent static analysis with code mutation done before execution by compressing, encrypting and obfuscating. Dynamic obfuscation can prevent both static and dynamic analysis, which changes code while being executed. Popular dynamic obfuscation techniques include self-modifying code and virtual machine protection. Despite the higher safety, dynamic obfuscation has its problems: 1) code appear in plain text remains a long time; 2) control flow is exposable; 3) time and space overheads are too big. This paper presents a binary protection scheme using dynamic fine-grained code hiding and obfuscation named dynFCHO. In this scheme, basic blocks to be protected are hidden in original code and will be restored while being executed. Code obfuscation is also implemented additionally to enhance safety. Experiments prove that dynFCHO can effectively resist static and dynamic analysis without destructing original software functions. It can be used on most binary programs compiled by standard compilers. This scheme can be widely used with the advantages of strong protection, light-weight implementation, and good extendibility.

References

[1]
Anckaert B, Jakubowski M, Venkatesan R. Proteus: virtualization for diversified tamper-resistance{C}. Proceedings of the ACM workshop on Digital rights management. ACM, 2006: 47--58.
[2]
Anirban Majumdar, Clark Thomborson. Manufacturing opaque predicates in distributed systems for code obfuscation proceeding. In ACSC '06 Proceedings of the 29th Australasian Computer Science Conference. 2006: 187--196.
[3]
Dongpeng Xu, Jiang Ming, Dinghao Wu. Generalized Dynamic Opaque Predicates: A New Control Flow Obfuscation Method. In Proceedings 19th International Conference, (Honolulu, HI, USA, 2016). Information Security: 323--342.
[4]
C. Wang, J. Davidson, J. Hill, J. Knight. Protection of Software-based Survivability Mechanisms International Conference of Dependable Systems and Networks, Goteborg, Sweden (July, 2001).
[5]
J. Cappaert and B. Preneel. A general model for hiding control ow. In Proceedings of the tenth annual ACM workshop on Digital rights management. ACM, 2010.
[6]
C. Linn and S. Debray. Obfuscation of executable code to improve resistance to static disassembly. In Proceedings of the 10th ACM conference on Computer and communications security. ACM, 2003.
[7]
Self-modifying code - Wikipedia, the free encyclopedia. URL:http://en.m.wikipedia.org/wiki/Self-modifying_code/
[8]
Yuichiro K, Akito M, Masahide N, et al. Exploiting self-modification mechanism for program protection{C}. In Proceedings of the 27th Annual International Computer Software and Applications Conference (Washington, DC, USA). IEEE Computer Society, 2003:170--181.
[9]
Yuichiro K, Akito M, Masahide N, et al. A software protection method based on instruction camouflage {C}. In Electronics and Communications (Japan Part 3). Wiley Publishers, 2006, 89(1):47--59.
[10]
Yuichiro K, Akito M, Masahide N, et al. Program camouflage: a systematic instruction hiding method for protecting secrets{C}. In Proceedings of World Congress on Science, Engineering and Technology. (Heidelberg, Germany): WASET, 2008, 33:557--563.
[11]
Yuichiro K, Monden A. A software protection method based on time-sensitive code and self-modification mechanism{C}. In Proc of IASTED. 2010, 10:325--331.
[12]
Cappaert J, Kisserli N, Schellekens D, et al. Self-encrypting Code to Protect Against Analysis and Tampering{C}. In 1st Benelux Workshop Inf. Syst. Security. 2006.
[13]
Madou M, Anchaert B, Moseley P, et al. Software protection through dynamic code mutation{M}. In Information Security Applications. Springer Berlin Heidelberg, 2006: 194--206.
[14]
Ghosh S, Hiser J, Davidson J W. Software protection for dynamically-generated code{C}. In Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop. ACM, 2013:1.
[15]
Ghosh S, Hiser J, Davidson J W. A secure and robust approach to software tamper resistance{M}. In Information Hiding, Springer, 2010.
[16]
Ghosh S, Hiser J, Davidson J W. Replacement attacks against VM-protected applications{C}. In ACM SIGPLAN Notices. ACM, 2012, 47(7): 203--214.
[17]
Kaiyuan Kuang, etc. Exploiting Dynamic Scheduling for VM-Based Code Obfuscation. Security and Privacy in Computing and Communications. 2016.
[18]
S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot. White-Box Cryptography and an AES Implementation{M}. Selected Areas in Cryptography, 2003: 250--270.
[19]
VMPSoft. VMProtect. URL:http://vmpsoft.com/
[20]
Yujing Liu, Wei Peng, Jinshu Su. A study of IP prefix hijacking in cloud computing networks {J}. Security and Communication Networks, 2014, 7(11): 2201--2210.
[21]
J Zhang, H Hu, B Liu. Robustness of RED in mitigating LDoS attack {J}.KSII Trans on Internet and Information Systems (TIIS), 2011, 5(5): 1085--1100.
[22]
Peidong Zhu, Xin Liu, Wenping Deng, Huayang Cao. Cooperative detection of Internet prefix hijacking {J}. Journal of Internet Technology, 2010, 11(1): 33--46.

Cited By

View all
  • (2022)Model of Execution Trace Obfuscation Between ThreadsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2021.312315919:6(4156-4171)Online publication date: 1-Nov-2022
  • (2020)The self modifying code (SMC)-aware processor (SAP): a security look on architectural impact and supportJournal of Computer Virology and Hacking Techniques10.1007/s11416-020-00348-wOnline publication date: 13-Feb-2020
  • (2019)Leveraging WebAssembly for Numerical JavaScript Code VirtualizationIEEE Access10.1109/ACCESS.2019.29535117(182711-182724)Online publication date: 2019

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
ICINS '16: Proceedings of the 4th International Conference on Information and Network Security
December 2016
110 pages
ISBN:9781450347969
DOI:10.1145/3026724
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • UPM: Universiti Putra Malaysia

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 December 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Binary Protection
  2. Obfuscation
  3. Self-modifying Code
  4. Software Protection
  5. Virtual Machine

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ICINS '16

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Model of Execution Trace Obfuscation Between ThreadsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2021.312315919:6(4156-4171)Online publication date: 1-Nov-2022
  • (2020)The self modifying code (SMC)-aware processor (SAP): a security look on architectural impact and supportJournal of Computer Virology and Hacking Techniques10.1007/s11416-020-00348-wOnline publication date: 13-Feb-2020
  • (2019)Leveraging WebAssembly for Numerical JavaScript Code VirtualizationIEEE Access10.1109/ACCESS.2019.29535117(182711-182724)Online publication date: 2019

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media