没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:胡涛|2022-10-13 10:02:36.130|阅读 322 次
概述:本文主要想你介绍代码混淆的原理,常见代码混淆方法,欢迎查阅~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
移动应用代码安全非常重要,代码逆向会导致代码逻辑被获取,进一步导致控制流被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、变量名处理、压缩、函数名处理、平台识别、防篡改等功能。保护前后区别如下:
代码混淆可以提升逆向分析的难度,但是并不能从跟不上解决逆向破解的问题。开发者可以对应用进行代码混淆,同时配合移动应用加固,以提升应用的安全等级。
注:文章来源于网上采集整理,如有侵权,请联系我们核实修改。
欢迎体验更多加密解密相关软件或者加入我们技术交流群(766135708)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@defefr.cn
Parasoft Virtualize通过智能变更顾问、自动化工作流和全面版本控制三大核心功能,为企业提供了高效的虚拟化测试环境管理方案。它不仅大幅降低了维护成本和工作量,还确保了虚拟服务与真实环境的实时同步,显著提升了测试效率和可靠性。
Parasoft SOAtest凭借其精准消息推送、智能监听和高效依赖隔离的能力,为响应式微服务架构的测试提供了强有力的支持。它不仅解决了异步通信复杂、依赖服务多等测试难题,还通过模拟真实场景和简化测试环境,显著提升了测试效率和覆盖率。
作为一款面向全组织的CAD文件可视化与交互软件,SpinFire Insight支持多种主流2D和3D CAD格式,无需单独购买繁杂的CAD软件授权,即可实现对CAD模型的统一查看、分析和沟通,让企业内部及外部团队之间的跨部门、跨公司协作更加顺畅高效。
用于创建、存储和传输文档的 FastReport 产品线已通过新的开发进行了扩展。自 2025 年 5 月起,该产品线包含 Cloud、Corporate Server 和 Publisher 等产品。在本文中,我们将详细介绍这些服务如何满足不同的用户需求,以便您选择最符合您需求的解决方案。
新一代软件保护系统,将保护后的代码放到虚拟机中运行,代码反编译软件反破解。
WinLicenseWinLicense强大的软件保护|先进的许可证管理|安全发布软件的试用版和正式版
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@defefr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