首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jar在使用ProGuard进行模糊处理后无法运行

jar是Java Archive的缩写,是一种用于存储Java类文件、资源文件和元数据的文件格式。ProGuard是一个Java字节码优化和混淆工具,可以对Java代码进行压缩、优化和混淆,以减小应用程序的大小并增加安全性。

当使用ProGuard对jar文件进行模糊处理后,可能会导致无法运行的问题。这可能是由于ProGuard对代码进行了过度优化或混淆,导致某些关键代码被删除或无法正确执行。

要解决这个问题,可以尝试以下几个步骤:

  1. 检查ProGuard的配置文件:确保ProGuard的配置文件中没有过度优化或混淆的设置。可以尝试调整配置文件,减少优化和混淆的程度,以确保关键代码不会被删除或无法正确执行。
  2. 排除关键类或方法:如果确定某些类或方法是导致无法运行的原因,可以在ProGuard的配置文件中添加排除规则,以避免对这些类或方法进行优化或混淆。
  3. 调试和日志记录:在运行时,可以启用ProGuard的调试和日志记录功能,以便查看详细的优化和混淆过程。通过分析日志,可以确定哪些代码被删除或修改,从而找到导致无法运行的原因。
  4. 重新编译和混淆:如果以上步骤无法解决问题,可以尝试重新编译和混淆代码。确保使用正确的编译器和混淆工具,并按照正确的顺序进行操作。

需要注意的是,以上步骤仅供参考,具体解决方法可能因具体情况而异。如果问题仍然存在,建议查阅ProGuard的官方文档或寻求相关技术支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

聊聊如何进行代码混淆加固

故而需要流混淆 2、流混淆 用于if, switch, while,for等关键字,对字节码进行细微的修改,模糊控制流,而不改变代码在运行时的行为。...比如项目根目录,形如下图 2、解压安装包,双击运行 ipa编译出来,或者ipa进行修改,需要进行重新签名才能安装到测试手机,或者提交app store供apple 商店审核上架。...ipaguard有签名和重签名功能,能在windows,mac,和linux上运行。在对ipa进行混淆和保护,可以直接通过签名安装到测试手机,非常的方便测试检查混淆的效果。...第二阶段发布阶段 当测试ok,运行没问题把测试证书和描述文件改成发布证书和描述文件,点击处理产生最终的ipa,发布类型无法安装到手机,只能提交上架发布使用 注意⚠️:描述文件和ipa里面的bundle...打开要处理的IPA文件 第一项,填写我们需要重签名的 ipa 路径(当前导入的路径跟导出的路径) ​ 设置签名使用的证书和描述文件 测试配置阶段使用开发测试证书,方便安装到手机测试混淆ipa是否工作正常

28420

聊聊如何进行代码混淆

故而需要流混淆 2、流混淆 用于if, switch, while,for等关键字,对字节码进行细微的修改,模糊控制流,而不改变代码在运行时的行为。...源代码有时会因为反编译错误而变得更加模糊 其他 异常混淆、字符串加密混淆、引用混淆等 代码混淆的作用 不仅仅是保护代码,它也有精简编译程序大小的作用。...使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法 官网地址:https://www.guardsquare.com/en/products/proguard 3、allatori...-- 输入和输出jar配置,out指向的是加密jar --> <jar in="${project.build.finalName}.jar" out="${project.build.finalName...他提供了很多示例 [d4e20056006ae7d4d39bcb2cbe66f78d.png] 因为allatori没有提供插件,其实我们使用的时候,可以把他制作成一个maven插件。

3.2K40

android混淆那些坑

