代码混淆技术是什么(代码混淆算法原理及工具)

移动应用代码安全非常重要,代码逆向会导致代码逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行代码混淆保护。本文主要介绍了代码混淆的原理、方法、以及常见代码混淆的方式和工具。

一、代码混淆的原理

代码混淆是将计算机程序的代码,转换成功能上等价,但是难于阅读和理解形式的行为。混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义,通过进行代码混淆可以有效提升应用被逆向破解的难度。

二、代码混淆的方法

字符串加密:对应用程序中使用到的字符串进行加密,防止通过IDA等工具获取关键词定位核心业务代码;

类名、方法名混淆:将代码中类名、方法名、属性名替换为无意义符号,增加代码逆向难度;

程序结构混淆加密:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低。

三、常见的代码混淆方式

常见的代码混淆方式包括Java代码混淆、C/C++代码混淆以及h5 脚本混淆等。

(1)Java代码混淆

Java代码是比较容易反编译,为了保护Java源代码,开发者通常会对编译好的class文件进行混淆处理。ProGuard就是一个混淆代码的开源项目,能够对字节码进行混淆、缩减体积、优化等处理。

Proguard处理流程包含压缩、优化、混淆、预检四个主要环节,如下图所示:

代码混淆技术是什么(代码混淆算法原理及工具)

压缩:检测并移除代码中无用的类、字段、方法和特性(Attribute);

优化:对字节码进行优化,移除无用的指令。优化代码,非入口节点类会加上private/static/final,没有用到的参数会被删除,一些方法可能会变成内联代码;

混淆:使用a、b、c、d这样简短而无意义的名称,对类、字段和方法进行重命名;

预检:在Java平台上对处理后的代码进行预检,确保加载的class文件是可执行的。

Java代码混淆,针对一些逆向的IDE环境是有一定效果的,可以考虑做一些中文混淆,这个很容易实现且有效果。混淆前后效果如下图:

代码混淆技术是什么(代码混淆算法原理及工具)

(2)C/C++代码混淆

下图为C++代码的混淆,保护之后控制流大幅度伪造,逆向难度非常高。当然控制流伪造也会影响运营效率,所以一般也只是对核心的一些功能做保护。

代码混淆技术是什么(代码混淆算法原理及工具)

混淆的过程中添加的一些字串的保护如下图:

代码混淆技术是什么(代码混淆算法原理及工具)

介绍一个c/c++代码混淆工具,逆向对抗利器—LLVM。LLVM不仅仅提供混淆实现,通过多重Optimize(优化器),实现多种效果,例如代码控制流扁平化、虚假控制流、字符串加密、符号混淆、指令替换等。

代码混淆技术是什么(代码混淆算法原理及工具)

(3)H5 脚本混淆

H5混淆是指从JS的语法和逻辑上进行混淆。H5脚本混淆很多的IDE环境均可配置,这里我不做详细介绍。H5脚本混淆主要提供字符串加密、混淆、去log、变量名处理、压缩、函数名处理、平台识别、防篡改等功能。保护前后区别如下:

代码混淆技术是什么(代码混淆算法原理及工具)

代码混淆可以提升逆向分析的难度,但是并不能从跟不上解决逆向破解的问题。开发者可以对应用进行代码混淆,同时配合移动应用加固,以提升应用的安全等级。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人,不代表IT壹频道。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。转载请注明出处:https://www.1pindao.com/baike/18338.html

(0)
上一篇 2022年 12月 13日 14:31:10
下一篇 2022年 12月 13日 14:46:09

相关推荐

  • 大屏手机推荐2022(7寸以上大屏手机排行榜)

    手机现在在我们生活中扮演着非常重要的角色,除了日常的打接电话发信息外,各种游戏、追剧的娱乐活动也越来越丰富,特别是在当下,宅家追剧也是很多人的必备选项,那今天就给大家推荐几款追剧“神器”——大屏手机。 vivo X Note vivo X Note采用了一块7英寸三星AMOLED曲面屏,同时采用最新的E5基材,分辨率为2K,像素密度高达485ppi,支持10…

    2022年 12月 2日 百科知识
    509
  • 三线图怎么制作(word三线表制作方法)

    通常来讲,三线表只有3条线,即顶线、底线和栏目线(注意:表两侧没有竖线),其中顶线和底线为粗线,栏目线为细线。在论文写作中,表格格式一般要求是三线表格,这样是较为规范和正式。 一、准备表格 1.插入表格:鼠标点击【插入】→点击【表格】→鼠标移动选中需要的行列数,点击一下即可在文档中插入一张空表: 2.插入表格效果: 3.填充数据: 二、制作三线表格 无框线效…

    2022年 12月 12日 百科知识
    221
  • 好先生多少集大结局(好先生总集数及更新时间)

    电视剧《好先生》讲述了旅欧米其林三星厨师陆远,因一场肇事车祸携挚友女儿回国,与新欢旧爱及一系列的人事产生纠葛的故事。下面为你介绍《好先生》哪个台播出、更新时间及总共多少集。 该剧由李潇、于淼、张英姬编剧,张晓波执导,孙红雷、江疏影、王耀庆、车晓主演,张艺兴、关晓彤特别出演。 《好先生》在哪个台播出、更新时间、总共多少集 《好先生》将于5月31起在浙江卫视、江…

    2022年 12月 18日
    327
  • mp4无法播放怎么办(mp4视频损坏修复工具及操作步骤)

    最近,小编经常在网上看到关于手机、相机拍摄的MP4视频莫名损坏、无法打开的求助帖,如以下截图: 随着智能设备拍摄功能的不断强大,随着抖音、快手、B站等视频网站的不断火爆,拍摄成本逐渐降低,越来越多的人喜欢用视频记录我们的生活。 但在拍摄视频时也可能遇到一些突发情况,如手机没电断电终止拍摄、视频文件传输中断等,拍摄、录制的视频,提示文件损坏、不能播放等情况,还…

    2022年 12月 15日 百科知识
    170
  • 常用字体有哪些(常用字体大全对照表)

    汉字的创造和演变,以及在小篆的基础上,总结出的创造汉字的六个基本条例——六书。六书又被分为“四体二用”,四体是指象形、指事、会意、形声四种汉字的形体结构,这是汉字的基础造字法,转注和假借则是汉字的特殊使用方法,叫做二用。 除了六书中对汉字的总结以外,拥有几千年历史的中国汉字,还有哪些有趣的发展呢? 我们今天熟知的汉字结构,并非从诞生伊始就固定下来了,而是经过…

    2022年 12月 30日 百科知识
    136
  • 网店分销是什么意思(电商分销玩法攻略)

    当前对于一个需要电商推广的人眼中,宣传推广电商运营的好处和未来的发展是思想上的正确觉悟。不过,我们更应该需要理性地看待风口的运作,现在有三种操作方式——多人参团、多人分配和社会群售,在这中间多人分配的分销模式是通过平台来引进用户,通过人与人发展产生下级分销商。 一、为什么选择分销这样的手段? 如今在市场环境影响下不断变化,产品的流量越来难以控制,企业商品成本…

    2022年 12月 28日
    145