The invention provides a flat structure method for mobile code, which includes the following steps: dividing all the instructions contained in the first basic block of a function into several second basic blocks, and reordering multiple second basic blocks through conditional instructions and jump instructions. The invention provides a flat structure method for mobile code, which cuts functions as operation objects and takes instructions as granularity, and combines them into new basic blocks. By using conditional instructions and jump instructions, the up and down order of new basic blocks is disrupted and the jump is replaced. Thus, the compiler's intermediate code LLVM IR can be structurally flattened, and the original control flow can be platform-based and randomized, which can increase the reverse complexity of the expansion code and confront IDA Pro. The code sequence of the context after the randomization of the control flow is not the final execution order, which increases the difficulty of human reading.
【技术实现步骤摘要】
一种用于移动代码的结构扁平方法和系统
本专利技术涉及移动终端应用安全
,尤其涉及一种插件式的扫描配置处理方法和系统。
技术介绍
近年来,随着智能手机的普及以及智能手机操作系统的发展,日常生活中手机成为了人们不可分离的一部分。而现今的手机已经不仅仅是一个通信的工具,通信已经成为了如今手机最基本的功能,娱乐功能以及生活工具已经成为了一部手机必不可少的功能。但随着移动互联网的快速发展,应用的安全问题不断涌现出来,越来越多的应用遭到黑客的攻击被破解。在App保护解决方案领先供应商Arxan公布的年度移动App安全报告中显示,在排名前100位的付费苹果iOS应用当中,有87%的App已被黑客破解,安卓的更是不计其数,各种盗版软件遍布。于是越来越多的安卓应用开发者将核心代码由Java层转到Native层,但是有能力对苹果或者安卓应用进行代码保护的公司很少,一些开源加固方法只能对安卓Java代码进行加固,对苹果应用进行方法名混淆等,这些加固手段加固能力薄弱,无法抵御一些反编译软件和逆向人员的逆向分析。对于现有的移动应用代码混淆技术,往往只做了简单的混淆,例如主流的移动终端系统苹果系统和安卓系统:1.安卓系统许多应用往往只对Java代码做了混淆,但是Java代码混淆几乎没有效果,强大的反编译软件可以直接进行反编译;2.部分安卓系统应用对Native层代码只做了简单的字符串加密等的数据混淆,没有做控制流混淆,代码结构依然清晰不变,在IDAPro等软件中仍然可以轻松阅读,加固力度不大;3.苹果系统应用大多数应用几乎没有代码保护,或者只对方法名做混淆,这种代码在IDAPr ...
【技术保护点】
1.一种用于移动代码的结构扁平方法,其特征在于,包括以下步骤:将函数内的所有第一基本块包含的指令进行分割,组成多个第二基本块;以及通过条件指令和跳转指令,将所述多个第二基本块重新排序。
【技术特征摘要】
1.一种用于移动代码的结构扁平方法,其特征在于,包括以下步骤:将函数内的所有第一基本块包含的指令进行分割,组成多个第二基本块;以及通过条件指令和跳转指令,将所述多个第二基本块重新排序。2.根据权利要求1所述的用于移动代码的结构扁平方法,其特征在于,在将函数内的所有第一基本块包含的指令进行分割,组成多个第二基本块的所述步骤中,根据配置,以固定指令数为组将所述函数内的所有第一基本块的指令进行分割。3.根据权利要求1所述的用于移动代码的结构扁平方法,其特征在于,通过条件指令和跳转指令,将所述多个第二基本块重新排序的所述步骤包括:记录多个第二基本块的跳转执行顺序,为每个所述第二基本块随机分配一个Tag值;构造While-Switch结构,将每个所述第二基本块放到一个随机顺序的Case语句内;设置全局Flag值;通过所述全局Flag值来控制多个Case语句的执行顺序。4.根据权利要求3所述的用于移动代码的结构扁平方法,其特征在于,在记录多个第二基本块的跳转执行顺序,为每个所述第二基本块随机分配一个Tag值的所述步骤之后,还包括:将所述多个第二基本块对应的多个Tag值随机排序。5.根据权利要求3所述的用于移动代码的结构扁平方法,其特征在于,在通过所述全局Flag值来控制多个Case语句的执行...
【专利技术属性】
技术研发人员:胡文君,
申请(专利权)人:卓望数码技术深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。