预检(Preveirfy): java平台上对处理的代码进行预检。...->Output >jars、Library jars Proguard使用library jars来辅助对input jars类之间的依赖关系进行解析, library jars自身不会被处理,也不会被包含到...Entry Point是ProGuard过程中不会被处理的类或方法。再压缩的步骤中,ProGuard或从上述的EntryPoint开始递归遍历,搜索那些类和类成员使用。...在混淆的步骤中,ProGuard会对非EntryPoint的类和方法进行重命名。 Proguard使用 Proguard工具目录结构 ?...主要有三步骤: 基本混淆 # 代码混淆压缩比,0~7之间,默认为5,一般不下需要修改 -optimizationpasses 5 # 混淆时不使用大小写混合,混淆的类名为小写 # windows下的同学还是加入这个选项吧

3.1K60

Maven - 代码混淆proguard-maven-plugin vs 代码加密classfinal

> 这个示例配置会使用自定义的ProGuard配置文件,并将混淆JAR文件输出到指定目录。...目录,例如/tomcat/lib(可为空,多个用","分割) -pwd 加密密码,如果是#号,则使用无密码模式加密 -code 机器码,绑定的机器生成,加密只可在此机器上运行...机器绑定 机器绑定只允许加密的项目特定的机器上运行需要绑定的机器上执行以下命令,生成机器码 java -jar classfinal-fatjar.jar -C 加密时用-code指定机器码。...启动加密jar 加密的项目需要设置javaagent来启动,项目启动过程中解密class,完全内存解密,不留下任何解密的文件。...不加pwd参数直接启动,启动控制台里输入密码,推荐使用这种方式 机器绑定只允许加密的项目特定的机器上运行 需要绑定的机器上执行以下命令,生成机器码 java -jar classfinal-fatjar.jar

31600

Android开发笔记(七十三)代码混淆与反破解

代码混淆的规则在proguard-project.txt中编写,然后project.properties补充规则文件的路径,如下所示: proguard.config=${sdk.dir}/tools...因此为了防止自己辛辛苦苦做的APP被别人山寨,就得代码中加上防二次打包的处理。...具体说来,首先开发者在打包前记下签名证书的MD码,然后代码中获取app安装的签名,对比两个签名的MD值是否一致,如果不一致就退出app,这样就能防止被二次打包了。...花指令(junk code)意思是程序中加入一些与业务无关的指令,希望反汇编的时候出错,让破解者无法正确地进行反汇编工作,从而迷失方向。...jni的介绍参见《Android开发笔记(六十九)JNI实战》 2、把核心业务放到后端服务器上运行,app与服务器之前通过http接口通信。 3、使用第三方加密平台给app做加壳处理

1.8K40

Android中的Proguard介绍

而这种方式的类,我们无法预见哪些类必须使用原始名称来保留,例如Class的名称是从配置文件中读取的。 因此,我们需要在ProGuard的配置文件中进行配置。而最简单的配置则是通过-keep选项。...使用(Usages) 如果想要执行ProGuard,只需: java -jar proguard.jar options ......你可以ProGuard安装的lib目录下找到proguardJar包。或者,把bin目录包含到命令行脚本中去。...一般我们都会把大多数的Options添加到一个配置文件中,如myconfig.pro,然后调用: java -jar proguard.jar @myconfig.pro 你也可以命令行参数再添加其他的参数...,例如: java -jar proguard.jar @myconfig.pro -verbose 配置文件中,我们可以通过##字符来进行注释。

65030

Proguard 常用规则

例如,处理由JDK 1.2或更早版本编译的库时,您可能希望保留合成类$方法的名称。 所以当处理使用处理过的库的应用程序时,混淆器可以再次检测到它(尽管ProGuard本身不需要这个)。...可选的过滤器是一个正则表达式; ProGuard不打印关于具有匹配名称的类的警告。忽略警告可能是危险的。 例如,如果处理确实需要未解决的类或类成员,则处理的代码将无法正常工作。...例如,如果处理确实需要未解决的类或类成员,则处理的代码将无法正常工作。 只有知道自己在做什么的情况下才使用此选项!...-dump [filename] 指定在任何处理写出类文件的内部结构。结构打印到标准输出或给定文件。 例如,可能希望写出给定jar文件的内容,而不进行处理。 参考上面说的 dump.txt。...如果处理的代码崩溃,那么在运行时获得实用提示可能非常有用,因为它仍然缺少一些反射配置。 例如,代码可能是使用GSON库序列化类,可能需要一些配置。通常可以将控制台的建议复制/粘贴到配置文件中。

