首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 代码混淆 混淆方案

    本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路。...检查混淆结果 混淆过的包必须进行检查,避免因混淆引入的bug。 一方面,需要从代码层面检查。...将混淆过的包进行全方面测试,检查是否有 bug 产生。 解出混淆栈 混淆后的类、方法名等等难以阅读,这固然会增加逆向工程的难度,但对追踪线上 crash 也造成了阻碍。...(很多老的混淆文件里会加,现在已经没必要) proguard-android.txt已经存在一些默认混淆规则,没必要在 proguard-rules.pro 重复添加 混淆简介 Android中的“混淆...前者是 SDK 提供的默认混淆文件,后者是开发者自定义混淆规则的地方。

    3.4K30

    【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )

    文章目录 一、Proguard 默认混淆结果 二、-keepclassmembers 混淆效果 二、-keepclasseswithmembernames 混淆效果 更多 ProGuard 混淆配置参考...: https://www.guardsquare.com/en/products/proguard/manual/usage 一、Proguard 默认混淆结果 ---- ProGuard 的默认混淆结果...) 不被混淆 , 类名还是会被混淆的 ; # 指定 kim.hsl.handler.Handler 类成员不被混淆 -keepclassmembers public class kim.hsl.handler.Handler...在编译后的结果中 , 类名与成员名称都被混淆了 , 因为没有配置不被混淆的成员 ; 使用 -keepclassmembers 指定保留 Handler 中的 public void *(*) 样式的方法不被混淆...*(*); } 下面是在一个被混淆的类中 , 找到了没有被混淆的 kim.hsl.handler.Handler 的成员方法 ; 二、-keepclasseswithmembernames 混淆效果

    4.9K00

    Android代码混淆之混淆规则

    请尊重他人的劳动成果,转载请注明出处:《Android代码混淆技巧》 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆。...ProGuard默认会对第三方库也进行混淆的,而第三方库有的已经混淆过了,有的使用了Java反射技术,所以我们在进行代码混淆的时候要排除这些第三方库。...2.如果使用了自定义控件那么要保证它们不参与混淆。 3.如果使用了枚举要保证枚举不被混淆。...4.对第三方库中的类不进行混淆 a.混淆时保护引用的第三方jar包 如:-libraryjars libs/baidumapapi_v3_2_0.jar #保护引用的第三方jar包不被混淆 注意:在使用...**这个包里面的所有类和所有方法不被混淆。 附:小编开发中用到的一些混淆规则,大家可以根据需要复制到自己的项目中的混淆规则的文件中即可。

    2K20

    Bashfuscator:一款完全可配置可扩展的Bash代码混淆框架

    关于Bashfuscator Bashfuscator是一款完全可配置可扩展的Bash代码混淆框架,该工具专为红队和蓝队研究人员设计,它通过将不同的混淆技术和方法组织到框架内的模块中来实现其功能...该工具目前支持下列五种类型的Mutator: 1、命令混淆; 2、字符串混淆; 3、令牌混淆; 4、编码器; 5、压缩器; Payload支持 尽管Bashfuscator确实可以在UNIX系统上工作...工具使用样例 我们可以直接将需要混淆的命令使用-c选项传递给工具,或使用-f命令将需要混淆的脚本传递给工具即可: $ bashfuscator -c "cat /etc/passwd" [+] Mutators...u0061'''sh ${*//J7\{=.QH } [+] Payload size: 1232 characters (向右滑动,查看更多) 接下来,我们还可以使用--clip命令将混淆后的...我们还可以使用--chose-mutators选项来指定需要使用的混淆模块或Mutator: bashfuscator -c "cat /etc/passwd" --choose-mutators token

    1.1K30

    从Redis异步到反应式架构

    反应式架构 反应式架构中的反应式就是 Reactive,分析反应式架构之前,先了解下常见的异步化处理机制:线程池、事件驱动、消息驱动等。 线程池:业务中将耗时操作交给线程池来处理,不影响当前线程。...反应式架构,从低纬度来说,比如针对网络通信这块,可以通过Reactor机制(比如Java的NIO/Selector等)来完成异步处理;从高纬度来说,就是在一整个业务链路中,涉及到可能造成阻塞的环节都改造成异步处理...目前针对反应式架构,业界已经有一些对应的开源解决方案,比如Java 8 已经逐渐普及,因为它包含对 Lambda 的支持,这让开发者对 Lambda 的接受度大大提高;同时 Reactive 相关的业务框架在业界已有成熟的实现...最后,包括 Java 9(引入 Reactive Sreams 规范 API)、Spring 5(引入 Reactor/WebFlux)、Spring Boot 2 都开始拥抱 Reactive,说明反应式编程的确是趋势...更多的反应式架构可参考:https://www.infoq.cn/article/2upHTmd0pOEUNmhY5-Ay

    1.2K20

    ProGuard混淆

    不混淆输入的类文件 -printmapping proguardMapping.txt : 输出映射表 -applymapping{filename}:重用映射增加混淆。...-obfuscationdictionary{filename}: 使用给的文件中的关键作为要混淆方法的名称。 -overloadaggressively:混淆时应用侵入式重载。...混淆的时候大量使用重载,多个方法名使用同一个混淆名(慎用) -useuniqueclassmembernames:确定统一的混淆类的成员名称来增加混淆。...# 做混淆的开发人员,应该对代码比较熟悉,以确保万无一失。 # 对于自定义View的解决方案 # 凡是在layout目录下的xml布局文件中配置的自定义View,都不能进行混淆。...# 针对第三方jar包的解决方案 # 一般而言,这些SDK都是经过ProGuard混淆了的。 # 而我们所要做的,是避免这些SDK的类和方法在我们的App中被混淆。

    3.5K30

    Java 平台反应式编程(Reactive Programming)入门

    反应式流 反应式流(Reactive Streams)是一个反应式编程相关的规范。反应式流为带负压的异步非阻塞流处理提供了标准。...反应式流。反应式流表示的是异步无阻塞的数据流,其中包含的元素数量可能是无限的。...Java 8 的 java.util.stream.Stream 可以看成是对 Iterable 的一种扩展,可以包含无限元素。...如果把 CompletableFuture 的思路进一步扩展,就是反应式流解决问题的思路。在实际中,异步服务通常都是处理数据流。比如上面提到的发送电子邮件的服务,会接受来自不同源的数据。...反应式流的一个重要目标是确保流的消费者不会因为负载过重而崩溃。 在具体介绍反应式流之前,我们先看一下反应式流会带来的思维方式的转变。

    9.2K60

    android 混淆规则作用,Android代码混淆详解

    一、混淆的意义 混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。...二、混淆的规则和配置 凡是需要在AndroidManifest.xml中去注册的所有类的类名以及从父类重写的方法名都自动不会被混淆。...不仅仅是代码,没有被调用的资源同样也会被移除掉,因此minifyEnabled除了混淆代码之外,还可以起到压缩APK包的作用。...proguard-rules.pro:代码表当前Project的混淆配置文件,在app module下,可以通过修改该文件来添加适用当前项目的混淆规则。...mapping.txt : 列出了原始的类、方法和名称与混淆代码间的映射。 seeds.txt : 列出了没有混淆的类和方法。 usage.txt : 列出congapk中删除的代码。

    2.1K30

    【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

    文章目录 一、开启 ProGuard 混淆 二、混淆文件编写 三、混淆前后对比 四、build.gradle 完整配置文件 五、参考资料 一、开启 ProGuard 混淆 ---- 在 build.gradle..., 由系统自动生成 ; proguard-rules.pro 是用户自己配置的混淆配置文件 , 在进行打包时 , 将这两个 ProGuard 配置文件进行合并处理 ; 二、混淆文件编写 ---- 混淆文件编写....** " -keep " : 不要混淆的类 ; # com 包名下的类不要混淆 -keep class com.**{*;} 三、混淆前后对比 ---- 混淆前编译的 APK 安装包 : \rm 3.6...| -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息...| 暴露更少信息 ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt ) 博客资源 : GitHub

    4.5K20

    什么是反应式编程? 这里有你想要了解的反应式编程 (Reactive programming)

    take,从流中获取N个元素,有多个扩展方法。 zipMap,将当前流和另一个流合并为一个流,两个流中的元素一一对应。...retry,订阅者重试次数 异步 Web 框架 异步的Web框架能够以更少的线程获得更高的可扩展性,通常它们只需要与CPU核心数量相同的线程。...这样达到的效果就是,在面临大量负载的时候,异步Web框架能够以更少的线程实现更好的可扩展性,这样会减少线程管理的开销。...Spring 5引入了一个非阻塞、异步的Web框架,该框架在很大程度上是基于Reactor项目的,能够解决Web应用和API中对更好的可扩展性的需求。...如果这样做,本质上就是将两个Web框架打包成一个,依靠if语句来区分反应式和非反应式。

    6.1K42

    android代码混淆

    proguard 就是这样的混淆工具,它可以分析一组class 的结构,根据用户的配置,然后把这些class 文件的可以混淆java 元素名混淆掉。...proguard 问题和风险 代码混淆后虽然有混淆优化的好处,但是它往往也会带来如下的几点问题 1,混淆错误,用到第三方库的时候,必须告诉 proguard 不要检查,否则proguard 会报错。...2,运行错误,当code 不能混淆的时候,我们必须要正确配置,否则程序会运行出错,这种情况问题最多。 3,调试苦难,出错了,错误堆栈是混淆后的代码 ,自己也看不懂。...为了避免风险,你可以只是混淆部分关键的代码,但是这样你的混淆的效果也会有所降低。 常见的不能混淆的androidCode Android 程序 ,下面这样代码混淆的时候要注意保留。...,干脆都全部保留不混淆。

    1.9K80
    领券