社区
Java EE
帖子详情
代码混淆指的是什么?有哪些
研发小伙
2013-10-31 12:14:29
小弟刚入职不久,今天项目经理让我学习一下代码混淆。
我懵了,什么是代码混淆我都不知道。谁能帮忙介绍,
最好详细一点。。
能有一个简单的例子最好
拜托了。。
...全文
1398
5
打赏
收藏
代码混淆指的是什么?有哪些
小弟刚入职不久,今天项目经理让我学习一下代码混淆。 我懵了,什么是代码混淆我都不知道。谁能帮忙介绍, 最好详细一点。。 能有一个简单的例子最好 拜托了。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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循环,将循环改写成递归,精简中间变量,等等。 打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。 代码混淆器也会带来一些问题。主要的问题包括: 被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。 对于支持反射的语言,代码混淆有可能与反射发生冲突。 代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。 个人感觉,用处就两点 第一,去除了一些无用的代码,代码工程量精简了。 第二,让别人反编译出来的代码很难被读懂。。
反
混淆
反编译反加密C#DLL文件解密工具.
用此工具反
混淆
后 然后用reflector软件反编译下就能还原任何经过
混淆
后的
代码
百度下reflector网上有下载
com.google.gson.Gson(4个jar包)莫名被加了积分,回归0
gson-1.5,log4j-1.2.15,slf4j-api-1.6.0,slf4j-log4j12-1.6.1
代码
混淆
是什么?
代码
混淆
的方法有哪些?
本文主要给大家盘点
代码
混淆
的一些基础知识,希望能对大家有所帮助!
代码
混淆
的原理是什么?常见
代码
混淆
方法介绍
混淆
就是对发布出去的程序进行重新组织和处理,使得处理后的
代码
与处理前
代码
完成相同的功能,而
混淆
后的
代码
很难被反编译,即使反编译成功也很难得出程序的真正语义,通过进行
代码
混淆
可以有效提升应用被逆向破解的难度。移动应用
代码
安全非常重要,
代码
逆向会导致
代码
逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行
代码
混淆
保护。:对字节码进行优化,移除无用的
指
令。Java
代码
混淆
,针对一些逆向的IDE环境是有一定效果的,可以考虑做一些中文
混淆
,这个很容易实现且有效果。
代码
混淆
的原理是什么?常见
代码
混淆
方法介绍
本文主要想你介绍
代码
混淆
的原理,常见
代码
混淆
方法,欢迎查阅~移动应用
代码
安全非常重要,
代码
逆向会导致
代码
逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行
代码
混淆
保护。本文主要介绍了
代码
混淆
的原理、方法、以及常见
代码
混淆
的方式和工具。
Java EE
67,549
社区成员
225,860
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章