1.6K20

Android 代码混淆机制

但是在手机上运行的时候,需要调用so文件的时候,就会报某某方法无法找到。这个时候就需要用到proguard-project.txt。...还有一种情况是可以正常打包出APK文件,但是不一定能运行,能运行也会在某一步上出错,这种情况一般是因为把代码中不可混淆的字段或文件给混淆了比如引入的jar包和so文件等,导致程序功能变化。...二、通过ProGuard工具混淆代码 如果你想把你的Android项目打包成jar文件然后再混淆,那这种方法比较适合 下载运行ProGuard工具 1.首先到http://proguard.sourceforge.net.../下载proguard,目前我下载并使用的是proguard5.1 2.解压proguard5.1,执行 bin目录下的proguardgui.bat文件打开ProGuard工具 从Android项目到处...检测测试混淆jar文件 如果混淆过程中出错,可以View configuration查看错误日志,然后直接通过文本编辑器打开混淆配置文件,然后进行相应修改。

1.4K20

“码码”再也不用担心我的代码被反编译了!

目前最新版本:proguard4.10版本(官方) 测试使用的是:proguard3.8版本(汉化版) 它处理的顺序是:先压缩,然后优化,最后才进行混淆。...此.jar 用于代码混淆测试 (2)运行proguardgui.jar文件。 或者右键选择java(TM)运行。打开proguard图形界面工具。...对于复杂的混淆来说,图形界面中没有的属性,就要参考proguard提供的使用文件,按照自己想要的要求.pro文件中配置了。其实proguard使用关键就是编写这个配置文件。...最终得到com.stkj.action.out.jar,可以会反编辑软件打开混淆的.jar进行查看。如下是打开一个.class文件看到的效果。其中的某些方法体已经受混淆。...测试登录、各模块与Action相关的功能是否能正常运行。需要详细测试。 五、问题汇总 使用progurad进行混淆时和测试时遇到的一些问题,总结了一下。

2.9K60

SpringBoot 玩一玩代码混淆,防止反编译代码泄露

一共就两步 第一步, 项目路径下,新增一份文件 proguard.cfg : proguard.cfg #指定Java的版本 -target 1.8 #proguard会对代码进行优化压缩,他会删除从未使用的类或者类成员变量等...-- 就是输入Jar的名称,我们要知道,代码混淆其实是将一个原始的jar,生成一个混淆jar,那么就会有输入输出。...-- 配置一个文件,通常叫做proguard.cfg,该文件主要是配置options选项,也就是说使用proguard.cfg那么options下的所有内容都可以移到proguard.cfg中 -->...-- 对输入jar进行过滤比如,如下配置就是对META-INFO文件不处理。 --> !META-INF/**,!...-- 可以在此处写option标签配置,不过我上面使用了proguardInclude,故而我更喜欢proguard.cfg中配置 -->

82120

创建Android库的方法及Android .aar文件用法小结

ProGuard Android 应用模块上运行时,它会同时使用来自应用模块和库的指令,因此您不应当只在库上运行 ProGuard。...'lib-proguard-rules.txt' } ... } 默认情况下,应用模块会使用库的发布构建,即使使用应用模块的调试构建类型时亦是如此。...例如,您的库的 ProGuard 文件可以指定在应用模块的压缩期间需要保留的代码。 注:Jack 工具链仅支持 ProGuard 的部分压缩和模糊选项。...个人理解: jar是java文件编译的class文件压缩包。 aar是android module中所有resource文件和编译的java文件的总压缩包。...如图:把aar文件用WinRAR等压缩软件打开,会发现是上面的结构,classes.jar即为class文件的jar包,其他的为android相关的资源文件。

