{"title":"基于动态入口点修改的Android控制流混淆","authors":"Xueyi Yang, Lingchen Zhang, Cunqing Ma, Zongbin Liu, Ping Peng","doi":"10.1109/CSCS.2019.00054","DOIUrl":null,"url":null,"abstract":"With over 85% market share, Android remains the most popular mobile device platform and incurs endless attacks to steal application developers' intellectual property. Code obfuscation techniques have been conventionally used to prevent application reverse engineering or tampering, and to protect intellectual property. However, existing control-flow obfuscation techniques are not sufficiently efficient and complex to resist the growing reverse engineering techniques. This paper presents a new control-flow obfuscation scheme for Android apps at the Dalvik bytecode level. Our proposed scheme goes beyond the common control-flow obfuscation schemes and make it nearly impossible for static analysis to determine the actual program control flows. Firstly, our scheme transforms the original Dalvik bytecode to redirect its control flow transfers. The redirection is implemented by replacing the invoked method of an invocation instruction to another method. Then our scheme dynamically recovers the control transfers in the transformed code to the original control transfer targets. Hence the transformed code produces the same execution results with the original code. The recovery is implemented by dynamically modifying the entry points of the Dalvik methods during app running. Those entry points are maintained by Android Runtime system. Our analysis and evaluation show that the scheme can implement effective obfuscation to hinder reverse engineering and code analysis with reasonable size, execution time, and execution memory overheads.","PeriodicalId":352411,"journal":{"name":"2019 22nd International Conference on Control Systems and Computer Science (CSCS)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Android Control Flow Obfuscation Based on Dynamic Entry Points Modification\",\"authors\":\"Xueyi Yang, Lingchen Zhang, Cunqing Ma, Zongbin Liu, Ping Peng\",\"doi\":\"10.1109/CSCS.2019.00054\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"With over 85% market share, Android remains the most popular mobile device platform and incurs endless attacks to steal application developers' intellectual property. Code obfuscation techniques have been conventionally used to prevent application reverse engineering or tampering, and to protect intellectual property. However, existing control-flow obfuscation techniques are not sufficiently efficient and complex to resist the growing reverse engineering techniques. This paper presents a new control-flow obfuscation scheme for Android apps at the Dalvik bytecode level. Our proposed scheme goes beyond the common control-flow obfuscation schemes and make it nearly impossible for static analysis to determine the actual program control flows. Firstly, our scheme transforms the original Dalvik bytecode to redirect its control flow transfers. The redirection is implemented by replacing the invoked method of an invocation instruction to another method. Then our scheme dynamically recovers the control transfers in the transformed code to the original control transfer targets. Hence the transformed code produces the same execution results with the original code. The recovery is implemented by dynamically modifying the entry points of the Dalvik methods during app running. Those entry points are maintained by Android Runtime system. Our analysis and evaluation show that the scheme can implement effective obfuscation to hinder reverse engineering and code analysis with reasonable size, execution time, and execution memory overheads.\",\"PeriodicalId\":352411,\"journal\":{\"name\":\"2019 22nd International Conference on Control Systems and Computer Science (CSCS)\",\"volume\":\"33 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 22nd International Conference on Control Systems and Computer Science (CSCS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CSCS.2019.00054\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 22nd International Conference on Control Systems and Computer Science (CSCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSCS.2019.00054","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Android Control Flow Obfuscation Based on Dynamic Entry Points Modification
With over 85% market share, Android remains the most popular mobile device platform and incurs endless attacks to steal application developers' intellectual property. Code obfuscation techniques have been conventionally used to prevent application reverse engineering or tampering, and to protect intellectual property. However, existing control-flow obfuscation techniques are not sufficiently efficient and complex to resist the growing reverse engineering techniques. This paper presents a new control-flow obfuscation scheme for Android apps at the Dalvik bytecode level. Our proposed scheme goes beyond the common control-flow obfuscation schemes and make it nearly impossible for static analysis to determine the actual program control flows. Firstly, our scheme transforms the original Dalvik bytecode to redirect its control flow transfers. The redirection is implemented by replacing the invoked method of an invocation instruction to another method. Then our scheme dynamically recovers the control transfers in the transformed code to the original control transfer targets. Hence the transformed code produces the same execution results with the original code. The recovery is implemented by dynamically modifying the entry points of the Dalvik methods during app running. Those entry points are maintained by Android Runtime system. Our analysis and evaluation show that the scheme can implement effective obfuscation to hinder reverse engineering and code analysis with reasonable size, execution time, and execution memory overheads.