社区
Java EE
帖子详情
代码混淆指的是什么?有哪些
研发小伙
2013-10-31 12:14:29
小弟刚入职不久,今天项目经理让我学习一下代码混淆。
我懵了,什么是代码混淆我都不知道。谁能帮忙介绍,
最好详细一点。。
能有一个简单的例子最好
拜托了。。
...全文
1366
5
打赏
收藏
代码混淆指的是什么?有哪些
小弟刚入职不久,今天项目经理让我学习一下代码混淆。 我懵了,什么是代码混淆我都不知道。谁能帮忙介绍, 最好详细一点。。 能有一个简单的例子最好 拜托了。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
非著名架构师
2021-07-29
打赏
举报
回复
有界面,字节码级别,完全离线的 java混淆工具,关注我了解
tony4geek
2013-11-01
打赏
举报
回复
混淆 之后 看起来比较麻烦。
SADSDSDDASDASD
2013-11-01
打赏
举报
回复
你找一个商业软件 JAVA做到 反编译之后 你是根本看不懂的 就是被混淆了 这你 你可以找视频看看
teemai
2013-10-31
打赏
举报
回复
字面意思就是把容易阅读的源代码混淆后,让人读不懂。主要目的是防止别人反编译你的代码。贴个搜来的仔细读一下: 从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD。因此,为保护我们的劳动成果,尽可能给反编译人员制造障碍,我们可以使用Java Obfuscator(Java混淆器)保护Java的类文件。 Java Obfuscator的原理就是将字节码转换为一个逻辑上的对等物,这种转换后的版本极难拆散。即使有人试图去反编译,过程将极其艰难复杂,并很难绕过转换后模糊晦涩的编码。主要的过程如下: 用一个常规编译器(比如JDK)编译Java源代码运行混淆器,在受保护的环境下生成编译类文件。最后生成的会是一个不同的输出文档,也许扩展名也会不同。 这个被重命名为.class file的文件在功能上与原字节码是对等的,由于虚拟机仍然可以对其进行解译,因此对性能不会产生影响。 以下是一些可用来混淆(obfuscate)Java字节码的工具: Zelix KlassMaster Zelix KlassMaster是一款用Java写的实用工具,能读取和修改Java类文件,可以运行在任何支持1.1.6版Java虚拟机的平台上。 下载:http://www.zdnetindia.com/downloads/info/898255.html Cinnabar Canner Canner通过创建一个原生Windows可执行文件(EXE文件)保护你的代码不被逆向工程反编译,这个可执行文件包含了你的应用程序类和资源的全部加密版本,只有在被JVM调用到内存中时才处于非加密状态。 网站:http://www.cinnabarsystems.com/canner.html 下载:http://www.cinnabarsystems.com/download.html Jmangle Java类粉碎机 Jmangle是用来阻止反编译Java程序,降低盗版的软件,开发者可用其粉碎类文件中的符号。 网站:http://www.elegant-software.com/software/jmangle/ 下载:http://www.elegant-software.com/software/jmangle/download.html RetroGuard JavaGuard是一款通用的字节码混淆器,用来无缝融入你的日常构建和测试过程中,使得你辛苦编写宝贵的Java代码更加安全。 网站:http://java-source.net/open-source/obfuscators/javaguard JODE JODE是一款含Java解码器和优化器的java包。 网站:http://java-source.net/open-source/obfuscators/jode 最后要说的是,你也可使用其他几款类似的实用工具,这些工具运用许多不同的方法达到了相同的目标。他们也有共同之处,就是允许通过不同的过程转换生成.exe文件,将.class和.jar文件模糊化。Google Directory上有一张它们的综合列表: http://directory.google.com/Top/Computers/Programming/Languages/Java/Development_Tools/Obfuscators/(译/Wilson)
失落夏天
2013-10-31
打赏
举报
回复
维基百科: 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。 将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。 重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。 打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。 代码混淆器也会带来一些问题。主要的问题包括: 被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。 对于支持反射的语言,代码混淆有可能与反射发生冲突。 代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。 个人感觉,用处就两点 第一,去除了一些无用的代码,代码工程量精简了。 第二,让别人反编译出来的代码很难被读懂。。
项目管理专题-何为项目及项目管理
每个公司都存在为某些特定的目标而有组织的活动即运作或项目,但在实际工作中,很多人把项目与公司的日常运营
混淆
一谈,也无法区别项目与运营,导致无法判断什么样的项目为成功项目,不能真正理解项目目标和制约因素,更无法通过引入项目管理知识体系,不断提高公司项目成功率,本次课程作为项目管理知识体系基础入门课程,主要分享以下内容: 1、在公司中什么的工作才能叫做项目?2、项目与日常工作的区别以及如何从项目四大特性来判断一个工作是否项目?3、项目工作与职能部门日常工作的管理方式有哪些异同?4、成功的项目概率为啥这么低?项目存在哪些制约因素?5、何为成功的项目,作为项目经理,如何平衡项目三种目标?6、何为项目管理?项目管理发展历程? 为了更好的学习本课程并达到良好的效果,建议同时学习智慧城市《售前管理》、《SCRUM 敏捷开发》、《行业方案》和《城市大脑》系列相关课程,并请持续关注后续项目管理系列课程,谢谢。
代码
混淆
是什么?
代码
混淆
的方法有哪些?
本文主要给大家盘点
代码
混淆
的一些基础知识,希望能对大家有所帮助!
代码
混淆
的原理是什么?常见
代码
混淆
方法介绍
混淆
就是对发布出去的程序进行重新组织和处理,使得处理后的
代码
与处理前
代码
完成相同的功能,而
混淆
后的
代码
很难被反编译,即使反编译成功也很难得出程序的真正语义,通过进行
代码
混淆
可以有效提升应用被逆向破解的难度。移动应用
代码
安全非常重要,
代码
逆向会导致
代码
逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行
代码
混淆
保护。:对字节码进行优化,移除无用的
指
令。Java
代码
混淆
,针对一些逆向的IDE环境是有一定效果的,可以考虑做一些中文
混淆
,这个很容易实现且有效果。
Android
混淆
你了解多少?
在 Android 日常开发过程中,
混淆
是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些
代码
混淆
的基本操作。那么,
混淆
到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的"独特"魅力。 ##1
混淆
简介
代码
混淆
(Obfuscated code)是将程序中的
代码
以某种规则转换为难以阅读和理解的
代码
的一种行为。
混淆
的好处...
聊聊如何进行
代码
混淆
前言 什么是
代码
混淆
代码
混淆
,是
指
将计算机程序的
代码
,转换成一种功能上等价,但是难于阅读和理解的形式的行为。
代码
混淆
常见手段 1、名称
混淆
将有意义的类,字段、方法名称更改为无意义的字符串。生成的新名称越短,字节
代码
越小。在名称
混淆
的字节
代码
中,包,类,字段和方法名称已重命名,并且永远不能恢复原始名称。不幸的是,控制流程仍然清晰可见。故而需要流
混淆
2、流
混淆
用于if, switch, while,for等关键字,对字节码进行细微的修改,模糊控制流,而不改变
代码
在运行时的行为。通常情况下,选择
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章