2.9K10

SpringBoot 玩一玩代码混淆,防止反编译代码泄露

一共就两步 第一步, 项目路径下,新增一份文件 proguard.cfg : proguard.cfg #指定Java的版本 -target 1.8 #proguard会对代码进行优化压缩,他会删除从未使用的类或者类成员变量等...-- 就是输入Jar的名称,我们要知道,代码混淆其实是将一个原始的jar,生成一个混淆jar,那么就会有输入输出。...-- 配置一个文件,通常叫做proguard.cfg,该文件主要是配置options选项,也就是说使用proguard.cfg那么options下的所有内容都可以移到proguard.cfg中 -->...-- 对输入jar进行过滤比如,如下配置就是对META-INFO文件不处理。 --> !META-INF/**,!...-- 可以在此处写option标签配置,不过我上面使用了proguardInclude,故而我更喜欢proguard.cfg中配置 -->

61930

Java 混淆器

脑海中假想一下,在你苦苦经历 81 难,摸爬滚打研制的技术轮子,终于成型得以问世,遂打个 JAR 包投放于万网之中。...如官方图示(看不清,懵懂就行) ProGuard 会对输入的 JAR 文件按照压缩、优化、混淆、预验证的顺序依次进行处理,最后得到输出 JAR 文件; ProGuard 使用依赖类库(Library jars...)来辅助对 Input jars 类之间的依赖关系进行解析,但是依赖类库本身不会被处理,也不会被包含到 Output jars 中。...本次演示是 Mac Os 下,控制台输入 sh proguardgui.sh。ProGuard 运行启动成功的界面如下。 ? 2. 工具而已,用就行了 ?...保护你劳动成果的方式有很多种,本次 2 分钟简单的分享,只是让你们知道有 ProGuard 这款技术轮子存在,有太多的细节需要去实践,大家可以按需,自行按照官网进行深入使用

1.6K10

Android安全攻防战,反编译与混淆技术完全解析(下)

所以说混淆代码可以不影响程序正常运行的前提下让破解者很头疼,从而大大提升了程序的安全性。...-dontoptimize 表示不进行优化,建议使用此选项,因为根据proguard-android-optimize.txt中的描述,优化可能会造成一些潜在风险,不能保证在所有版本的Dalvik上都正常运行...首先要对MyFragment类进行完全保留可以使用keep关键字,keep声明完整的类名,然后保留类中的所有内容可以使用*通配符实现,如下所示: -keep class com.example.guolin.androidtest.MyFragment...实际上Android对混淆Jar包的支持很早之前就有了,不管你使用多老版本的SDK,都能在 /tools目录下找到proguard这个文件夹。...首先我们写的都是Java代码,Java代码的运行要基于Jre基础之上,没有Jre计算机将无法识别Java的语法,因此第一个要依赖的就是Jre的rt.jar

1.6K70

android代码混淆

分析class 的同时,他还有其他两个功能,删除无效代码(Shrinking 收缩),和代码进行优化 (Optimization Options)。...三, 是我们的java 元素名称是配置文件中配置好的。 所以使用proguard时,我们需要有个配置文件告诉proguard 那些java 元素是不能混淆的。...proguard 问题和风险 代码混淆虽然有混淆优化的好处,但是它往往也会带来如下的几点问题 1,混淆错误,用到第三方库的时候,必须告诉 proguard 不要检查,否则proguard 会报错。...2,运行错误,当code 不能混淆的时候,我们必须要正确配置,否则程序会运行出错,这种情况问题最多。 3,调试苦难,出错了,错误堆栈是混淆的代码 ,自己也看不懂。...jar,war,ear和目录 -outjars {class_path}    指定处理要输出的jar,war,ear和目录的名称 -libraryjars {classpath}    指定要处理的应用程序

1.5K80
领券