谢了。
我也有一个带有方面的android库。我的切入点不是针对我的库代码,而是针对应用程序的代码(例如Activity.onCreate上的切入点),所以使用我的库的人已经被期望将他们的android项目设置为AspectJ项目。
如果没有Proguard,一切都可以完美地工作,但是尽管我做了所有我能想到的异常,如果我的库jar被混淆了,我就不能得到应用的建议。我验证了aspect类以及所有方法和字段都保留在映射中。
下面是我的proguard配置的最终版本,它没有让各个方面工作,尽管所有的编译都很好,也没有错误:
...some config, the injar included my iajc compiled library project with aspects
-optimizations !code/allocation/variable,!code/simplification/arithmetic,!field/*,!class/merging/*
-optimizationpasses 3
-dontpreverify
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-verbose
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
# This is the package of my aspects
-keep class my.package.aspectj.** { *; }
# This is all the public methods that my aspect code calls in to
-keep class my.package.allthethingsmyaspectscall.** { *; }
...keep some other classes not related to this
在proguard-project.txt中使用-keep类org.xbill.**{*;}似乎不能解决这个问题。
问题内容: 是否可以仅将ProGuard用于混淆。我不希望ProGuard从我的项目中删除任何类。我打算使用ProGuard只是为了混淆,以防止进行反向工程。 问题答案: 是的,通过指定 您可以在ProGuard手册中找到有关所有配置选项的详细信息。 请注意,缩小和优化可能有助于防止反向工程。
当我用debug模式启动intentservice的子类时,发现它先调用onstart方法,然后执行onStartCommand方法,但在onStartCommand方法中,它没有调用“onstart(intent,startId);” 由于我看到了源代码,我认为应该是首先调用onStartCommond方法,然后在onStartCommond方法中做onStart方法,正如上面的结果显示的,我混
我一直在摆弄Proguard配置,我想测试只是为了优化 但我仍然会遇到这样的错误: java.lang.IllegalArgumentExc0019:找不到[org/apache/log/log4j/core/jackson/Log4jXmlMoules](有1个已知的超级类)和[org/apache/log/log4j/core/jackson/Log4jJsonMoules](有4个已知的超级
Powershell的混淆目前已经使用的越来越多,国内外也有了较多的研究,在今年的BH大会上也有对应的议题,关注点是反混淆,那么里面的一些姿势很值得我们学习,我们提供一些混淆实例,来让大家对于PS的混淆做到一个初步了解,也为防御混淆提供一些思路。 实例 在混淆之前,先看看powershell编码执行的方式。 -EC,-EncodedCommand,-EncodedComman,-EncodedCo
vite 项目混淆加密 怎么配置?下面这样配置会报错caught TypeError: Failed to resolve module specifier "vue". Relative references must start with either "/", "./", or "../". 想要只在生产环境build添加加密,应该怎么写呢?