Font Size: a A A

Research And Design Of Software Protection Scheme Based On Code Obfuscation

Posted on:2020-08-16Degree:MasterType:Thesis
Country:ChinaCandidate:Y ZhangFull Text:PDF
GTID:2428330596975091Subject:Information security
Abstract/Summary:PDF Full Text Request
With the rapid development of technology,the Internet of Things era of "everything can be connected" has arrived,and it is foreseeable that more and more Internet of Things applications will emerge.Because it is an emerging industry,many norms are still not perfect.Analogous to the traditional software industry suffering from software piracy and other issues,IoT applications are also facing the threat of software assets being stolen.The security of software assets needs to be guaranteed,and code obfuscation technology is an effective means to achieve software protection.Due to the complexity of IoT application scenarios,various platforms,and the lack of uniform provisions on device architecture and software programming language,it's impossible to apply the traditional code obfuscation protection schemes directly.Therefore,this thesis proposes to overcome above problems based on LLVM,which is an excellent compilation system.LLVM framework has a well-designed intermediate language format,which is platform independent.In addition,LLVM's multiple programming language support and the ability to generate machine code of different architectures make it possible to design code obfuscation protection schemes for IoT applications based on LLVM.Based on the LLVM platform,this thesis designs a software protection scheme using code obfuscation technique for IoT applications.Based on the analysis of existing code obfuscation techniques and the characteristics of IoT applications,three kinds of lightweight code obfuscation algorithms are proposed.Obfuscate string data to prevent attackers from obtaining sensitive internal information through static string scanning.Design key transformations,perform dynamic decryption operations before using strings,and re-encrypt after use to combat dynamic memory scan string attacks.Obfuscate the control flow.A restricted control flow flattening algorithm is designed to complicate the simple and clear control flow diagram and further enhance the difficulty of analyzing the control flow graph.At the same time,considering overhead control,the overhead is reduced by limiting the number of basic blocks to be obfuscated and certain security is provided.Obfuscate function calls.According to the function calls situation,attackers can guess the intention.This thesis puts forward the concept of a springboard function,by encapsulating many functions into this springboard function,then calling the springboard function.We design a function call hidden algorithm to resist static analysis of the function calls graph.Finally,based on the above research and design,three algorithms are implemented by using LLVM framework,and the prototype system of code obfuscation is built.The experiments are carried out,including obfuscation effect demonstration experiment,functional test experiment for multiple sets of samples and overhead test experiment.Experiment results show that the proposed method can achieve expected effect of obfuscation,and it is effective for the protection of Internet of Things applications,and provides some ideas for the protection of Internet of Things applications.
Keywords/Search Tags:code obfuscation, LLVM, IoT application, software protection
PDF Full Text Request
Related items