使用Proguard做Java代码混淆】的更多相关文章

下载Proguard, 我下的是最新的Proguad5.2 在windows下运行bin/proguardgui.bat, 可以看见图形界面, 载入配置, 然后process. 配置文件例子 -injars 'C:\Users\MicrosoftUser\Desktop\demo.jar' -outjars 'C:\Users\MicrosoftUser\Desktop\demo-pg.jar' -libraryjars 'D:\workJava\workspace\demo\lib\Memca…
目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系映射框架 在Maven项目中 使用ProGuard 引入Proguard 插件 附一张桌面版的截图 Java代码混淆工具ProGuard 由于Java 代码的 class类很容易被反编译,为了保证知识产权有时候需要将代码进行混淆.而ProGuard就提供了混淆Java代码的方法. 简介 描述 Pro…
3月17日,网易资深安全工程师钟亚平在安卓巴士全球开发者论坛上做了<安卓APP逆向与保护>的演讲.其中就谈到了关于代码混淆的问题.现摘取部分重点介绍如下:   Java代码是非常容易反编译的,作为一种跨平台的.解释型语言,Java 源代码被编译成中间“字节码”存储于class文件中.由于跨平台的需要,这些字节码带有许多的语义信息,很容易被反编译成Java源代码.为了很好地保护Java源代码,开发者往往会对编译好的class文件进行混淆处理. 混淆就是对发布出去的程序进行重新组织和处理,使得处理…
仅做记录之用. java代码可以反编译,因此有时候要保护自己的知识产权还真得费点心思,一般来说有三个思路: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文件: 2.使用花指令,使得class文件不能反编译(利用反编译工具漏洞):安全性一般,还是有花指令破解器: 3.代码混淆,提高代码阅读成本:简单易操作,一般采用这种或者与其它方式结合: 我们项目中用到的即为代码混淆工具ProGuard,相关文章参考: http://blog.csdn.n…
[IT168 技术文档] 从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD.因此,为保护我们的劳动成果,尽可能给反编译人员制造障碍,我们可以使用Java Obfuscator(Java混淆器)保护Java的类文件. Java Obfuscator的原理就是将字节码转换为一个逻辑上的对等物,这种转换后的版本极难拆散.即使有人试图去反编译,过程将极其艰难复杂,并很难绕过转换后模糊晦涩的编码.主要的过程如下: 用一个常规编译器(比如JDK)编译J…
java代码可以反编译,特别是放在客户端的程序很用被剽窃,盗用.保护程序一般都有以下几个方法: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文件: 2.使用花指令,使得class文件不能反编译(利用反编译工具漏洞):安全性一般 3.代码混淆,提高代码阅读成本:简单易操作,一般采用这种或者与其它方式结合 以上几种方法都需要自己花时间研究代码混淆方案,或者修改代码逻辑使阅读更困难, 或者代用第三方的加密混淆工具,但是现在主流的混淆工具收费,免…
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通常情况下,反编译可以利用现有的工具jd-gui.exe或者jad.exe. (这两个反编译工具在我的资源里有下载: jd-gui.exe: http://download.csdn.net/detail/dianacody/7760019: jad.exe: http://download.csdn…
最近呢说要上线,就去找了下上线的方法...之前做过代码混淆,用的是progarud.cfg,但是呢自己反编译了之后还是无效,然后就丢着先不管了,因为实在不知道什么情况.今天来上线的时候结果总是报错,总是报proguard returned with error code 1.See console错误,到网上查了下情况,分为三种:情况1:Proguard returned with error code 1. See consoleError: C:/Documents (系统找不到指定文件)这…
简单介绍 Java代码是非常easy反编译的. 为了非常好的保护Java源码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 官网地址:http://proguard.sourceforge.net/ 原理 Java 是一种跨平台的.解释型语言,Java 源码编译成中间"字节码"存储于 class 文件里.因为跨平台的须要,Java 字节码中包…
ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理.ProGuard的主要作用就是混淆.当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 引用ProGuard官方的一段话来介绍就是: ProGuard is a free Java cla…
iOS 初探代码混淆(OC) 前言 自己做iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后做上架操作了.但是最近,客户方面提出了代码安全的要求.说是要做代码混淆,这方面的工作之前从来没有接触过.然后就上网查了一下,原来有很多应用程序都做了代码混淆.看来是我固步自封了...... 起因 使用classdump对原程序进行dump,可以dump出所有源程序的函数所有信息:源程序所有函数类型,变量全部泄露.这样的话,让攻击者,也就是黑客们了解了程序结构方便逆向.因为…
代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为.代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码.执行代码混淆的程序被称作代码混淆器.目前已经存在许多种功能各异的代码混淆器.代码混淆的主要目的是为了保护源代码,阻止反向工程.反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等.使用即时编译技术的语言,如Java.C#所编写的程序更容易受到反向工程的威胁.代码混淆的主要的方法有:将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字…
目标: 将代码混淆,也就是给第三方源代码,让他们只能运行,却看不懂代码. 用到的工具: 混淆jar的工具:proguard5.1 下载地址:http://download.csdn.net/detail/lk7688535/9625472 反编译jar的工具:xjad2.2 下载地址:http://download.csdn.net/detail/lk7688535/9625486 操作步骤: 见这篇文章:http://blog.csdn.net/zhangdaiscott/article/de…
前言     受<APP研发录>启发,里面讲到一名Android程序员,在工作一段时间后,会感觉到迷茫,想进阶的话接下去是看Android系统源码呢,还是每天继续做应用,毕竟每天都是画UI和利用MobileAPI处理Json还是蛮无聊的,做着重复的事情,没有技术的上提升空间的.所以,根据里面提到的Android应用开发人员所需要精通的20个技术点,写篇文章进行总结,一方面是梳理下基础知识和巩固知识,另一方面也是弥补自我不足之处.     那么,今天就来讲讲ProGuard代码混淆的相关技术知识…
简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 引用ProGuard官方的一段话来介绍就是:        ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It de…
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52770993 本文出自: [HansChen的博客] ProGuard简介和工作流程 PrgGuard环境配置和使用 运行PrgGuard需要以下依赖 如何运行ProGuard PrgGuard配置文件使用 Entry points的概念 会用到的指令参数说明 Modifier Class Specifications 基本指令 -basedirectory directoryna…
由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的理解和认识简要的做个笔记,有异议或者不解的,可以直接留言. 什么是ProGuard工具? ProGuard是android提供的一个免费的工具,它能够移除工程中一些没用的代码,或者使用语义上隐晦的名称来重命名代码中的类.字段和函数等,达到压缩.优化和混淆代码的功能.具体来说,使用ProGuard工具…
ProGuard之——代码混淆 2015年11月03日 21:39:40 阅读数:2756 标签: JavaProGuard 更多 个人分类: JAVA 所属专栏: Java 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/l1028386804/article/details/49622317 转载请注明出处:http://blog.csdn.net/l1028386804/article/details/49622317 1. 混淆器的选择…
由于需要将源码打包做代码混淆,选择proguard,开始使用各种问题,各种jar包版本问题,但最终成功了,记录一下,也希望能够帮助大家 在pom中添加代码: <build> <finalName>${artifactId}</finalName> <plugins> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven…
为什么要代码混淆? Android的安装文件是apk格式.APK是AndroidPackage的缩写.是由android sdk编译的工程打包生成的安装程序文件. Apk其实是zip文件,但是后缀名被改成了.apk,通过解压就可以看到其中的文件. Classes.dex和AndroidManifest.xml都可以直接看见了. Dex文件是DalvikVM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码. 先看看 AndroidM…
前言     受<APP研发录>启发,里面讲到一名Android程序员,在工作一段时间后,会感觉到迷茫,想进阶的话接下去是看Android系统源码呢,还是每天继续做应用,毕竟每天都是画UI和利用MobileAPI处理Json还是蛮无聊的,做着重复的事情,没有技术的上提升空间的.所以,根据里面提到的Android应用开发人员所需要精通的20个技术点,写篇文章进行总结,一方面是梳理下基础知识和巩固知识,另一方面也是弥补自我不足之处.     那么,今天就来讲讲ProGuard代码混淆的相关技术知识…
写这篇文章的目的 一直以来,在项目中需要进行代码混淆时每次都要去翻文档,很麻烦.也没有像写代码那样记得那么多.既然要查来查去,就不如自己捋一捋这个知识点了,被人写的终究还是别人的.所以自己去翻看了很多文章和官方文档,总结下就把这篇文章写下来了.以后方便查找和修改,也加深这个知识的理解. 前言 Android 开发中,打包避免不了各种优化,开启混淆可以很好就是其中一种优化方式.为了使你打包的 apk 尽可能小,应该在打包 apk 的时候开启代码压缩功能移除没有被使用的代码和资源.但是这和混淆有什么…
使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/article/details/37739207 这里的实现的函数,扫描指定文件夹下的jar包,然后通过sys.path.append()函数增加到jython的sys.path里面. for jar_file in scan_files("/home/jim/java_jar",postfix=&…
Android Studio(2.3.3) 在给代码混淆时,提示: Warning:Exception while processing task java.io.FileNotFoundException: /Users/shengjie/AndroidProject/hengweather/app/build/intermediates/proguard-rules/release/aapt_rules.txt (No such file or directory) 简单说就是找不到"aap…
要在 NetBeans 中开发一般 Java 应用程序时利用 Allatori 进行代码混淆,设置比 IntelliJ IDEA 稍微简单一点,首先在 NetBeans 项目所在硬盘目录内创建一个名为 allatori 的子目录,将 Allatori 自己的 jar 文件都复制到这个子目录下.然后在项目所在目录内创建一个名为 config-allatori.xml 的文件,即 Allatori 自己的混淆配置文件,其内容可参考如下,作为模板也可以: <?xml version="1.0&q…
使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法. 首先在 IDEA 的 Module 所在硬盘目录内创建一个名为 allatori 的子目录,将 Allatori 自己的 jar 文件都复制到这个子目录下.然后在 IDEA 的 Module 所在目录内创建两个 XML 文件,一个是 Allatori 自己的混淆配置文件,命名为 config-allatori.xml:另一个是用于 Ant 构…
我想修改build.gradle配置 可是这个文件明确写了// GENERATED FILE! DO NOT EDIT!可是还是试了试: if (cdvReleaseSigningPropertiesFile) { signingConfigs { release { // These must be set or Gradle will complain (even if they are overridden). keyAlias = "" keyPassword = "…
整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: 如果是新APP则创建,如果已经有了选择就行: - Key store password: ******* - Key alias(别名): 自定义 - 如果是新创建的文件需要选择时间,整个25年足够用了,公司信息填上就OK - 下一步后选择release就开始打包 3. Android Studi…
为了防止代码被反编译,因此需要加入混淆.混淆也可以通过第三方进行apk混淆,也可以用android中的proguard进行混淆. 混淆步骤: 1.配置混淆文件,名字可以随意,在这里使用proguard-android,格式为txt. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -dontpreverif…
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码.为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆. 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功…